Проблема с разъемом debezium DataflowTemplates

#google-cloud-pubsub #dataflow #debezium

#google-cloud-pubsub #поток данных #debezium

Вопрос:

Я ссылаюсь на этот документ для выполнения mysql (установленного на локальном компьютере) для потоковой передачи данных pubsub с использованием debezium connector.

Мой файл свойств выглядит следующим образом

 databaseName=testdb 
databaseUsername=root 
databaseAddress=localhost 
databasePort=3306 
gcpProject=GCP_project_name 
databasePassword=password 
whitelistedTables=instance-name.testdb.testtab 
singleTopicMode=true 
gcpPubsubTopicPrefix=debeziumTest 
databaseManagementSystem=mysql
  

Я уже создал тему в pubsub с именем «debeziumTest».

Но проблема в том, что когда я запускаю sudo mvn exec:java -pl cdc-embedded-connector -Dexec.args="/path/to/properties-file"

, он работает без каких-либо ошибок: введите описание изображения здесь

но в pubsub нет данных, загруженных.

Комментарии:

1. как вы узнали, что имя вашего экземпляра называется «instance-name»

2. Это имя хоста моего экземпляра.

3. Не уверен, что вы все еще работаете над этой проблемой, но пока она запущена, вы пытались вносить изменения в свою базу данных MySQL, например, выполнять некоторые вставки / обновления / удаления DML? Был бы заинтересован в вашем ответе. Я столкнулся с той же проблемой.

4. Я бы предложил добавить / настроить файл log4j.properties в src /main /resources, чтобы получить некоторый вывод журнала. Возможно, вы найдете там несколько подсказок.

Ответ №1:

На основании документации обновления таблиц передаются в раздел, соответствующий этому формату — $ {PREFIX} $ {DB_INSTANCE}.$ {DATABASE}.$ {TABLE}

В вашем случае, я считаю, вам следует создать тему с именем — «debeziumTestinstance-name.testdb.testtab»

Возможно, это не единственная проблема, основанная на предупреждениях, которые я вижу в журналах, которыми вы поделились.

Комментарии:

1. Я использую режим с одной темой. Итак, согласно документу, мы должны указать полное название темы в параметре «gcpPubsubTopicPrefix». Упомянутый вами формат названия темы предназначен для режима нескольких тем

2. Мой плохой, не видел опцию режима с одной темой. Я использовал debezium с Kafka Connect и столкнулся с проблемами с названиями тем. Поэтому я подумал, что это может быть и здесь.

3. Dhruv, вы убедились, что binlog включен в базе данных MySQL и внесенные изменения (например, выполнение запроса update или insert в таблице базы данных MySQL) записываются в binlog, чтобы Debezium мог получить изменения?

4. ДА.. все события сохраняются в файлах mysql-bin.

5. перейдите к этой же проблеме. Ребята, есть прогресс в этом?

Ответ №2:

Похоже, проблема связана с вашими таблицами белого списка.

Согласно документации, которую вы должны использовать ${instance}.${database}.${table} , для вашего данного примера это должно быть whitelistedTables=testdb.databaseName.testTab (если testTab — ваше имя таблицы)