Debezium 的发布节奏正处于如火如荼的进行中,我很高兴地宣布 Debezium 2.1.2.Final!
此版本主要专注于错误修复和稳定性;它是所有用户从早期版本推荐更新的版本。此版本包含 28 个已解决的问题,让我们花点时间讨论一下关键的重大更改。
重大变更
在 DBZ-5996 中报告了一个边缘情况,如果一个时间列使用了 ZonedTimestamp,并且该列的值包含 0 微秒或纳秒,那么该值将不会被发出为 2023-01-19T12:30:00.123000Z,而是以截断的方式发出为 2023-01-19T12:30:00.123Z。这可能导致事件管道中使用的转换器出现其他问题,因为该列的输出格式可能不一致。
为了解决这个边缘情况,ZonedTimestamp 的实现现在将使用源数据库列的长度/精度来填充该列值的基于小数的秒数。以上面 TIMESTAMP(6) MySQL 列类型为例,发出的值现在将正确地反映为 2023-01-19T12:30:00.123000Z。
虽然这个行为变化可能对大多数用户影响很小,但我们想提请注意,以防您在管道中通过其他方式处理过此边缘情况。如果您这样做过,您应该可以依赖 Debezium 来一致地发出值,即使小数秒为 0。
其他更改
一些值得注意的错误修复和稳定性改进包括
-
mysql bigint 的数据类型转换失败 DBZ-5798
-
Oracle 无法撤销更改 DBZ-5907
-
截断与 ExtractNewRecordState 不兼容的记录 DBZ-5966
-
计算出的分区不能为负数 DBZ-5967
-
在 exclude.tables 配置时,执行快照信号时出现 NPE,因为提供了错误的表名 DBZ-5988
-
Postgresql 连接器解析 money 类型边界值时出现问题 DBZ-5991
-
可为空的列在 DDL 事件中被标记为“optional: false” DBZ-6003
-
Vitess: 处理当前 db shards 和持久化 shards 之间的 shard 列表差异 DBZ-6011
-
Postgres LSN 检查应遵循 event.processing.failure.handling.mode DBZ-6012
-
增强 Spanner 连接器,添加功能和/或修复 bug DBZ-6014
-
带有 TokuDB 引擎特定“CLUSTERING KEY”的 DDL 语句无法解析 DBZ-6016
-
DDL 解析失败,因为 role revoke 带有“user-like”的角色名 DBZ-6019
-
DDL 解析失败,因为 ALTER USER x DEFAULT ROLE y; DBZ-6020
-
在 Postgres 连接器发生错误时,偏移量未刷新到 connect offsets topic DBZ-6026
-
TIME 列的意外格式:8:00 DBZ-6029
-
Oracle 不支持 LOB 存储子句之后的压缩/日志记录子句 DBZ-6031
-
Debezium 正在记录包含错误信息的完整消息 DBZ-6037
-
提高从 Kafka 恢复内部模式历史的弹性 DBZ-6039
请参阅 发布说明 了解有关所有已修复错误、更新程序等的更多信息。
非常感谢社区以下为 Debezium 2.1.2.Final 做出贡献的个人:Akshansh Jain、Animesh Kumar、Anisha Mohanty、Bob Roldan、Chris Cranford、Harvey Yue、Henry Cai、Indra Shukla、Jiri Pechanec、Luca Scannapieco、Mario Fiore Vitale、Mark Lambert、Sergei Morozov、Vojtech Juranek、Yohei Yoshimuta 和 yohei yoshimuta!
展望,下一步是什么?
Debezium 2.1 将在本季度继续接收错误修复和维护更新。我预计在二月中下旬或三月左右将至少发布一次后续版本,届时我们将开始完成 Debezium 2.2 的工作。
关于 Debezium 2.2,我们计划在未来几周内发布另一个 Alpha 版本。我们还有许多功能正在开发中,包括 JDBC Sink Connector、可配置的信号通道、新的消息转换以及更多内容。
敬请期待,在此之前……
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。