从HDFS中直接读取数据加载到表中
创建表:
CREATE TABLE tb_ch_from
ENGINE = TinyLog AS
SELECT *
FROM hdfs(‘hdfs://linux01:8020/data/user.csv’,‘CSV’,‘uid Int8,name String,gender String,age UInt8’)
注意:
- 此处建表没有直接指定字段写在()中
- SELECT * FROM hdfs 时hdfs是小写,在直接用HDFS 引擎时是用的大写(engine=HDFS(“双引号包裹的路径”,“双引号包裹的文件类型”))
- 表的字段写在了后面,与读到的hdfs中文件存储的数据相对应
SELECT * FROM mysql(‘localhost:3306’,‘数据库’,‘表名’,‘root’,‘password’)
SELECT * FROM jdbc(‘jdbc:mysql://3306/?user=root&password=root’,‘数据库’,‘表名’)
SELECT * FROM file(’文件名‘,CSV, ‘id Int8 …’)
同理
当使用file时文件必须在指定的路径下/var/lib/clickhouse/user_files
如果想使用在其他位置的文件,可以修改配置文件:/etc/clickhouse- server/config.xml <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>修改该路径即可
修改后source一下,重启clickhouse-server restart