ClickHouse Kafka 表引擎和仅一次支持

Posted

技术标签:

【中文标题】ClickHouse Kafka 表引擎和仅一次支持【英文标题】:ClickHouse Kafka Table Engine and exactly once support 【发布时间】:2021-01-28 17:54:30 【问题描述】:

我正在寻找有关 Kafka 表引擎是否支持仅一次语义的一些说明。 我了解 clickhouse 使用 librdkafka,并且 librdafka 从 v1.4 开始支持 EOS。最新版本的 clickhouse 使用 librdkafka v1.5+。使用库是否足以确认 kafka 表引擎支持 EOS,或者表引擎功能是否需要额外更改才能支持 EOS?从 clickhouse 文档中我不清楚。

【问题讨论】:

【参考方案1】:

在 CH 中实施两阶段提交之前,没有使用 Clickhouse 的 EO。

https://github.com/ClickHouse/ClickHouse/issues/18668#issuecomment-752946654

顺便说一句 - 虽然 EOS 语义将保证您不会在 Kafka 端发生重复(即,即使您多次生成相同的消息,它也会被消费一次),但作为 kafka 客户端的 ClickHouse 只能保证至少一次。在某些极端情况下(连接丢失等),您可能会得到重复。 我们需要在 clickhouse 端进行类似交易才能避免这种情况。

【讨论】:

以上是关于ClickHouse Kafka 表引擎和仅一次支持的主要内容,如果未能解决你的问题,请参考以下文章

Clickhouse外部储存表引擎(HDFSMySQLKafka)

ClickHouse Kafka引擎不消费问题排查

如何在clickhouse中更改kafka引擎的设置

clickhouseclickhouse表引擎之 kafka 表引擎 卡死

使用带有kafka引擎的clickhouse进行融合模式注册表身份验证

ClickHouse数据导入