Когда я создаю таблицу с Первичным ключом в PostgreSQL 10
create table test (t1 int, t2 varchar, primary key(id));
и передавать данные из PostgreSQL в Kafka через Debezium, используя wal2json с этими SQL
insert into test values (1, 'Test1');
update test set t2='Test2' where t1=1;
delete from test where t1=1;
Я получаю эти JSON
от kafka Consumer:
Вставить (Cсоздать)
{
"before": null,
"after": {
"t1": 1,
"t2": "Test1"
...
}
Обновление
{
"before": {
"t1": 1,
"t2": null
},
"after": {
"t1": 1,
"t2": "Test2"
...
}
Удалитьудалить
{
"before": {
"t1": 1,
"t2": null
},
"after": null,
...
}
Но когда я создаю таблицу без первичного ключа
create table test (t1 int, t2 varchar);
и передавать данные из PostgreSQL в Kafka, я получаю JSON
только для insert
, а не для update
и delete
{
"before": null,
"after": {
"t1": 1,
"t2": "Test1"
...
}
Я прочитал эту документацию, в которой говорится, что
Плагин wal2json не генерирует события для таблиц без первичных ключей
Таким образом, есть ли какое-либо обходное решение для использования CDC в таблицах без Primary Key, чтобы также получить update
и delete
? (Поскольку почти все таблицы уже были созданы без Primary Key)