我很荣幸地宣布 Debezium 2.3.3.Final 现已发布。

此版本包含多项错误修复,以解决回归、稳定性和文档更新问题。如果您目前正在考虑升级到 Debezium 2.3.x 版本流,我们强烈建议您考虑使用此版本。让我们快速看一下回归和错误修复。

重大变更

本次发布中有一个破坏性变更,Debezium 2.3.3.Final 的行为与之前的 Debezium 2.3.2.Final 版本相比有所不同。如果您从 Debezium 2.3.2.Final 或之前的任何版本升级,请查看以下破坏性变更的详细信息。

Oracle 连接器 SCN 指标

Oracle 在其 JMX 指标中跟踪多种系统更改号(通常称为 SCN)值,包括 OffsetScnCurrentScnOldestScnCommittedScn。这些 SCN 值是数字型的,并且经常会超过 Long 数据类型的上限,因此 Debezium 传统上将这些值公开为 String

不幸的是,Grafana 和 Prometheus 等工具无法处理基于 String 的值,并且社区已多次提出希望能够从指标收集框架中查看这些值。从 Debezium 2.3.3.Final 或更高版本开始,这些 JMX 指标的行为发生了一个小的变化,它们不再作为 String 值公开,而是现在公开为 BigInteger 值。

此行为变更允许 Grafana 和 Prometheus 等工具自动从 JMX bean 中抓取这些值,用于报告和可观察性堆栈。

如果您之前曾为其他目的收集这些值,请注意它们不再是基于字符串的,今后应将其解释为 BigInteger 数值。

其他修复和改进

本次发布中有几处 bug 修复和稳定性改进,其中一些值得注意的有:

  • 支持 PostgreSQL 的 UUID、JSON 和 JSONB 数据类型的强制转换 DBZ-6589

  • Debezium 2.3.0.Final 缺少 Kafka Channel 文档 DBZ-6688

  • Debezium 在解析 MySQL DDL 语句 (特定 JOIN) 时崩溃 DBZ-6724

  • ExtractNewDocumentState for MongoDB 在处理带有 REWRITE 的删除事件时忽略之前的文档状态 DBZ-6725

  • 缺失或拼写错误的 ID 会导致下游构建错误 DBZ-6754

  • 当使用 Postgres 连接器的 pgoutput 时,不支持十进制值中的 (+/-)Infinity DBZ-6758

  • Outbox 转换可能导致连接器崩溃 DBZ-6760

  • Postgres tests for toasted byte array and toasted date array with decoderbufs plugin 失败 DBZ-6767

  • MongoDB 新文档状态提取:add.headers 的非存在字段 DBZ-6774

  • 使用 JMX 通道时,MBean 实例之间的通知和信号会泄漏 DBZ-6777

  • Dbz 在解析 MySQL DDL 语句 (SELECT 1.;) 时崩溃 DBZ-6780

  • Dbz 在解析 MySQL DDL 语句 (SELECT 1 + @sum:=1 AS ss;) 时崩溃 DBZ-6794

  • MySQL DDL 解析器 - 不接受 REPEAT 函数 DBZ-6803

  • Dbz 在解析 DDL 语句 (变量中的非拉丁字符) 时崩溃 DBZ-6821

  • 解析 MySQL DDL 时,不对 BIGINT 和 SMALLINT 类型默认值进行修剪 DBZ-6824

  • 将部分和多响应事务设置为调试级别日志 DBZ-6830

  • Oracle test shouldContinueToUpdateOffsetsEvenWhenTableIsNotChanged 因 NPE 而失败 DBZ-6860

  • 流式聚合管道因数据库过滤器和信号集合的组合而损坏 DBZ-6867

展望与下一步?

随着团队继续积极开发 Debezium 2.4,我预计本月晚些时候将发布另一个 Debezium 2.3 的维护版本,前提是没有报告回归或错误。

此外,Debezium 社区活动的议程和日期将于本周发布,请密切关注相关新闻。最后,我们将于下月在 Kafka Summit 2023(又称 Current 2023)上发表演讲。如果您计划参加并希望与专家交流,请务必与我或团队中的任何成员取得联系,我们可以安排见面并讨论任何与 Debezium 和 CDC 相关的内容。

一如既往,如果您有任何想法或建议,也可以通过 邮件列表 或我们的 聊天 与我们联系。

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