CD C для нескольких потребителей одной и той же таблицы, где каждый потребитель читает разные наборы столбцов - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть таблица (скажем, Сотрудник) с около 130 столбцами, отображающими различные атрибуты / характеристики записи Сотрудника. Теперь у меня есть несколько нисходящих систем, которым нужны данные в виде файла (пакетный процесс), который запускается периодически (каждые 12 часов или 1 день).

Каждый потребитель интересуется только определенными значениями столбца, а не полным набором записей emoployee. Например, Потребитель 1: Требуется столбец 1, 2, 5, 10, 15, 100, 121, 130 Потребитель 2: Требуется 3, 4, 15, 125, 126

И так далее. В настоящее время есть 10-12 различных потребителей, которым нужен другой набор столбцов.

Интересно, что каждый потребитель интересуется только информацией DELTA, которая основана на столбцах, в которых заинтересован этот потребитель. Например, Потребитель 1 должен получить только DELTA, ЕСЛИ есть изменения в столбцах 1, 2, 5, 10, 15, 100, 121, 130.

Существуют ли какие-либо CD C или какие-либо другие инструменты, которые помогают нам выполнить это требование?

PS: Следующие решения были продуманы и планируются. Не уверен, какой из них выбрать:

Ведение таблицы данных предыдущего сотрудника (historyi c) для сотрудника, а затем использование оператора минус ('-') в Oracle для захвата разницы. Например (выберите Col 1, Col2, Col5, Col10 .. от сотрудника за текущий день) - (Выберите Col 1, Col2, Col5, Col10 .. от сотрудника за предыдущий день).

Этот параметр был не учитывается, поскольку (1) данные в таблице текущего дня-сотрудника продолжают изменяться в режиме реального времени из источника и (2) придется создавать таблицу для каждого последующего потребителя.

Пожалуйста, предложите инструмент или решение.

1 Ответ

0 голосов
/ 19 февраля 2020

Продукт IBM IDR имеет функцию "KCOP" (процессор пользовательских операций Kafka). Это позволяет вам определять любое количество записей для записи в Kafka в ответ на событие DML. Таким образом, с одного события CD C вы можете записать в различные темы настроенные данные для каждого приложения, которые должны только читать соответствующие топи c затем.

Кроме того, есть KCOP, которые предоставляют значения до и после Таким образом, вы можете программно определить, когда записывать запись, основываясь на том, было ли изменение между интересующими столбцами до и после. Таким образом, каждая полученная топика c может содержать запись только в том случае, если в ней имеется соответствующее изменение столбца.

https://www.ibm.com/support/knowledgecenter/en/SSTRGZ_11.4.0/com.ibm.cdcdoc.cdckafka.doc/concepts/kafkakcop.html

Существуют и другие потенциальные средства достижение некоторых из ваших целей, но это пример того, как IDR продукта IBM может удовлетворить вашу цель.

...