У нас есть одна тема, которая называется igrationstatus , предположим, что мы разбиваем ее так, чтобы все экземпляры и события для данного MigrationCandidateNumber всегда заканчивались одной и той же темой и разделом.
Следующее событие прибывает в 12-10-2019 в 10:00
{
"MigrationCandidateNumber": 54545451,
"MigrationStatus":"Final Bill Produced"
}
Следующее событие наступает 14-10-2019 в 08:00
{
"MigrationCandidateNumber": 54545451,
"MigrationStatus":"Product Ready"
}
Следующее событиеприбытие 17-10-2019 в 12:00
{
"MigrationCandidateNumber": 54545451,
"MigrationStatus":"Registration Complete"
}
Постановка задачи:
После того, как все 3 из этих событий были обработаны, нам нужно создать событие ниже на * 1018Тема *igrationstatus-out , как показано ниже:
{
"MigrationCandidateNumber": **54545451**,
"MigrationStatus":"**Ready for extract 2**"
}
Широкое временное окно является преднамеренным, поскольку первые 3 события могут наступить с разницей в несколько дней.
Лучший способ сделать это снет внешней базы данных?
Решение Попытка:
- Вы не можете использовать агрегированное оконное агрегирование, потому что мы не уверены, когда наступит событие.
- создал 3 потока из основного потока для различного статуса миграции, но снова объединения потоковых окон являются оконными.
- Для этого сценария я не вижу способа агрегирования данных, чтобы мы хранили данные в таблице KSQL и выполняли группирование, чтобы проверить, поступили ли сообщения со всем статусом.
Я знаю, что это широко открытый вопрос, и в основном он связан с подходом к решению проблемы, а не с технической проблемой, но я не смог найти лучшего форума для публикации этого.