Соединитель Debezium kafka connect не обновляется

Я пытаюсь CDC с помощью Debezium и Kafka. Я зарегистрировал коннектор с 3 таблицами в свойстве table.whitelist, и он работает правильно. Вот конфигурация работающего коннектора.

{"name":"xoom-eds-extactor","config":{"connector.class":"io.debezium.connector.mysql.MySqlConnector","database.user":"debezium","database.server.id":"1","database.hostname":"qa514dtc001.ord.qa001.xoom.com","database.password":"xoom123","database.history.kafka.bootstrap.servers":"eds-kafka1:9092","database.history.kafka.topic":"dbhistory.inventory","name":"xoom-eds-extactor","database.server.name":"MySQL-Database-Docker","database.port":"3306","include.schema.changes":"true","table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"},"tasks":[{"connector":"xoom-eds-extactor","task":0}],"type":"source"}

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

Команда:

curl -X PUT -H "Content-Type: application/json" --data @xoom-eds-extactor-conf.json "http://eds-kafka1:8083/connectors/xoom-eds-extactor/config"

Конфигурация json:

{
   "name":"xoom-eds-extactor",
   "connector.class":"io.debezium.connector.mysql.MySqlConnector",
   "database.hostname":"qa514dtc001.ord.qa001.xoom.com",
   "database.port":"3306",
   "database.user":"debezium",
   "database.password":"xoom123",
   "database.server.id":"1",
   "database.server.name":"MySQL-Database-Docker",
   "database.history.kafka.bootstrap.servers":"eds-kafka1:9092",
   "database.history.kafka.topic":"dbhistory.inventory",
   "include.schema.changes":"true",
"table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"
}

Это выполняется успешно, но когда я перечисляю темы Kafka, присутствуют только последние 3 темы, 2 новые темы не добавляются.

MySQL-Database-Docker
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.account_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.credit_card_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.postal_code_mock
__consumer_offsets
connect-configs
connect-offsets
connect-status
dbhistory.inventory

Может ли кто-нибудь помочь мне с этим? Заранее спасибо.


person Aman Saurav    schedule 29.05.2019    source источник
comment
Привет, Аман! Какую версию Debezium вы используете?   -  person james.bondu    schedule 30.05.2019


Ответы (1)


Насколько мне известно, существовал старый ожидающий PR, связанный с этой проблемой, и он должен был быть исправлен в 0.9.1 выпуске. Но если вы используете старую версию, вы можете просто выполнить следующие действия.

  • Добавьте новые таблицы, но пока не пишите в них
  • Отключите разъем
  • Измените конфигурацию фильтра и установите режим снимка на «schema_only_recovery».
  • Удалить (или переименовать) существующую тему истории БД
  • Перезагрузите разъем; это воссоздает внутреннюю историю схемы БД, а затем продолжит потоковую передачу с ранее записанного смещения
  • Начните писать в новые таблицы

По крайней мере, это то, что мы делаем (мы все еще используем 0.8.2).

Источник: debezium-google-group.

person james.bondu    schedule 30.05.2019