随着 Debezium 0.9 的临近尾声,我非常高兴地宣布 2019 年的第一个 Debezium 版本,0.9.0.CR1

在此版本中,我们主要专注于解决 Debezium SQL Server 连接器中剩余的问题;该连接器具有大大提高的性能,并已进行大量错误修复。

其他更改包括 Debezium 嵌入式引擎的事件处理程序的新接口,允许批量处理变更事件,一项将数字列的精度导出为模式参数的选项,以及 Debezium MySQL、Postgres 和 Oracle 连接器的一系列错误修复。

SQL Server 连接器改进

SQL Server 连接器现在支持特定列的黑名单(DBZ-1067)。这对于您希望从发出的变更数据消息中排除特定列的情况非常有用,例如出于数据保护的考虑。

“快照锁定模式”选项已被重构(DBZ-947),现在命名为“快照隔离模式”,更好地反映了其语义。新增了一个“repeatable_read”模式,并将“none”重命名为“read_uncommitted”。更多详情,请参阅连接器文档和迁移说明

得益于对同一 LSN 的时间戳缓存(DBZ-1078),该连接器现在的吞吐量得到了极大的提升。请参阅更改日志,了解此连接器中已修复的 bug。在此,我们还要特别感谢 Grzegorz Kołakowski,感谢他为该连接器所做的不知疲倦的工作和测试!

新的嵌入式引擎处理程序接口

Debezium 的嵌入式引擎现已提供新的 `ChangeConsumer` 接口,事件处理程序如果想批量处理变更事件,可以实现该接口(DBZ-1080)。对于像 Kinesis Producer Library 这样本身支持批处理语义的 API,这可以显著提高推送变更事件的性能。您可以在嵌入式引擎文档中了解更多信息。

杂项更改和 bug 修复

所有关系型连接器现在都允许将数值列的精度作为 schema 参数进行传播(DBZ-1073)。这通过 `column.propagate.source.type` 选项控制,并建立在 Debezium 0.8 中添加的类型名称和宽度暴露的基础上。所有这些 schema 参数都可以在创建目标数据库中相应表的 schema 时使用。

Apache Kafka 的 Debezium 容器镜像现在允许创建和监视 topic(DBZ-1057)。您也可以在创建 topic 时指定清理策略(DBZ-1038)。

Debezium MySQL 连接器现在能正确处理无符号 `SMALLINT` 列(DBZ-1063)。对于带有默认值的可空列,`NULL` 值现在可以被正确导出(DBZ-1064;之前,在这种情况下会导出默认值)。

Postgres 连接器现在可以正确处理没有主键的表(DBZ-1029)。我们还进行了一项修复,以确保该连接器在 Amazon RDS 上的 Postgres 上正常工作,该连接器最近因 RDS 中的 wal2json 更新而出现故障(DBZ-1083)。今后,我们计划设置 CI 作业,以测试 Debezium 连接器支持的所有版本的 RDS 上的 Postgres。这将有助于我们及早发现类似问题并快速响应。

请参阅更改日志,了解已解决问题的所有完整列表。

本次发布离不开 Debezium 社区以下成员的贡献:Addison HighamAmit SelaGagan AgrawalGrzegorz KołakowskiIlia BogdanovIvan KovbasMoira TagleRenato MefiTony Rizko

非常感谢!

后续步骤

CR1 版本比我们预期的花费的时间要长一些。因此,Debezium 0.9.0.Final 的发布将推迟到 2 月初。在此之后不久,我们计划发布 Debezium 0.9.1,它将为 0.9 版本中添加的功能提供改进和潜在的 bug 修复。

关于此之后的进一步计划,请查看我们的路线图。如果您有任何反馈或对未来添加内容的建议,请通过邮件列表或下方的评论与我们联系。

Gunnar Morling

Gunnar 是一位软件工程师,内心是一个开源爱好者,目前在 Confluent 担任技术专家。此前,他曾帮助构建一个基于 Apache Flink 的实时流处理平台,并领导了 Debezium 项目,这是一个用于变更数据捕获的分布式平台。他是 Java Champion,并创立了多个开源项目,如 JfrUnit、kcctl 和 MapStruct。Gunnar 是一位热情的博主 (morling.dev),并曾在 QCon、Java One 和 Devoxx 等各种会议上发表演讲。他居住在德国汉堡。

   


关于 Debezium

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

参与进来

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

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