赞
踩
kafka表引擎能订阅kafka的主题消息并实时接收kafka主题数据,目前kafka表引擎支持消息的最少一次的语义,目前常用的使用clickhouse接收并处理kafka消息的方式如下:
a. 创建kafka表引擎 create table clickhouse_kafka_topic(id int32, message string) engine =kafka() settings kafka_broker_list=‘’,kafka_format =‘’
b.创建一张面向用户终端查询的clickhouse的mergetree引擎表:
create table clickhouse_query_table(id int32, message string) engine=MergeTree() order by id, 这张表是面向用户终端的,可以充分利用mergetree表引擎的快速查询的优势
c.同步kafka表引擎的数据到面向终端的mergetree引擎表中,这里需要通过创建物化视图的方式达到目的:
create materialized view pineView To clickhouse_query_table AS select id, message from clickhouse_kafka_topic, 这里的物化视图充当了数据管道的作用.
这样操作完成后,clickhouse_query_table是我们对外开放的表,kafka的主题有数据写入后就可以从该查询表中查询到数据了,这种clickhouse的表和kafka系统对接的方式很好解决了业务数据首先发送到kafka中的问题,clickhouse就不用直接对接业务系统,而是对接kafka系统
merge类型接口表本身不存储任何数据,他只是一个代理,作用就是合并各个表的结果一起返回给外部系统使用,类似于mysql的union操作:
create table merge_table engine=Merge(‘default’,‘sub_table_*’) 这样就可以把sub_table_2020,sub_table_2021等表的数据组合起来作为一个整体返回
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。