将 Kafka 与 ClickHouse 集成
Apache Kafka 是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流式分析、数据集成和关键任务型应用程序。ClickHouse 提供了多种选项来读取和写入 Kafka 以及其他 Kafka API 兼容的代理(例如,Redpanda、Amazon MSK)。
可用选项
为您的用例选择合适的选项取决于多种因素,包括您的 ClickHouse 部署类型、数据流方向和操作要求。
| 选项 | 部署类型 | 完全托管 | Kafka 到 ClickHouse | ClickHouse 到 Kafka |
|---|---|---|---|---|
| ClickPipes for Kafka | 云,BYOC(即将推出!) | ✅ | ✅ | |
| Kafka Connect Sink | 云,BYOC,自托管 | ✅ | ||
| Kafka 表引擎 | 云,BYOC,自托管 | ✅ | ✅ |
有关这些选项的更详细比较,请参阅 选择一个选项。
ClickPipes for Kafka
ClickPipes 是一个托管集成平台,可以使从各种来源摄取数据像点击几个按钮一样简单。由于它完全托管且专为生产工作负载而构建,ClickPipes 显著降低了基础设施和运营成本,无需外部数据流和 ETL 工具。
如果您是 ClickHouse Cloud 用户,这是推荐的选项。ClickPipes 是完全托管的,并且专为在云环境中提供最佳性能而构建。
主要特性
- 针对 ClickHouse Cloud 优化,提供闪电般快的性能
- 用于高吞吐量工作负载的横向和纵向可扩展性
- 具有可配置的副本和自动重试的内置容错能力
- 通过 ClickHouse Cloud UI、Open API 或 Terraform 进行部署和管理
- 支持云原生授权 (IAM) 和私有连接 (PrivateLink) 的企业级安全性
- 支持各种 数据源,包括 Confluent Cloud、Amazon MSK、Redpanda Cloud 和 Azure Event Hubs
- 支持最常见的序列化格式 (JSON, Avro, Protobuf 即将推出!)
入门
要开始使用 ClickPipes for Kafka,请参阅 参考文档或导航到 ClickHouse Cloud UI 中的 数据源 选项卡。
Kafka Connect Sink
Kafka Connect 是一个开源框架,充当 Kafka 和其他数据系统之间简单数据集成的集中数据中心。 ClickHouse Kafka Connect Sink 连接器提供了一个可扩展且高度可配置的选项,用于从 Apache Kafka 和其他 Kafka API 兼容的代理读取数据。
如果您更喜欢高度可配置性或已经是 Kafka Connect 用户,这是推荐的选项。
主要特性
- 可以配置为支持精确一次语义
- 支持最常见的序列化格式 (JSON, Avro, Protobuf)
- 持续针对 ClickHouse Cloud 进行测试
入门
要开始使用 ClickHouse Kafka Connect Sink,请参阅 参考文档。
Kafka 表引擎
可以使用 Kafka 表引擎从 Apache Kafka 和其他 Kafka API 兼容的代理读取和写入数据。此选项与开源 ClickHouse 一起捆绑,并且在所有部署类型中都可用。
如果您正在自托管 ClickHouse 并且需要一个低门槛选项,或者如果您需要写入数据到 Kafka,这是推荐的选项。
主要特性
入门
要开始使用 Kafka 表引擎,请参阅 参考文档。
选择一个选项
| 产品 | 优势 | 劣势 |
|---|---|---|
| ClickPipes for Kafka | • 可扩展的架构,具有高吞吐量和低延迟 • 内置监控和模式管理 • 私有网络连接(通过 PrivateLink) • 支持 SSL/TLS 身份验证和 IAM 授权 • 支持程序化配置(Terraform、API 端点) | • 不支持将数据推送到 Kafka • 至少一次语义 |
| Kafka Connect Sink | • 精确一次语义 • 允许对数据转换、批处理和错误处理进行细粒度控制 • 可以在私有网络中部署 • 允许通过 Debezium 从尚未在 ClickPipes 中支持的数据库进行实时复制 | • 不支持将数据推送到 Kafka • 在操作上设置和维护起来比较复杂 • 需要 Kafka 和 Kafka Connect 方面的专业知识 |
| Kafka 表引擎 | • 支持 将数据推送到 Kafka • 在操作上设置简单 | • 至少一次语义 • 消费者水平扩展有限。无法独立于 ClickHouse 服务器进行扩展 • 错误处理和调试选项有限 • 需要 Kafka 方面的专业知识 |
其他选项
-
Confluent Cloud - Confluent Platform 提供了一个选项,可以在 Confluent Cloud 上上传和 运行 ClickHouse Connector Sink,或使用 HTTP Sink Connector for Confluent Platform,通过 HTTP 或 HTTPS 将 Apache Kafka 与 API 集成。
-
Vector - Vector 是一个供应商无关的数据管道。由于它能够从 Kafka 读取,并将事件发送到 ClickHouse,这代表了一种强大的集成选项。
-
JDBC Connect Sink - Kafka Connect JDBC Sink 连接器允许您将数据从 Kafka 主题导出到具有 JDBC 驱动程序的任何关系数据库。
-
自定义代码 - 使用 Kafka 和 ClickHouse 客户端库 的自定义代码可能适用于需要对事件进行自定义处理的情况。