ClickHouse与Hadoop的兼容性不好,数据交互还是依靠将数据导出为固定格式的文件,然后将文件导入到ClickHouse中。
从HDFS读取数据
从HDFS上读取数据类似于将HDFS作为外部存储,然后去拉取HDFS上的数据。
需要用到一个新的引擎HDFS:
CREATE TABLE hdfs_student_csv(
id Int8,
name String
)
Engine=HDFS('hdfs://hadoop01:9000/student.csv','csv');
但是数据实际上还是在HDFS上,如果关掉HDFS,他就会报错。
从HDFS导入数据
我们想要将读取到的数据保存到本地,只需要将读取数据的表导入其他的本地表。
创建一张表结构和hdfs_student_csv
完全一致,但是表引擎无所谓。
CREATE TABLE student_local(
id Int8,
name String
)
Engine=TinyLog;
insert into student_local select * from hdfs_student_csv;