Группировка нескольких ключевых значений Кафки в одно Ключевое значение

#apache-kafka #apache-kafka-streams

Вопрос:

У меня есть тема, которая фиксирует текущее положение видео, которое смотрят пользователи. События добавляются каждую секунду.

Я хочу сохранить последнюю позицию видео, в которой все пользователи находятся каждые 30 секунд, чтобы ограничить звонки в БД.

Есть ли способ получить последние позиции всех пользователей (последние значения для всех уникальных ключей), чтобы я мог выполнить одно обновление?

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

Например, если моя тема выглядит так:

Вклад в тему:

Ключевое Значение

 User1 1 User1 2 User2 1 User1 3 User2 2 User1 4  

Ожидаемый результат вместе в виде одной записи:

 User1 4 User2 2  

Я могу попытаться уточнить больше, если это необходимо (я новичок в мире Кафки).

Комментарии:

1. Зачем вам нужна одна запись? Вы должны иметь возможность перебирать все ключи из таблицы K

2. Я хочу, чтобы одна запись представляла обновление БД. Таким образом, ключ представляет собой группу обновлений, а значение будет содержать последний ключ/значения, которые будут использоваться для выполнения обновления. По сути, я хочу использовать KTable для буферизации обновлений БД, которые, я думаю, будут хорошо работать, так как в них всегда будут последние значения, которые мне нужны.