文档尚不清楚。我何时要将保留重复项设置为false / true。这是做什么用的?它是针对RocksDB中的特定内容吗?
在流中浏览内部代码似乎是用来设置一些序列号的?
RocksDBWindowStore.java
private void maybeUpdateSeqnumForDups() {
if (this.retainDuplicates) {
this.seqnum = this.seqnum + 1 & 2147483647;
}
答案 0 :(得分:0)
好吧,顾名思义,如果要使用相同的键存储多行,则可以启用存储重复项。对于窗口存储,键由记录键和窗口开始时间戳组成。
Kafka Streams使用此功能进行KStream-KStream连接。对于这种情况,每个输入记录都存储在商店中其自己的窗口中(使用记录时间戳作为窗口开始时间戳)。由于可能存在具有相同键和相同时间戳的多个记录,因此需要启用此标志来计算正确的联接。否则,联接结果可能不完整。