Запустить Confluent JDBC Connector в определенное время вместо использования интервала опроса? - PullRequest
0 голосов
/ 18 февраля 2019

Мы пытаемся скопировать данные из таблицы базы данных в Kafka, используя Confluent JDBC-Source коннектор .Проблема в том, что данные в этой таблице обновляются ровно один раз каждую ночь, поэтому мы хотели бы копировать последние данные после обновления таблицы, например, мы бы хотели, чтобы соединитель работал в 7 утра каждый день.Это возможно?

Документация показывает только свойство интервала опроса, мы могли бы использовать его, только если установить poll.interval на 24 часа, но тогда мы должны были бы запустить соединитель в 7 утра, чтоэто не совсем элегантное решение.Есть ли лучший способ сделать это?

Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2019

Kafka и Kafka Connect на самом деле не предназначены для «пакетной».То есть вы можете использовать его пакетно-управляемым способом, но концепция его интеграции в описанный вами последовательный рабочий процесс не является родной для него.

Интервал опроса соединителя JDBC таков, что вы можете периодически проверять наличие новых данных со скоростью, с которой вы получаете баланс между нагрузкой на исходную систему (из опроса) и задержкой полученных данных.

Почему бы не настроить соединитель на опрос каждые несколько минут (или несколько раз в час; что угодно), а затем, как только появятся новые данные, он их извлечет. Никаких новых данных, никаких новых записей.

В качестве альтернативы, вы можете использовать REST API Kafka Connect для программного запуска и остановки соединителя.Перед вашей нагрузкой, пауза разъема.После загрузки возобновите разъем.Если вы используете паузу / резюме, обратите внимание, что вы все равно захотите правильно установить интервал опроса.Вы также можете просто удалить и воссоздать его каждый раз.

Вы также можете рассмотреть подход CDC на основе журнала ( за и против ).

...