Debezium日常分享系列之:Debezium 2.6.2.Final发布

一、新功能和改进

1.Oracle 数据库查询过滤超过 1000 个表

Debezium Oracle 连接器允许使用 log.mining.query.filter.mode 将表包含和排除列表配置为数据库查询的一部分,以提高效率。将此配置属性设置为 in 值时,将使用 SQL in 子句构造查询。在 Oracle 中,内子句仅限于 1000 个元素,如果您的连接器配置超出此限制,查询将无法执行。

Debezium 2.6 通过创建正好包含 1000 个元素的子存储桶来解决此问题,并且如果表包含和排除列表太大,则使用由析取分隔的多个内从句构建查询。这改善了用户体验,允许单个连接器使用查询过滤模式,通过一次部署捕获一千多个表,而无需诉诸正则表达式。

二、修复和稳定性改进

1.PostgreSQL 偏移刷新竞争条件

Debezium PostgreSQL 连接器要求我们不仅将偏移量元数据发布到 Kafka 来处理连接器重新启动,而且连接器还必须将这些详细信息刷新到数据库的底层复制槽,以防止 WAL 无限增长。

举个例子,假设我们对 LSN 1 和 2 有两个更改。这两个更改分别写入两个不同的分区 A 和 B。由于这种情况是异步发生的,因此可能对分区 B 的写入成功,而对分区 A 的写入失败。

如果 Debezium 在 A 之前收到分区 B 的确认,连接器会将 WAL 确认的 LSN 同步为 2。如果连接器在确认分区 A 之前失败或由于重新平衡而重新启动,则在连接器重新启动时,LSN 1 的更改将丢失。

此问题已在 Debezium 2.6 及以后版本中得到修复,并且复制槽的已确认 LSN 将正确匹配主题中的状态。

2.Avro 兼容性

在 Debezium 2.5 中,我们引入了几个新的时间戳字段 ts_us 和 ts_ns,它们表示以微秒和纳秒为单位的基于毫秒的时间值。不幸的是,这些字段没有以兼容的方式引入给使用 Avro的用户。

我们调整了更改事件架构,使得引入的新字段是可选的,使更改事件架构与旧版本兼容,以便用户可以在使用 Avro 时升级到 Debezium 2.6 或更高版本而不会出现问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐骑行^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值