Kafka Connect Sink 分区:子分区?

Kafka Connect Sink Partitioning: Sub-Partitioning?

如果我 运行 一个 Kafka Connect Sink,我指定一个 .properties 输入文件,指定一个 partitioner.class 例如 FieldPartitioner 可以根据记录进行分区partition.field.name.

中指定的字段

那么,如果我想要两级分区怎么办?例如,我想在顶层按日期时间进行分区,然后按记录字段进行子分区?或者简单地按两个字段划分?在Spark中,这其实很常见。

根据属性配置文件格式的结构,我推测这是不允许的。这个推定是否正确?

听起来您必须编写自己的分区 class 来实现 Partitioner 接口。它可以选择使用两类分区程序之一作为基础 class(可能是 TimeBasedPartitionerFieldPartitioner),以实现您想要实现的功能最多为准。

目前还没有办法仅通过配置来实现这种类型的分区。不过听起来很有用。另外,我不确定你指的是哪种类型的接收器,但如果它与存储相关,你可能想使用包含在 kafka-connect-storage-common repo

中的分区器相关代码