debezium-examples
Сгенерировать CLUSTER_ID для Кафки
sudo docker image pull confluentinc/cp-kafka:7.6.2sudo docker container run -it --rm confluentinc/cp-kafka:7.6.2 sh -c "/bin/kafka-storage random-uuid"
Стандартный порядок действий
- Апнуть контейнеры из файла
docker-compose.yml
в папкеcompose
и дождаться пока всё запустится. - Открыть UI по адресу http://localhost:8080/ui/clusters/kafka/connectors и добавить коннекторы из папки
connectors
. - Открыть DBeaver, подключиться к БД источника и запустить скрипт из папки
sql/источник/dml
. - Подключиться к БД приёмника, посмотреть результат.
Нужно иметь в виду, что чтение лога, формирование топиков и перенос в целевую БД может происходить с задержкой в несколько минут.
Настройка БД для чтения логов с помощью Debezium
Для использования Debezium каждую базу данных необходимо соответствующим образом настроить, например: включить ведение логов, создать техническую УЗ и дать ей соответствующие права и т.п. Примеры таких настроек приведены в документации Debezium для каждого типа коннектора. Однако, в вашем конкретном случае могут быть нюансы, и нужно быть готовым в случае ошибок изучать логи и "дорабатывать напильником".
В рамках этого репозитория, по умолчанию, все скрипты для настройки БД лежат в папке exampleNN/sql/DBNAME/sql/startup
, примонтируются в контейнер соответствующей БД и выполняются при старте контейнера, если такой вариант возможен. Если нет, то в примере будут приведены тексты скриптов, которые необходимо выполнить вручную.
Примеры строк подключения к БД для DBeaver
MySQL
jdbc:mysql://localhost:3306/example1?allowPublicKeyRetrieval=True
PostgreSQL
jdbc:postgresql://localhost:5432/testdb