Окно магазина Kafka Streams сохраняет дубликаты - PullRequest
1 голос
/ 10 апреля 2019

Документы неясны.Когда бы я хотел установить сохранение дубликатов в false / true.Для чего это используется?Это для чего-то особенного в RocksDB?

https://kafka.apache.org/21/javadoc/org/apache/kafka/streams/state/Stores.html#persistentWindowStore-java.lang.String-java.time.Duration-java.time.Duration-boolean-

Копание потоков, внутренний код, кажется, используется для установки некоторого порядкового номера?

RocksDBWindowStore.java

private void maybeUpdateSeqnumForDups() {
    if (this.retainDuplicates) {
      this.seqnum = this.seqnum + 1 & 2147483647;
    }

1 Ответ

0 голосов
/ 15 апреля 2019

Ну, как видно из названия, вы можете включить сохранение дубликатов, если хотите хранить несколько строк с одним и тем же ключом. Для хранилищ окон ключ состоит из ключа записи и отметки времени начала окна.

Kafka Streams использует эту функцию для соединений KStream-KStream. В этом случае каждая входная запись хранится в своем собственном окне в хранилище (используя метку времени записи в качестве метки времени начала окна). Поскольку может быть несколько записей с одним и тем же ключом и одной и той же временной меткой, необходимо включить этот флаг для вычисления правильного соединения. В противном случае результат объединения может быть неполным.

...