【问题标题】:Can't consume messages from topic partitions in ClickHouse无法消费来自 ClickHouse 中主题分区的消息
【发布时间】:2019-06-09 10:28:30
【问题描述】:

我正在使用 kafka 进行介绍,我想知道如何将主题分区中的消息消费到 ClickHouse 表中,如下所示:

如果我有 3 个主题,可以很容易地连接每个主题的表格

ENGINE = Kafka SETTINGS
  kafka_broker_list = 'broker:9092',
  kafka_topic_list = 'topic1',
  kafka_group_name = 'kafka_group',
  kafka_format = 'JSONEachRow'

但我不知道如何将消息从一个主题的分区消费到表。请帮忙

【问题讨论】:

  • 如果不同分区有不同的数据,为什么不直接使用多个主题呢?比如topic1table1、topic1table2、topic1table3?还是在多服务器场景中使用“最近”分区?

标签: apache-kafka clickhouse


【解决方案1】:

有多种方法可以做到这一点

  1. 将标识符保留在您的消息中,如下所示。在您的消费者中,您可以读取表格属性并决定您必须在哪个表格中保存数据。

    { 表:表1 }

  2. 虽然 kafka 没有提供任何直接的方法来生成特定分区的方法,但是您可以使用密钥来实现。让我们用三个值 1,2,3 制作键。当为 Table1 生成消息时,使用 key 1。这样消息将只发送到一个分区,然后该分区的消费者可以将数据保存在 Table1 中

我个人更喜欢方法 1,因为它不会将 kafka 处理与您的业务逻辑结合起来

【讨论】:

  • 谢谢,但我需要在 ClickHouse 部分拆分主题
猜你喜欢
  • 1970-01-01
  • 2012-05-30
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多