Kafka Streams组通过不重新分区

时间:2019-08-07 12:47:37

标签: group-by apache-kafka streaming apache-kafka-streams

想象一个示例记录,例如:

{
    "a": "string",
    "b": "string",
    "c": "string"
}

字段a是我们在生产者端和KStream端的分组键。现在,我需要基于字段groupBy b并对其应用聚合。据我从documentation所看到的,这将导致数据重新分配。

// group by current key `a`
input.groupByKey().windowBy(...)

// re-key and window again based on `b` which causes data redistribution 
input.selectKey((key, value) -> value.getFieldB()).groupByKey().windowedBy(...)

但是,由于我们的业务逻辑,我们已经知道字段ba相关,并且它将与a驻留在同一分区上。因此,从本质上讲,无需在groupBy期间重新分发数据。

长话短说,我需要一个不会重新分发数据的groupBy版本。

0 个答案:

没有答案