我在检测Postresql超级表(TimescaleDB扩展)上的更改时遇到了问题。
设置:
我安装了Postresql(ver11.10)和TimescaleDB(ver1.7.1)扩展。我有两个表,我想用Debezium(ver1.3.1)连接器监视它们,安装在Kafka上,用于CDC(捕获数据更改)。
表是table1和table2hyper,但是table2hyper是超表的。
在Kafka Connect中创建Debezium连接器之后,我可以看到创建了两个主题(每个表一个):
当使用kafka-console-使用者使用主题A的消息时,我可以在table1中看到行更新后的消息。
但是,当使用来自主题B(table2hyper表更改)的消息时,不会在table2hyper表中的行更新之后发出任何消息。
最初,Debezium连接器会对table2hyper表中的行进行快照,并将它们发送到主题B(我可以在使用kafka-console-使用者时看到主题B中的消息),但是在初始快照之后所做的更改不会发出。
为什么我无法从table2hyper中看到后续的更改(在初始快照之后)?
连接器创建有效载荷:
{
"name": "alarm-table-connector7",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"tasks.max": "1",
"database.hostname": "xxx",
"database.port": "5432",
"database.user": "xxx",
"database.password": "xxx",
"database.dbname": "xxx",
"database.server.name": "kconnect",
"database.whitelist": "public.dev_db",
"table.include.list": "public.table1, public.table2hyper",
"plugin.name": "pgoutput",
"tombstones.on.delete":"true",
"slot.name": "slot3",
"transforms": "unwrap",
"transforms.unwrap.type":"io.debezium.transforms.ExtractNewRecordState",
"transforms.unwrap.drop.tombstones":"false",
"transforms.unwrap.delete.handling.mode":"rewrite",
"transforms.unwrap.add.fields":"table,lsn,op"
}
}
提前行动!
发布于 2021-02-01 15:40:12
发布于 2021-02-02 01:24:50
我们从未用TimescaleDB测试过Debezium。我建议您检查TimescaleDB更新是否存在于逻辑轮询槽中。如果是的话,技术上应该可以让Debezium处理这些事件。如果没有,那是完全不可能的。
https://stackoverflow.com/questions/65957499
复制相似问题