Исходный соединитель Debezium SQL Server пропускает записи после перезапуска соединителя

Я использую исходный соединитель Debezium CDC SQL Server, чтобы брать данные с SQL-сервера и помещать их в Kafka. Я использую следующие конфигурации:

name=ds1
connector.class=io.debezium.connector.sqlserver.SqlServerConnector
tasks.max=1
database.server.name=server2
database.hostname=localhost
database.port=1433
database.user=sa
database.password=Password!
database.dbname=demo
#table.whitelist=mytable
database.history.kafka.bootstrap.servers=localhost:9092
database.history.kafka.topic=schema-changes.demo

когда я перезапускаю свой коннектор с тем же именем, данные, которые были созданы сейчас, не собираются коннектором. Есть ли что-то, что я делаю неправильно, или мне нужно добавить какую-то другую конфигурацию для моего коннектора?


person Random Coder    schedule 26.06.2020    source источник


Ответы (1)


Это именно ожидаемое поведение. Kafka Connect будет использовать имя коннектора для хранения смещений, с которых были прочитаны данные в исходной системе. При перезапуске коннектора Kafka Connect не будет повторно обрабатывать данные, которые уже были прочитаны, иначе вы получите нежелательные дубликаты.

Если вы действительно хотите повторно обработать существующие данные, самый простой способ - создать коннектор с новым именем.

person Robin Moffatt    schedule 26.06.2020
comment
да, это правильно, но после загрузки соединителя с тем же именем, если я попытаюсь вставить записи сейчас в таблицу базы данных, эти новые записи также не будут захвачены соединителем, это также известное поведение - person Random Coder; 26.06.2020
comment
есть ли ошибки в вашем рабочем журнале Kafka Connect? - person Robin Moffatt; 26.06.2020