我有一个来自底层主题的KStream,其类型为[K3,V]K3是由三个字段组成的键,即K3(a,b,c)然而,主题仅由键的字段子集(即K2(a,b))划分。
现在,我想创建一个KTable来连接和使用我的PAPI处理器我希望这个k能加起来k2(a,b)。聚合只是将值收集到一个集合中。
要做到这一点,我将不得不使用“地图”功能转换我的关键从k3到k2。这将(尝试)通过创建新的重新分区主题来重新分区数据(尽管实际数据将保留在相同的分区中,因为它也将使用K2作为分区键),请参见下面拓扑中的“测试customerStoreName重新分区”。
Sub-topology: 0
Source: KSTREAM-SOURCE-0000000000 (topics: [test-customerz])
--> KSTREAM-MAP-0000000003
Processor: KSTREAM-MAP-0000000003 (stores: [])
--> KSTREAM-FILTER-0000000006
<-- KSTREAM-SOURCE-0000000000
Processor: KSTREAM-FILTER-0000000006 (stores: [])
--> KSTREAM-SINK-0000000005
<-- KSTREAM-MAP-0000000003
Sink: KSTREAM-SINK-0000000005 (topic: test-customerStoreName-repartition)
<-- KSTREAM-FILTER-0000000006
有没有一种方法可以在不必通过映射重新分区的情况下进行聚合?