Kafka Connect JDB C Sink Connector: Как удалить запись, которая не имеет значения NULL? - PullRequest
1 голос
/ 06 марта 2020

Есть ли (рекомендуемый) способ удаления записи из JDB Kafka Connect C Sink Connector, где значение записи не равно NULL?

Например, если моя конфигурация JSON включает в себя следующее :

...
"delete.enabled": "true",
"pk.mode": "record_key",
...

И значение моей записи ненулевое, есть ли способ удалить эту запись в базе данных?

Я спрашиваю, потому что значение записи имеет поле, отмечающее если он должен быть удален, т.е. столбец типа «Операция», где «Операция» == «D» должна быть удалена в базе данных через JDB C.

Если есть стандартный / рекомендуемый способ сделать это я хотел бы услышать это. Моя единственная другая идея состояла в том, чтобы создать собственное преобразование, которое проверяет столбец «Операция» на наличие значения «D», и, если оно совпадает, мы возвращаем запись с неповрежденным PK, но со значением, установленным в NULL, то есть надгробной записью который должен быть подобран соединителем как операция удаления. Это возможно?

Я ценю любую помощь, спасибо!

1 Ответ

1 голос
/ 24 марта 2020

Ответов пока нет, но мое хакерское решение сработало:

  • Создал пользовательское преобразование, которое устанавливает значение записи в NULL (делает запись надгробной плиты), если выполняется определенное условие ( в моем случае это проверка поля в значении записи)
  • Преобразование возвращает исходную запись, если условие не выполнено
  • Упаковано в JAR
  • Предоставлен JAR для "плагина" .path "
  • Убедитесь, что" delete.enabled ":" true "и" pk.mode ":" record_key ", чтобы записи надгробий действительно удалялись
  • При отправке запроса POST для создания экземпляра разъем, включите преобразование и любую соответствующую конфигурацию в теле сообщения POST

Надеюсь, это поможет

...