Kafka Streams: RocksDB TTL - PullRequest
       8

Kafka Streams: RocksDB TTL

0 голосов
/ 27 июня 2018

Я понимаю, что по умолчанию TTL установлен на бесконечность (не положительно). Однако если нам нужно хранить данные в хранилище не более 2 дней, можем ли мы выполнить переопределение с помощью реализации интерфейса RocksDBConfigSetter, то есть options.setWalTtlSeconds (172800)? ИЛИ это будет противоречить внутренним потокам Кафки?

Ref: https://docs.confluent.io/current/streams/developer-guide/config-streams.html#streams-developer-guide-rocksdb-config

1 Ответ

0 голосов
/ 28 июня 2018

В настоящее время это невозможно. Kafka Streams отключает функцию TTL в RocksDB жестко, по различным техническим причинам. На это также есть билет: https://issues.apache.org/jira/browse/KAFKA-4212

Насколько известно, вы можете использовать оконное хранилище для истечения срока действия старой записи через 2 дня. Т.е. вы делаете stream.groupByKey().windowedBy(...).reduce(...) с TimeWindow в 1 мс и «фиктивным» уменьшением, которое просто возвращает последнее значение для ключа.

...