Debezium日常分享系列之:Debezium 2.6.0.CR1发布
Debezium 2.6.0.CR1版本包含许多改进,包括对 Oracle OpenLogReplicator 适配器的 XML 支持、对 Debezium Server 的 TRACE 级别日志记录支持、对 Cassandra 的可配置分区模式、对 MongoDB 和 Db2 的新快照 API 等等。
一、重大改变
1.MySQL
MySQL驱动程序已更新至版本8.3.0,该驱动程序与MySQL 5.x不兼容。如果您仍需要使用较旧的 MySQL 版本,请在安装后将驱动程序降级到与您的数据库兼容的版本。
2.SQL Server
首次部署连接器时,SQL Server 连接器并未捕获所有架构,而是仅根据配置的包含列表中定义的表捕获架构。这是一个错误,当用户期望新表的架构已存在于架构历史记录主题中时,可能会阻止用户轻松地将新表添加到连接器。连接器现在正确支持 store.only.captured.tables.ddl 配置选项。
对于现有连接器部署,如果您没有专门设置架构历史记录主题的 store.only.captured.tables.ddl 属性,连接器将开始捕获数据库中所有相关表的架构更改。如果您想防止这种情况并保留之前的行为,则需要通过添加值为 true 的 schema.history.internal.store.only.captured.tables.ddl 来调整连接器配置。
3.Vitess
Vitess 连接器之前使用 BEGIN 消息的时间戳作为源时间戳。这已更改为使用 COMMIT 时间戳来反映其他连接器的行为。
二、新功能和改进
Debezium 2.6.CR1 还引入了更多改进和功能,让我们分别看一下。
1.OpenLogReplicator 的 XML 支持
Debezium for Oracle 连接器支持与 OpenLogReplicator 的连接,允许 Oracle 用户直接从事务日志流式传输更改。 OpenLogReplicator 的最新版本 1.5.0 版本添加了对 XML 列类型的支持。
要开始使用 OpenLogReplicator 传输 XML,请将 OpenLogReplicator 进程升级到 1.5.0 并重新启动复制器进程。请注意,如果您想要流式传输基于二进制的 XML 列数据,则需要在 OpenLogReplicator 配置中启用此功能。
2.Debezium 服务器的 TRACE 级别日志记录
Debezium Server 是 Debezium 源连接器的现成运行时,它使用 Quarkus 框架来管理源和接收器部署。大多数 Debezium Server 用户都知道谁曾提出问题或错误,我们经常要求提供 TRACE 级别的日志,但这通常被证明很困难,因为它需要完全重建 Debezium Server,因为最低日志记录级别是构建时的Quarkus 中的配置。
在 Debezium 2.6.0.CR1 版本及更高版本中,不再需要此操作。默认情况下,构建时配置已调整为包括 TRACE 日志记录级别,因此今后用户只需将日志级别设置为 TRACE 并重新启动 Debezium Server 即可获取日志。
3.新的统一快照模式
快照过程是每个连接器生命周期不可或缺的一部分,它负责收集数据存储中存在的所有历史数据并将其发送到目标系统(如果需要)。对于使用多种连接器类型的 Debezium 用户,我们知道跨连接器具有不同的快照模式有时可能会令人困惑。所以这个改变就是为了解决这个问题而设计的。
对于许多可能已经尝试或安装 Debezium 2.6 预发行版的人来说,您已经在使用统一快照 SPI,因为它最初被设计为直接替换,无需任何更改。此版本完成了 MongoDB 和 DB2 的工作。
在这些变化中,最值得注意的包括以下内容:
- 所有快照模式均可用于所有连接器,但不包括仅针对 MySQL 的“从不”模式。这意味着以前可能不支持快照模式(例如when_needed)的连接器现在可以在连接器识别出有必要时使用此模式重新拍摄快照。
- schema_only_recovery 模式已被弃用并被recovery模式取代。
- schema_only 模式也已被弃用并被 no_data 取代。
注意:
- 所有已弃用的模式在今年晚些时候的 Debezium 3 之前都将保持可用。这为用户提供了大约六个月的时间来提前调整脚本、配置和流程。
4.Cassandra 可配置分区模式
当 Debezium Cassandra 连接器读取提交日志时,事件将按顺序处理并添加到队列中。如果存在多个队列,则事件将根据提交日志文件名的哈希在这些队列之间分配。这导致事件可能以非时间顺序发出的情况。
在 Debezium 2.6 中,Cassandra 连接器的哈希算法现在使用分区列名称来解析插入的队列索引。这应该提供更稳定的插入顺序,以便事件以正确的顺序发出。
添加了一个新的配置选项来选择加入此新行为。 Debezium 用户可以将新的配置属性 event.order.guarantee.mode 添加到partition_values 以利用这种新模式。默认情况下,该属性使用默认值 commitlog_file 保留旧行为。