kafka连接hdfs展平数组记录

时间:2019-08-30 03:05:18

标签: apache-kafka apache-kafka-connect confluent-platform

我们正在对Kafka Connect HDFS进行实验,并且其源数据包含一系列记录在主题中的avro记录(以下称为容器记录)。

计划是使用kafka-connect hdfs将容器记录中的数组展平为单个记录,并以avro的形式写入hdfs,然后提交实际的容器记录。

但是,kafka-connect-hdfs似乎不支持此功能。 在尝试浏览源代码时,我们发现主题名称和偏移量管理之间存在紧密的映射关系,并且尝试将1个sinkRecod转换为多个sinkRecords与预期行为背道而驰。

因此想验证1到n转换是否可行?如果可以,怎么办?

1 个答案:

答案 0 :(得分:0)

Kafka Connect支持单消息转换(SMT),这是Kafka Connect中可以实现您想要的功能的功能区域(如果有)。但是,IIRC SMT仅用于1:1输入/输出记录处理,而不是1:n-也就是说,我不认为(但不愿意纠正)您可以生成其他输出记录从单个输入记录。

您可能想看看Kafka Streams,它将为您提供执行此操作的全部功能。您将编写一个流应用程序,该应用程序将订阅源主题,进行必要的数组处理,然后将其写回到新的Kafka主题。然后,新的Kafka主题将成为您的Kafka Connect HDFS接收器的源主题。