Kafka connect 根据key读取值并写入HDFS

Kafka connect read value based on a key and write to HDFS

  1. 是否有任何方法可以仅将特定事件类型从 kafka 主题接收到 HDFS,使用 kafka connect HDFS 连接器过滤其余类型?
  2. 我们可以根据一些键隔离输入事件并写入不同的分区吗?以便特定键的值进入特定分区?
  3. 我们可以使用模式注册表中存储的键来获取特定于 avro 格式数据的特定键的主题中的值吗?如果我的理解需要澄清,请告诉我。

如果 Kafka connect 没有这个功能,可以使用 kafka streams 来实现吗?请帮助提供一些文档(如果有的话)。

Is there any way to sink only specific event type from a kafka topic to HDFS filtering the remaining types using kafka connect HDFS connector?

Kafka Connect 具有用于处理消息的转换,但并不用于过滤。这通常由 Kafka Streams 或 KSQL

完成

can we segregate the input events based on some key and write to different partitions,So that the values of specific key goes to specific partition?

Confluent 文档中提到的 FieldPartitioner class 就是这样做的(警告:我相信它只做顶级字段,而不是嵌套的 JSON 或 Avro 记录字段)

can we use the keys stored in schema registry to get the values in the topic specific to particular key for avro format data?

我不明白这个问题,但是 HDFS Connect 默认情况下在写入数据时会忽略 Kafka 消息密钥,所以我要说不。

Kafka 数据不是按键索引的,而是按键分区的,这意味着如果您确实使用 DefaultPartioner 而不是 FieldPartitioner,那么所有键都会通过 Kafka 分区落入单个文件系统路径中。只有这样,您才能查询,但不是通过键,而是通过分区。例如使用 Spark 或 Hive。同样,这是默认行为 - 如前所述,您可以使用转换将 Kafka 密钥添加到数据中,然后您可以通过它进行查询