Kafka Connect с MSSQL не работает для операций удаления - PullRequest
0 голосов
/ 08 января 2019

Я использую Kafka Connect с Confluent MSSQL коннектор на SQL Server 2014. Я попытался операции вставки и обновления, и они работают правильно, выдвигая правильную запись в Kafka. Если я удаляю запись, я получаю это по теме Кафки:

{"schema":null,"payload":null}

Я ожидаю вместо этого детали удаленных записей.

Я включил CDC с помощью следующих команд:

ALTER DATABASE WebAppDb SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) 
GO 
ALTER DATABASE WebAppDb SET ALLOW_SNAPSHOT_ISOLATION ON 
GO 
ALTER TABLE dbo.Users ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)
GO

Ответы [ 2 ]

0 голосов
/ 08 января 2019

На самом деле это сообщение об удалении, если ваша полезная нагрузка равна нулю, это означает, что запись была удалена, теперь вы можете проверить сообщение key и выполнить желаемое удаление для вашего потребителя.

Как вы видите, полезная нагрузка на данный момент действительно неправильная, в Kafka Connect была ошибка, из-за которой преобразование Json не позволяло выдавать tombstone сообщения, поэтому вы видите это так "

{"schema":null,"payload":null}

Когда будет выпущено исправление, ваше сообщение должно иметь тело null, но вы можете действовать одинаково в отношении удаления в обоих случаях.

Подробнее об ошибке здесь

Подробнее о надгробных сообщениях здесь

0 голосов
/ 08 января 2019

Я бы проверил используемый коннектор и версию MSSQL-сервера, поскольку согласно веб-сайту Confluent для коннектора Microsoft SQL Server Kafka Connect

Сбор данных изменений - это функция, которая доступна только в выпусках SQL Server Enterprise и Developer

Затем проверьте ответ на этот вопрос и информацию о коннекторе Debezium для SQL Server .
Похоже, что проблема все еще должна быть реализована, так как она все еще открыта на Github

...