1: N объединяет потоки и таблицы K SQL - PullRequest
1 голос
/ 04 мая 2020

В настоящее время я использую 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 присоединиться, как я описал выше?

Заранее спасибо

...