kafka连接接收器分区:子分区?

0md85ypi  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(292)

如果运行kafka连接接收器,则指定 .properties 输入文件,指定 partitioner.class 例如 FieldPartitioner 它可以基于中指定的记录字段进行分区 partition.field.name .
那么,如果我想要两层分区呢?例如,我想在顶层按日期时间分区,然后按记录字段进行子分区?或者简单地用两个字段划分?在spark中,这种情况其实很常见。
基于属性配置文件格式的结构,我认为这是不允许的。这个假设正确吗?

hwamh0ep

hwamh0ep1#

听起来您必须编写自己的分区类来实现 Partitioner 接口。它可以选择使用两类分区器中的一个作为基类(可能是 TimeBasedPartitioner 或者 FieldPartitioner ),无论哪一个携带了最多的功能,都可以实现您想要实现的目标。
目前还没有一种方法仅通过配置来实现这种类型的分区。但听起来很有用。另外,我不确定您指的是哪种类型的接收器,但如果是与存储相关的,则可能需要使用kafka connect storage common repo中包含的与分区相关的代码

相关问题