使用kafka streams dsl,这就是我想做的:
输入消息serdes:avro用于key和value key:record with fields l1,l2,l3 value:record with value v(在本例中为int)
我要做的是以这样一种方式来瓦解这个继承权,即生成的流具有正确的汇总值。例如,
Input:
L1 L2 L3 V
a1 b1 c1 v1
a1 b1 c2 v2
a1 b2 c1 v3
a1 b2 c2 v4
a2 b1 c1 v5
Output 1: (Data wanted at L1, L2)
L1 L2 V
a1 b1 v1 + v2
a1 b2 v3 + v4
a2 b1 v5
Output 2 (Data wanted at L1)
L1 V
a1 v1 + v2 + v3 + v4
a2 v2
有没有一种方式流dsl会允许这一点?请注意,所有输出的键类型都会发生变化,我找不到执行这些rekey+聚合的方法(因为rekey本质上应该合并多个值)。虽然可以使用处理器api或基本的kafka使用者来实现这一点,但是您想看看如何在dsl中实现这一点(如果可能的话)。
1条答案
按热度按时间hwamh0ep1#
你应该可以使用
selectKey()
: