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 KumarAnisha MohantyBob RoldanChris CranfordHarvey YueHenry CaiIndra ShuklaJiri PechanecLuca ScannapiecoMario Fiore VitaleMark LambertSergei MorozovVojtech JuranekYohei Yoshimutayohei yoshimuta

展望,下一步是什么?

Debezium 2.1 将在本季度继续接收错误修复和维护更新。我预计在二月中下旬或三月左右将至少发布一次后续版本,届时我们将开始完成 Debezium 2.2 的工作。

关于 Debezium 2.2,我们计划在未来几周内发布另一个 Alpha 版本。我们还有许多功能正在开发中,包括 JDBC Sink Connector、可配置的信号通道、新的消息转换以及更多内容。

敬请期待,在此之前……​

Chris Cranford

Chris 是 IBM 的一名软件工程师,之前在 Red Hat 工作,他致力于 Debezium 项目,并每天都在深入研究 Oracle 和 Change Data Capture 的各个方面。他此前曾从事 Hibernate(领先的开源 JPA 持久化框架)方面的工作,并且继续为 Quarkus 做贡献。Chris 居住在美国北卡罗来纳州。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

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

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×