мы отправляем данные из DB2 (таблица-1) через CDC в темы Kafka (тема-1).
нам нужно согласовать данные DB2 и темы Kafka.
у нас есть два варианта -
a) перенести все данные темы kafka в DB2 (в виде таблицы-1-копии), а затем выполнить внешнее левое соединение (между таблицей-1 и таблицей-1-копией), чтобы увидеть несовпадающие записи, создать дельту и толкни его обратно в кафку.
проблема : Масштабируемость - наш набор данных составляет около миллиарда записей, и я не уверен, что DB2 DBA позволит нам выполнить такую огромную операцию соединения (которая может легко длиться более 15-20 минут).
b) снова вставьте DB2 в параллельную тему kafka (topic-1-copy), а затем выполните некоторое решение на основе потоков kafka, чтобы выполнить левое внешнее соединение между kafka topic-1 и topic-1-copy. Я все еще оборачиваюсь вокруг ручьев Кафки и оставляю внешние соединения.
Я не уверен, смогу ли (используя систему управления окнами в потоках kafka) сравнить ВСЕ содержимое темы-1 с темой-1-копией.
Что еще хуже, тема-1 в Кафке является компактной темой,
поэтому, когда мы помещаем данные из DB2 обратно в Kafka topic-1-copy, мы не можем определенно запустить цикл kafka topic-уплотнения, чтобы убедиться, что и topic-1, и topic-1-copy полностью сжаты перед выполнением какого-либо сравнения операция на них.
в) есть ли другой вариант структуры, который мы можем рассмотреть для этого?
Идеальное решение должно масштабироваться для данных любого размера.