首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带TimescaleDB扩展的Debezium连接器

带TimescaleDB扩展的Debezium连接器
EN

Stack Overflow用户
提问于 2021-01-29 07:42:10
回答 2查看 709关注 0票数 2

我在检测Postresql超级表(TimescaleDB扩展)上的更改时遇到了问题。

设置:

我安装了Postresql(ver11.10)和TimescaleDB(ver1.7.1)扩展。我有两个表,我想用Debezium(ver1.3.1)连接器监视它们,安装在Kafka上,用于CDC(捕获数据更改)。

表是table1和table2hyper,但是table2hyper是超表的。

在Kafka Connect中创建Debezium连接器之后,我可以看到创建了两个主题(每个表一个):

  • (A) kconnect.public.table1
  • (B) kconnect.public.table2hyper

当使用kafka-console-使用者使用主题A的消息时,我可以在table1中看到行更新后的消息。

但是,当使用来自主题B(table2hyper表更改)的消息时,不会在table2hyper表中的行更新之后发出任何消息。

最初,Debezium连接器会对table2hyper表中的行进行快照,并将它们发送到主题B(我可以在使用kafka-console-使用者时看到主题B中的消息),但是在初始快照之后所做的更改不会发出。

为什么我无法从table2hyper中看到后续的更改(在初始快照之后)?

连接器创建有效载荷:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "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"
    }
}

提前行动!

EN

回答 2

Stack Overflow用户

发布于 2021-02-01 15:40:12

在尝试了一段时间之后,我没有成功地使用德贝兹连接器从超级表中流数据。我使用的是1.3.1版本。升级到最新的1.4.1。帮不上忙。

然而,我在汇合JDBC连接器上确实取得了成功。

就我的研究和测试而言,这是一个结论,如果有必要的话,可以随时纠正:

  • Debezium在插入、更新和删除事件的普通表上工作。
  • 汇合连接器只捕获插入事件(除非您组合了一些列以检测更改),并在普通和超(TimescaleDB)表上工作。
票数 2
EN

Stack Overflow用户

发布于 2021-02-02 01:24:50

我们从未用TimescaleDB测试过Debezium。我建议您检查TimescaleDB更新是否存在于逻辑轮询槽中。如果是的话,技术上应该可以让Debezium处理这些事件。如果没有,那是完全不可能的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65957499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文