[英]Kafka Connect: Read JSON serialized Kafka message, convert to Parquet format and persist in S3
[英]How to partition based on part of json field when using kafka-connect to ingest data to s3
我正在尝试使用s3-sink kafka连接器将一些json数据存储到s3中。 我的json格式如下:
{
"server": someserver,
"id": someid,
"time": "2018-01-18T23:47:03.737487Z"
}
我想根据数据所在的小时数对数据进行分区,但是忽略了分钟和秒。 例如。 上面的json将属于2018-01-18T23目录。 我应该如何在属性文件中设置field.partition来实现这一目标?
非常感谢!
用Confluent的S3连接器实现描述的一种粗略方法是:
timestamp.extractor
定义为RecordField
,以从记录中的字段中提取时间戳。 timestamp.field
设置为该记录字段的名称(示例中的time
) path.format
属性。 如示例中所述,这将使您最多可以将文件存储到一个小时,而忽略了更精细的粒度(分钟,秒等)。 partition.duration.ms
设置为有意义的粒度。 重要的是默认值-1
不允许您使用基于时间的分区。 locale
和timezone
。 请注意,连接器附带了一个预定义的基于时间的分区程序类,您可能会发现该类对您的用例有用。 您可以通过以下方式使用它:
partitioner.class=io.confluent.connect.storage.partitioner.HourlyPartitioner
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.