对包含墓碑值的 ktable 执行 groupby 时会发生什么? 好像groupby没有被评估,但是tombstone会像filter方法一样被转发吗?
KTable 不能“包含”逻辑删除,因为它会被解释为相应键的删除。
但是,如果您有
KTable#groupBy()
并且上游中删除了某些内容 KTable
,则 groupBy/aggregate 会更新,以便从聚合结果中删除旧值。
示例:上游
KTable
有 3 个条目:<k1,a>, <k2,b>, <k3, a>
,您可以按值分组并进行计数。结果 KTable
将包含:<a, 2>, <b, 1>
。
如果您获得上游
<k1, null>
的墓碑KTable
,结果KTable
将更新为<a, 1>, <b, 1>
。
@Matthias 我在 KStream 中进行逻辑删除并将数据存储在 KTable 中后执行聚合。我发现墓碑不起作用。如果我只使用墓碑,那么它会按预期工作。任何想法。
代码片段如下:
.groupByKey().aggregate((),null, 聚合器,物化。