Kafka Streams: возможно ли иметь политику «компактности, удаления» в государственных хранилищах? - PullRequest
0 голосов
/ 31 мая 2018

По умолчанию хранилища состояния Kafka Streams «компактны».Можно ли установить «сжатие, удаление» с политикой хранения в хранилище состояний?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Да, можно настроить темы с сохранением и уплотнением, и Kafka Streams использует этот параметр для оконных KTable с.

Если вы действительно хотите установить это, вы можете обновить соответствующую конфигурацию темы журнала измененийвручную после его создания.

Однако установка времени хранения темы для тем журнала изменений удаляет данные только из темы.Данные не удалены в локальном государственном хранилище.Государственные хранилища не предлагают TTL, и RocksDBs Настройка TTL не может быть включена (по техническим причинам, которые мы надеемся в конечном итоге решить).

Если вы хотите удалить данные чисто, вы должны использовать надгробные сообщения, которые будут удалять данныеиз магазина, а также в разделе журнала изменений (вместо использования времени хранения).

0 голосов
/ 31 мая 2018

Если вы используете хранилище RocksDBStore по умолчанию, есть возможность установить CompactionStyle в FIFO:

Стиль сжатия FIFO - это самая простая стратегия сжатия.Он подходит для хранения данных журнала событий с очень низкими издержками (например, журнал запросов).Он периодически удаляет старые данные, поэтому в основном это стиль сжатия TTL.

, а затем используется TTL:

Введена новая опция, compaction_options_fifo.ttl.для этого необходимо удалить файлы SST, для которых истек срок действия TTL.Эта функция позволяет пользователям удалять файлы по времени, а не всегда по размеру, например, удалять все файлы SST старше недели или месяца.

RocksDB FIFO doc

Чтобы фактически установить FIFO, вы должны реализовать RocksDBConfigSetter и установить его в качестве свойства конфигурации: rocksdb.config.setter

...