В настоящее время я использую Debezium для потоковой передачи событий из двух таблиц коммерческого приложения, INVOICE и INVOICE_LINE. Как можно догадаться по именам, между двумя таблицами существует отношение 1: N, для каждого счета будет строка в таблице INVOICE и N в INVOICE_LINE.
INVOICE
-------------
ID
DESCRIPTION
INVOICE_DATE
STATUS
-------------
INVOICE_LINE
------------
ID
INVOICE_ID
DESCRIPTION
AMOUNT
PRICE
CURRENCY
------------
Счета изначально созданы в статусе «NEW», но они официально не завершены (и, следовательно, не готовы к дополнительной обработке), пока они не будут в статусе «PROCESSED».
Используя темы, созданные Debezium, я хотел бы предоставить своему потребителю счета, которые изменили свой статус на «ОБРАБОТАНО» (заголовок и строки). Между первоначальным созданием счета и изменением статуса на «ОБРАБОТАНО» может быть разница в несколько дней.
В связи с этим моей стратегией было создание таблицы K SQL с invoice_lines и join это с отфильтрованным потоком обработанных счетов K SQL. Тем не менее, это кажется невозможным, поскольку для соединения можно использовать только ключ K SQL. Обычно в этом случае рекомендуется повторно ввести таблицу K SQL, однако, поскольку в каждом СЧЕТЕ может быть более одного INVOICE_LINE, это не сработает в моем случае.
Какой рекомендуемый подход для 1 : N присоединиться, как я описал выше?
Заранее спасибо