1.文件导入方式
1.HDFS方式
代码如下:
create table tb_user1(
id Int8,
name String
)
engine = HDFS('hdfs://linux01:8020/user.csv','CSV'); ---HDFS('文件的地址',文件的格式)
2.文件引擎
文件以空格隔开时
1.建表
drop table tb_file;
create table tb_file(
id UInt8,
name String
)engine=File(TabSeparated); ---文件引擎
2.在指定文件目录下创建要导入的文件(必须先建表,再导入)
指定目录: /var/lib/clickhouse/data/default/tb_file 建表以后在此目录下会出现与上表名相同的文件夹,此例中就是tb_file
[root@linux01 tb_file]# vi dataTabSeparated ---文件的名字不能改变,固定的 文件中的数据以tab隔开
1001 TaoGe
1002 XingGe
1003 HANGGE
文件以逗号隔开时
1.建表
create table tb_file_demo2(uid UInt16 , name String) engine=File(CSV) ;
2.指定目录下编辑数据文件
vi data.CSV 注意后缀是大写
101,TaoGe
102,XingGe
103,HANGGE
3.insert方式
代码示例:
insert into tb_insert select * from tb_insert;
4.create方式
Create table tb_name engine=engine as select from ...
---第二个engine处填具体引擎类型
5.local方式(在客户端外执行)
cat data.csv | clickhouse-local -q 'create table tb_data (a Int8,b Int8) engine =File(CSV,stdin);select * from tb_data';
---tb_data在clickhouse中是不存在的,因为这种方式建的表是临时表
---把data.csv 文件的数据添加到了tb_data中,最后的select是查看表的内容,不在语句中查看没有其他手段
可以查看,因为是临时表
6.client方式(在客户端外执行)
cat data.csv | clickhouse-client -q 'insert into default.tb_data FORMAT CSV';
---default.tb_data 需要插到其他数据库时指定数据库名字,否则默认数据库
---执行此语句前先建好表
---FORMAT CSV 必须大写 CSV可以是其他格式
---表保存在了clickhouse中
7.from方式
1.file
文件必须在指定路径下创建才有意义 /var/lib/clickhouse/user_files 可修改
1.修改配置文件,文件的创建目录位置
-- clickhosue的配置文件的位置 默认在/etc/clickouse-server下
2. vi config.xml 修改为
<user_files_path>/</user_files_path>
3.重启服务
select * from file('user.csv',CSV,'id Int8,name String');
---参数一:文件地址,具体到文件名,地址为本地地址
---参数二:文件格式
---表的参数
2.hdfs
hdfs(URI, format, structure)
SELECT *
FROM hdfs(`hdfs://linux01:8020/user/hive/warehouse/db_doit19.db/tb_teacher2/000000_0`, ORC, 'name String , xz String ,xx String')
---参数一: 文件在hdfs中的地址,具体到文件(可以到hdfs://linux01:9870中查看)
---参数二:原文件格式的格式
-- 注意特殊的列式存储的数据格式 , 字段是内置在数据中 , 定义structure 注意字段名和数据类型
字段名和数据类型必须一样
---普通格式如CSV格式,字段名可以不一样,数据类型得一样
3.mysql
SELECT * FROM mysql('linux01:3306', 'db_doit19', 'tb_user', 'root', 'root') ;
---参数一:masql的地址 ,参数二:mysql数据库名,参数三:mysql的表名
---参数四:用户名 ,参数五: 用户密码
**建表时指定数据格式
create table tb_teacher2(
name string ,
xz string ,
xx string
) stored as ORCFILE ; -- 在hive中建表指定数据存储格式
---此处指定为ORC格式