#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 для буферизации обновлений БД, которые, я думаю, будут хорошо работать, так как в них всегда будут последние значения, которые мне нужны.