От таблицы Postgres до таблицы K SQL с отслеживанием обновлений - PullRequest
0 голосов

Моя задача - перенести данные из таблицы Postgres в таблицу K SQL (для будущих соединений с потоками). Давайте представим, что таблица имеет три записи:

id | name   | description
-------------------------
1  | name1  | description1
2  | name2  | description2
3  | name3  | description3

Это легко сделать с помощью Kafka JdbcSourceConnector. Но есть одна маленькая проблема - данные в таблице могут быть изменены. Изменения должны быть и в KTable.

Согласно документации, нет способа отслеживать изменения, кроме режима массовой записи. Но массовый режим берет абсолютно все строки и вставляет их в topi c.

Я подумал настроить режим объемной передачи для разъема. Создайте KSream для этой топи c. Создайте KTable для этого потока ...

И здесь я не знаю, что делать. Как сделать так, чтобы изменения в таблице Postgres были и в KTable?

1 Ответ

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

Массовый режим будет работать, вы просто определяете ключ потока, тогда новые массовые записи обновят KTable того же ключа. Другими словами, вам нужно убедиться, что первичные ключи не изменились в вашей базе данных


В качестве альтернативы, Debezium является версией Kafka Connect для CD C.

JDB C источник не захватывает запросы ОБНОВЛЕНИЯ, как вы заявили.

Debezium создаст записи, которые содержат предыдущие и новые версии измененных строк

...