Повторяющиеся данные в таблице ksql | Как обновить строки таблицы ksql в том же обновлении ROWKEY? - PullRequest
1 голос
/ 05 апреля 2019

Я создал table в ksql из kafka topic.Выдвинул набор данных в тему и таблицы заполнены.Разместил запрос и получил ответ тоже.Во второй раз я помещаю те же данные в topic, и table загружается снова.Теперь, когда я запрашиваю, отклик - это 2 строки вместо 1 с двумя разными ROWTIME временными метками.

Я считаю, ksql table должно перезаписать значение, если входит тот же самый key, и сохранить последнее значение.Но этого не происходит.Правильно ли мое понимание?

Что нужно сделать, чтобы table сохранил последнее значение и отменил предыдущее значение для того же ключа, которое было вставлено / обновлено?Спасибо

1 Ответ

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

Насколько я знаю, невозможно применить политику сжатия журналов, чтобы сохранять точно одно сообщение на ключ.Даже если вы установите cleanup.policy=compact (уровень темы) или log.cleanup.policy=compact (глобальный уровень), нет гарантии, что будут сохранены только самые последние сообщения, а более старые будут сжаты.

В соответствии с официальной документацией Kafka :

Сжатие журналов дает нам более детальный механизм хранения, так что мы гарантированно сохраняем по крайней мерепоследнее обновление для каждого первичного ключа

...