Kafka连接读取基于密钥的值并写入HDFS


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

如果Kafka连接没有这些功能,可以通过使用Kafka流来实现吗?如果可以的话,请提供一些文档。

是否有任何方法可以将特定的事件类型从kafka主题接收到HDFS,使用kafka-connect HDFS连接器过滤其余类型?

Kafka Connect有用于操作消息的转换,但它不用于过滤。这通常由Kafka Streams或KSQL 完成

我们可以根据某个键来隔离输入事件并写入不同的分区吗?这样特定键的值就可以进入特定的分区了?

Confluent文档中提到的FieldPartitioner类会执行此操作(警告:我认为它只执行顶级字段,而不执行嵌套的JSON或Avro记录字段(

我们可以使用存储在模式注册表中的键来获取主题中特定于avro格式数据的特定键的值吗?

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

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

最新更新