kafka-connect-hdfs连接器支持使用FlatBuffer模式保存字节数组和字段分区

问题描述 投票:0回答:1

我正在寻找kafka-connect-hdfs连接器(Confluent)支持使用FlatBuffer架构保存字节数组和字段分区。

我从kafka收到字节数组中的数据。此字节数组是从FlatBuffer生成的。需要将其保存在HDFS中,路径为Field1 / Field2 / Field3。需要使用FlatBuffer模式从字节数组中提取所有这些字段。此外,要保存在HDFS中的数据只需要以字节为单位。数据无需转换。

我检查了两个:

  1. FieldPartitioner:https://github.com/confluentinc/kafka-connect-storage-common/blob/master/partitioner/src/main/java/io/confluent/connect/storage/partitioner/FieldPartitioner.java
  2. 支持的格式:Json,Avro,Parquet。在https://github.com/confluentinc/kafka-connect-storage-cloud/blob/master/kafka-connect-s3/src/main/java/io/confluent/connect/s3/format/json/JsonRecordWriterProvider.java中,虽然我发现如果数据类型为Kafka Struct,则会在HDFS中保存bytearray。

我无法找到一种方法将它们用于我的目的。

有没有人意识到这种建立的支持。如果没有,那么请引导我到资源(如果有的话)为两者构建自定义支持。

apache-kafka apache-kafka-connect confluent flatbuffers
1个回答
0
投票

FlatBuffers不是(当前)受支持的序列化格式,ByteArrayFormat仅适用于S3 Connect,而不能用于HDFS,只是从Kafka中转出ByteArraySerializer格式(转换后它将是一个Struct对象,是的。

对于分区,由于数据只是字节,因此它不会检查记录值以支持分区程序,因此您需要添加自定义的一个,这需要反序列化消息以检查字段。

我不确定你为什么链接到S3连接代码,但如果你想添加自己的格式,请查看PR that added StringFormat到HDFS连接


为了建立这个项目,look at the FAQ

© www.soinside.com 2019 - 2024. All rights reserved.