Кафка стрим KTable список изменений TTL - PullRequest
0 голосов
/ 21 мая 2019

Допустим, у меня есть A-Event KStream, агрегированный в A-Snapshot KTable, и B-Event KStream, агрегированный в B-Snapshot KTable.Ни A-Snapshot, ни B-Snapshot не передают нулевые значения (вместо этого события удаления агрегируются как атрибут состояния моментального снимка).На данный момент мы можем предположить, что у нас есть постоянная тема журнала изменений kafka и локальное хранилище rockDB для агрегаций A-KTable и B-KTable.Затем моя топология объединит A-KTable с B-KTable, чтобы получить объединенный AB-KStream.Тем не менее, моя проблема связана с жизненными циклами материализации A-KTable и B-KTable (как с темой журнала изменений, так и с локальным хранилищем rocksdb).Допустим, для стратегий хранения темы A-Event и B-Event задано значение 2 недели, есть ли способ побочного эффекта внутренней политики хранения темы материализации KTable (changelog и rocksDB) с помощью темы удаления политики хранения в вышестоящем событии?Иначе, можем ли мы сконфигурировать материализацию KTable с помощью какой-то политики хранения, которая бы управляла как темой журнала изменений, так и жизненным циклом хранилища rockdb?Учитывая, что я не могу явно испустить A-KTable и B-KTable надгробия?Я обеспокоен тем, что журнал изменений и локальный магазин будут расти бесконечно, ..,

1 Ответ

2 голосов
/ 21 мая 2019

В настоящее время KStream не поддерживает встроенную функциональность для внедрения очистки в разделы журнала изменений на основе политики хранения исходных разделов.По умолчанию он использует «компактную» политику хранения.

Для этой же проблемы существует открытая проблема JIRA: https://issues.apache.org/jira/browse/KAFKA-4212

Один из вариантов - добавить сообщения-захоронения, но это не так.хороший способ.
В случае оконного хранилища вы можете использовать политику хранения "compact, delete".

...