跳转到主要内容

Kafka 与 JSON 数据类型

随着新的 JSON 数据类型推出,ClickHouse 现已成为进行 JSON 分析 的理想数据库选择。 在本指南中,我们将学习如何将 Apache Kafka 中的 JSON 消息直接加载到 ClickHouse 的单个 JSON 列中。

设置 Kafka

首先,在我们的机器上运行一个 Kafka broker。我们还会将 9092 端口映射到主机操作系统的 9092 端口,以便更方便地与 Kafka 交互:

将数据摄取到 Kafka

运行起来后,我们需要摄取一些数据。 Wikimedia 的 recent changes feed 是一个很好的流式数据源,因此我们将其摄取到 wiki_events topic 中:
我们可以运行以下命令,检查数据是否正在被摄取:
到这里一切顺利。

将数据摄取到 ClickHouse

接下来,我们将把数据摄取到 ClickHouse 中。 首先,通过设置以下属性来启用 JSON 类型 (目前仍处于 Experimental 阶段) :
现在,我们来创建 wiki_queue 表,它使用 Kafka 表引擎
请注意,这里我们使用的是 JSONAsObject 格式,以确保传入的消息可作为 JSON 对象使用。 这种格式只能解析到仅有一个 JSON 类型列的表中。 接下来,我们将创建用于存储 Wiki 数据的底层表:
最后,创建一个 materialized view 来向 wiki 表填充数据:

在 ClickHouse 中查询 JSON 数据

然后,我们就可以查询 wiki 表了。 例如,我们可以统计提交过更改的机器人数量:
或者,我们也可以找出在 en.wikipedia.org 上编辑次数最多的用户:
最后修改于 2026年6月25日