我很高兴能和大家分享Debezium开云体育官方注册网址2.0.0.Alpha2已经发布了!

这个版本包含了大量的错误修复和改进,110年问题总共解决了。只是,哇!

一些值得注意的变化包括增量快照获得了对正则表达式的支持和一个新的停止信号。我们还做了一些内务工作,删除了一些已弃用的配置选项,以及遗留的MongoDB oplog实现。

让我们更详细地看看这些。

增量快照更改

首先,增量快照取得了巨大的成功。我们从社区得到的反馈是非常积极的,关于这个过程是如何工作的,以及它如何帮助简化捕获变化,特别是对于拥有非常大的数据集的用户。所以我们在这个版本中抓住了一个机会,在这个势头的基础上,引入了几个新的选项:

  • 停止正在进行的增量快照的能力

  • 支持使用正则表达式

停止增量快照

自从我们首次引入增量快照以来,用户一直在要求一种停止正在进行的快照的方法。为了实现这一点,我们添加了一个新信号,stop-snapshot,允许停止正在进行的增量快照。通过在信号表/集合中插入一行,这个信号将像其他信号一样发送,如下所示:

插入模式。Signal_table (id, type,data)惟一的idstop-snapshot> _ <信号负载_ ');

stop-snapshot有效载荷看起来和它非常相似execute-snapshot同行。一个例子:

数据收集:【schema1.table1schema2.table2),类型增量

本例删除了两者schema1.table1而且schema2.table2从增量快照开始,只要表或集合还没有完成其增量快照。删除指定的表或集合后,如果其他表或集合仍然未完成数据收集,增量快照将继续处理未完成的快照。如果没有其他表或集合,增量快照将停止。

另一个例子stop-snapshot有效载荷很简单:

类型增量

属性数据收集属性的可选属性stop-snapshot信号。如果未指定此属性,该信号表示当前正在进行的增量快照应该完全停止。这使得可以在不知道当前或尚未捕获的未完成的表或集合的情况下停止增量快照。

信号支持正则表达式

增量快照信号要求在中使用显式表/集合名称数据收集负载属性。虽然这工作得很好,但可能在某些情况下,广泛的捕获配置可以利用正则表达式的使用。我们已经在连接器配置选项中支持正则表达式,例如包含/排除列表,因此将其扩展到增量快照也很有意义。

从Debezium 2.开云体育官方注册网址0开始,所有增量快照信号都可以在数据收集有效载荷性质。使用上面的停止信号示例之一,有效负载可以使用正则表达式重写:

数据收集:【模式[1 | 2].table [1 | 2]),类型增量

就像显式用法一样,这个带有正则表达式的信号也会停止两者schema1.table1而且schema2.table2

移除MongoDB oplog支持

在De开云体育官方注册网址bezium 1.8中,我们引入了新的MongoDB变更流特性,同时弃用了oplog实现。向更改流的过渡提供了各种好处,例如能够从非主节点传输更改,能够为下游消费者发出具有完整文档表示的更新事件,等等。简而言之,变更流只是MongoDB执行变更数据捕获的一种更高级的方式。

删除oplog实现也意味着MongoDB 3。不再支持X。如果您正在使用MongoDB 3。x,您将需要升级到至少MongoDB 4.0或更高版本的Debezium 2.0。开云体育官方注册网址

配置选项清理

开云体育官方注册网址Debezium 1。X在过去的几年里经历了很大的发展。我们添加了特定于连接器的选项来处理迁移或已弃用或甚至已被通用于所有连接器的通用选项所取代的特定功能。Debezium 2.0的主要任务之一是对配置选项进行开云体育官方注册网址一些内部管理,因为许多配置选项已弃用。

因此,当我们研究选项名称空间时,将来还会有更多的配置管理。可以这么说,作为升级路径的一部分,检查连接器文档中关于当前连接器配置的相关选项是很重要的。您可能会发现,您可以用更少的选项简化配置,或者一些选项名称完全改变了。

其他修复和改进

在这个版本中有几个bug修复和稳定性的变化,一些值得注意的是:

  • Postgres现有发布不会随新表一起更新dbz - 3921

  • 当连接器设置“snapshot.fetch”时,解析datetime列长度失败。大小:20000dbz - 4939

  • 在Postgres连接器中无法解析文本'infinity'dbz - 5014

  • 生成的模式中缺少PostgreSQL ENUM默认值dbz - 5038

  • 所有连接器现在都使用多分区代码库dbz - 5042

  • Oracle LogMiner:从快照模式切换到流模式时丢失记录dbz - 5085

  • 引入一个新字段“ts_ms”来标识模式更改事件的处理时间dbz - 5098

  • 解析零日失败dbz - 5099

总之,这是一个惊人的110年问题修复了此版本。

接下来是什么?

因此,虽然这个发布有点落后于计划,但Debezium 2.0发展得相当不错。开云体育官方注册网址

下一个主要里程碑包括跨连接器统一快照模式,这是一个新的快照所有连接器的API,紧凑的JSON数据库历史,偏移量统一,偏移量存储API等等。开云体育电动老虎机因此,在接下来的几周里,我们将继续在Debezium 2.0上工作。开云体育官方注册网址像往常一样,你可以在大约3周内看到部分(希望是全部)这些内容,坚持我们通常的发布节奏。

在那之前,让数据捕获继续吧!

克里斯克兰福德

克里斯是红帽公司的软件工程师。他以前是Hibernate ORM团队的成员,现在在Debezium工作。开云体育官方注册网址他住在北卡罗来纳州,距离红帽塔只有几个小时的路程。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

我们希望您觉得Debezium有趣开云体育官方注册网址且有用,并愿意尝试一下。在Twitter上关注我们@开云体育官方注册网址debezium在Zulip上和我们聊天,或加入我们的邮件列表与社区对话。所有的代码都是开源的GitHub上,因此在本地构建代码并帮助我们改进现有连接器并添加更多连接器。如果您发现了问题或对我们如何改进Debezium有想法,请告诉我们开云体育官方注册网址记录问题