Debezium发布历史24

原文地址: https://debezium.io/blog/2017/12/15/debezium-0-7-0-released/

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

Debezium 0.7.0 发布
十二月 15, 2017 作者: Jiri Pechanec
发布 mysql mongodb postgres docker
虽然还没到圣诞节,但我们已经为您准备了一份礼物:Debezium 0.7.0现已推出,充满了新功能以及许多错误修复!非常感谢所有为此版本做出贡献的社区成员。让我们感到非常鼓舞的是,我们不仅看到越来越多的问题和功能请求被报告,而且还收到了拉取请求。

请注意,此版本对某些数据类型的默认映射进行了少量更改。我们尝试尽可能避免此类更改,但在某些情况下这是必需的,例如,如果先前的映射可能导致潜在的价值损失。请参阅下面的详细信息,并确保查看详细描述这些更改的完整更改日志。

现在让我们仔细看看一些新功能。

基于Apache Kafka 1.0
几周前,Apache Kafka 团队发布了 1.0.0 版本。这是 Kafka 社区的一个重要里程碑,我们现在可以高兴地宣布 Debezium 是针对 Apache Kafka 版本构建并运行的。我们的 Docker 镜像也升级为包含 Apache Kafka 和 Kafka Connect 1.0.0。

PostgreSQL 连接器
PostgreSQL 连接器的重大消息是它现在支持wal2json逻辑解码插件作为现有DecoderBufs 插件的替代品。这意味着您现在可以使用 Debezium 将更改从Amazon RDS上的 PostgreSQL 流式传输,因为 wal2json 是此环境中使用的逻辑解码插件。非常感谢Robert Coup对此功能做出了重大贡献。

在开发这个插件时,我们注意到在对捕获的表的架构应用更改时存在潜在的竞争条件。在这种情况下,可能会发生与使用新模式发出模式更改之前完成的数据更改有关的许多消息。除了一些极端情况(此处描述)外,使用 Debezium 自己的 DecoderBufs 插件时已经解决了这个问题。因此,强烈建议在升级 Debezium 连接器之前将 DecoderBufs 插件升级到新版本。我们还与 wal2json 插件的作者密切合作(非常感谢您的快速帮助!),以防止使用 wal2json 插件时出现问题。

虽然 Postgres 的 Debezium Docker 镜像已经附带了最新版本的 DecoderBufs 和 wal2json,但 RDS 目前仍在使用旧版本的 wal2json。在更新之前,在将架构更改应用于捕获的表时必须特别注意。请参阅变更日志,了解此问题的深入描述以及缓解该问题的方法。

有新的日常运行CI 作业来验证 wal2json 插件是否通过了我们的测试套件。在可预见的未来,我们将支持 wal2json 以及现有的 DecoderBufs 插件。由于使用了 Protocol Buffers 二进制格式,后者应该更高效,而前者对于 RDS 或其他云环境非常有用,在这些环境中您无法控制已安装的逻辑解码插件,但 wal2json 可用。

在有关 Postgres 连接器的其他新闻中,Andrey Pustovetov发现并提出了一个多线程错误的修复方案,如果在快照期间触发 Connect 集群中的重新平衡,该错误可能会使连接器处于未定义状态。谢谢,安德烈!

MySQL 连接器
在 MySQL 连接器中,我们修复了影响某些列类型的默认映射的两个问题。

继Debezium 0.6.1BIGINT UNSIGNED中引入的新映射之后,这种类型现在默认编码为Debezium 消息,因为(多语言)客户端更容易使用。对于绝大多数情况来说,这是一个合理的映射。仅当使用 > 2^63 的值时,您应该将其切换回逻辑类型,但处理起来有点麻烦。这应该是一种罕见的情况,因为 MySQL建议不要使用 > 2^63 的无符号值,因为在执行数据库端计算时可能会造成价值损失。有关详细信息,请参阅连接器文档。int64Decimal

Rene Kerner改进了对 MySQL 类型的支持TIME。MySQL 允许存储大于此类列的值,并且以前用于列的23:59:59类型不足以传达整个可能的值范围。因此,MySQL 中的所有列默认表示为现在,使用逻辑类型,即值表示微秒。如果需要,您可以通过设置来切换到以前的映射,但只有在您确定只有适合 的值时才应该这样做。此选项仅保留一段过渡期,并将在未来版本中删除。int32TIME(0-3)TIMEint64io.debezium.time.MicroTimetime.precision.modeadaptiveint32

最近我们收到一份报告,指出 MySQL 的 binlog 可能包含ROLLBACK实际上未提交的语句和事务。当然,在这种情况下不应发出任何数据更改消息。例如,当删除临时表时可能会出现这种情况。因此,我们引入了前瞻缓冲区功能,可以按事务读取二进制日志并排除那些已回滚的日志。该功能应该被视为正在孵化,暂时默认处于禁用状态。我们希望收集您对此的反馈,因此,如果您能从此功能中受益,请尝试一下,如果遇到任何问题,请告诉我们。有关更多详细信息,请参阅binlog.buffer.sizeMySQL 连接器文档中的设置。

Andras Istvan Nagy提出了这个想法,并实现了一种从每个表中显式选择行的方法,这些行将成为快照过程的一部分。例如,如果您使用软删除并希望从快照中排除所有逻辑删除的记录,这可能非常有用。

请参阅完整的更改日志以了解更多详细信息和已修复问题的完整列表。

下一步是什么?
Debezium 0.7.1 版本计划在圣诞节后大约两周发布。

它将包含一个新的 SMT,它将 MongoDB 更改事件通过接收器连接器展开为常规 JSON 消耗品。

类型的大修改GEOMETRY正在进行中。完成后,所有GEOMETRY类型都将受到 MySQL 和 PostgreSQL 连接器的支持,并且它们将以标准WKB格式提供,以便于多语言客户端使用。

MySQL 连接器正在进行工作以允许动态更新table.whitelist选项。这将允许用户重新配置捕获的表集,而无需重新创建连接器。

如果您想做出贡献,请告诉我们。我们很高兴获得任何帮助,并将与您合作,帮助您快速入门。请查看下面有关如何联系的详细信息。

你可能感兴趣的:(debezium,CDC,FlinkCDC,数据库,大数据,运维)