hdfs表引擎
1.模式一:使用hdfs表引擎读写hdfs上的数据,也就是说写入到表引擎的数据会直接写到hdfs对应的文件中,读取数据也是直接读取hdfs上的文件
create table hdfs_rw_tableA(id uint32, name String) engine=HDFS('hdfs://name.domain.com:port/clickhouse/hdfs_rw_tableA','CSV')
2.模式二:正常使用到hdfs数据时,我们一般都是以外挂表的形式来使用,也就是hdfs上的数据是由其他系统写入的,clickhouse只是读取hdfs文件的数据,然后进行加工处理
create table hdfs_tableA(id uint32, name String) engine=HDFS('hdfs://name.domain.com:port/clickhouse/tableA/data*.csv','CSV')
通过hdfs表引擎作为桥梁,我们就可以使用select * from hdfs_tableA读取hdfs文件上的数据
mysql表引擎
clickhouse的mysql表引擎可以和远端的mysql数据库表建立联系,这样如果远端的mysql表数据非常大的时候就可以利用clickhouse表引擎的olap能力进行数据查询,该过程步骤如下:
a. create table click_house_tableA (id int32, message string) engine = mysql(‘host’,‘port’,‘tableName’); 创建成功后就可以查询数据了,但是这里仅仅只是建立了一层代理,还没能利用到clickhouse自身的表引擎,所以需要进行第二步
b. 创建物化视图 create materialized view clickhouse_view_tableA(int int32, message string) engine=MergeTree() order by id AS select * from click_house_tableA , 这样物化视图clickhouse_view_tableA就可以被用来作为查询的表了,这样当通过mysql表引擎向远端mysql写入数据时,物化视图就可以同步数据了
缺点:mysql表引擎只是把数据插入的远端的mysql表,而不是从把远端的mysql表插入的数据同步过来.