1、概述
在生产环境中,经常遇到将数据从消息队列Kafka写到ClickHouse集群中,本文介绍如何将Kafka的数据导入到ClickHouse集群的方案。
Kafka 是目前应用非常广泛的开源消息中间件,一个常用的的场景就是做数据总线收集各个服务的数据,下游各种数据服务订阅消费数据,生成各种报表或数据应用等。Clickhouse 的自带了 Kafka Engine,使得 Clickhouse 和 Kafka 的集成变得非常容易。
将Kafka中数据导入ClickHouse的标准流程是:
- 在ClickHouse中建立Kafka Engine 外表,作为Kafka数据源的一个接口
- 在ClickHouse中创建普通表(通常是MergeTree系列)存储Kafka中的数据
- 在ClickHouse中创建Materialized View, 监听Kafka中的数据,并将数据写入ClickHouse存储表中
上述三个步骤,就可以将Kafka中的数据导入到ClickHouse集群中。本文接下来,给出每个步骤的详细描述。
2、Kafka数据导入ClickHouse详细步骤
ClickHouse 提供了Kafka Engine 作为访问Kafka集群的一个接口(数据流)。有了这个接口后,导入数据就很方便了,具体步骤如下:
- 步骤1:创建Kafka Engine
CREATE TABLE source
(
`time