惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
博客园 - 司徒正美
美团技术团队
Vercel News
Vercel News
IT之家
IT之家
U
Unit 42
Y
Y Combinator Blog
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
V
Visual Studio Blog
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
博客园 - 叶小钗
A
About on SuperTechFans
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed

博客园 - Lemo_wd

git worktree 的入门 flutter —— iOS 的构建与分发 flutter —— 理解 iOS 的依赖管理 wireguard 入门 k3s 基础 —— 将 traefik 替换为 ingress-nginx Pr 入门 为什么 TCP 是3次握手4次挥手? 给 ssh 私钥文件配置统一口令 滚动部署零碎笔记1 Clickhouse 物化视图与投影 Clickhouse 主键索引 Clickhouse 核心概念 ClickHouse 案例学习 —— 使用 ClickHouse 探索 GitHub 统计信息 linux Tun/Tap 虚拟网卡 Clickhouse 表引擎 —— MergeTree 局域网中的设备间的流量转发 d3.js 构建股权架构图并绘制双向节点树 final cut pro 入门 d3.js 构建股权架构图并绘制股权百分比 flutter 的滚动控制 —— 滚动类组件的内部与整体滚动
Clickhouse 的 kafka Engine 集成
Lemo_wd · 2025-04-10 · via 博客园 - Lemo_wd

在 ClickHouse 中,​Kafka Engine + 物化视图是一种直接消费 Kafka 数据并写入 ClickHouse 表的架构模式,其核心是通过三张表协作实现数据流自动化处理。

1. Kafka Engine 表​

作为 Kafka 数据的消费者和解析器,直接连接到 Kafka Topic,实时拉取数据并解析为 ClickHouse 可识别的格式(如 JSONEachRow)。

关键配置​:

  • kafka_broker_list:Kafka 集群地址。
  • kafka_topic_list:监听的 Topic。
  • kafka_format:数据格式(需与 Kafka 消息格式匹配)。

特性:

  • 数据不持久化​:Kafka Engine 表仅作为临时管道,消费后自动清理已处理的消息。
  • 支持多线程消费:通过 kafka_num_consumers 参数提升吞吐量。

2. 目标表(MergeTree)

存储最终数据的表,通常使用 MergeTree 引擎,支持高效查询和分区。

示例:

CREATE TABLE target_table (id UInt32, data String) 
ENGINE = MergeTree() ORDER BY id;

3. 物化视图

作为数据搬运工,自动将 Kafka Engine 表的数据转换并写入目标表,实现流式 ETL。

关键机制:

  • 监听 Kafka Engine 表​:通过 SELECT 语句从 Kafka Engine 表提取数据,可包含过滤或转换逻辑(如字段映射、类型转换)。
  • ​自动触发写入​:每当 Kafka Engine 表有新数据,物化视图会立即同步到目标表。

示例:

CREATE MATERIALIZED VIEW kafka_to_target TO target_table
AS SELECT id, data FROM kafka_engine_table;

4. 适用场景

  • ​简单实时流​:Kafka 消息格式与目标表结构高度匹配时(如日志采集)。
  • ​资源敏感场景​:避免引入额外中间件,减少运维成本。

如需更复杂的处理(如数据分发到多表),需要结合 Flink 等工具。