当键的实际值在更新后保持不变时,Kafka表的更改日志是否向其流中发送新事件?

时间:2018-06-19 11:38:46

标签: apache-kafka apache-kafka-streams

假设我有KTable跟踪位置数据(例如:{'Susan': 'Paris'}),并使用该表的toStream方法实现了变更日志流。

我知道,如果要通过更改键Susan(例如:Berlin)来更新表,那么changelog流将发出一个新事件{'Susan': 'Berlin'}。但是,如果更新后的值与上一个值相同怎么办?例如,在聚合操作期间,我们第二次将Susan设置为Berlin

变更日志是否会发出第二个{'Susan': 'Berlin'}事件,还是仅当新旧值之间存在差异时才将新事件添加到变更日志流中?

1 个答案:

答案 0 :(得分:3)

总是发出更新。没有检查可以将新旧值进行比较,而是假设新值与旧值不同,因此每次都会发出该值。