ETL с использованием конфлюэнтного подключения kafka

У нас есть вариант использования, когда мы используем Kafka для подключения к данным Source и Sink. Это похоже на типичный ETL.

Мы хотим понять, может ли Kafka connect определять дельта-изменения между предыдущими потоками. т.е. мы хотим отправлять клиенту только измененные данные, а не всю таблицу или представление. Кроме того, мы предпочитаем не выполнять явный код для идентификации изменений с помощью запроса в исходной и целевой БД.

Есть ли какой-нибудь предпочтительный подход к этому?


person athenatechie    schedule 10.10.2017    source источник


Ответы (2)


Как сказал гаспармс, используйте инструмент CDC, чтобы вытащить все события изменений из вашей базы данных. Затем вы можете использовать Kafka Streams или KSQL для фильтрации, присоединения и агрегирования в соответствии с требованиями вашего ETL.

Из какой исходной системы вы хотите получать данные? Для Oracle (и нескольких других источников), начиная с GoldenGate 12.3.1, они фактически объединяют обработчик Kafka Connect как часть скачать сам. У вас также есть другие варианты, такие как DBVisit.

Для БД с открытым исходным кодом Debezium определенно отвечает всем требованиям, и есть хороший здесь.

person Robin Moffatt    schedule 11.10.2017

Вы смотрели подход CDC (изменение данных). Существует несколько коннекторов, которые читают журнал фиксации или аналогичные данные в базе данных и транслируют события. Используя эти события, вы получите каждое изменение в таблице.

Примеры

Oracle Golden Gate - http://www.oracle.com/technetwork/middleware/goldengate/oracle-goldengate-exchange-3805527.html

Postgres - https://github.com/debezium

MySQL - https://github.com/debezium

person gasparms    schedule 10.10.2017