原文地址: https://debezium.io/blog/2018/10/04/debezium-0-9-0-alpha2-released/
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
Debezium 0.9.0.Alpha2 发布
2018 年 10 月 4 日 作者: Gunnar Morling
发布 mysql mongodb postgres sqlserver oracle docker
我很高兴地宣布 Debezium 0.9.0.Alpha2发布!
虽然 SQL Server 和 Oracle 连接器的工作仍在继续,但我们决定再发布一个 Alpha 版本,因为大量修复和新功能(其中许多是由社区成员贡献的)已经堆积起来,我们希望将其交到您手中尽快。
此版本支持 Apache Kafka 2.0,支持 Postgres 的 HSTORE 列类型,允许重命名和过滤 MongoDB 更改数据消息中的字段,并包含多个错误修复和性能改进。总体而言,此版本包含55 个修复(请注意,其中一些已合并回 0.8.x,并且也包含在早期的 0.8 版本中)。
衷心感谢社区成员Andrey Pustovetov、Artiship Artiship、Cliff Wheadon、Deepak Barr、Ian Axelrod、Liu Hanlin、Maciej Bryński、Ori Popowski、Peng Lyu、Philip Sanetra、Sagar Rao和Syed Muhammad Sufyian,感谢他们的支持。对此版本的贡献。我们向您致敬!
卡夫卡升级
Debezium 与最近发布的 Apache Kafka 2.0 ( DBZ-858 )一起运行并已在其上进行了测试。广泛使用的版本 Kafka 1.x 也继续受到支持。
请注意,由于 Debezium 使用仅在更高版本中可用的管理客户端 API,因此不支持 0.10.x。解决这个问题应该不会太难,所以如果有人有兴趣帮助解决这个问题,这将是一个巨大的贡献(请参阅DBZ-883)。
Postgres 中对 HSTORE 列的支持
Postgres 是一个非常强大和灵活的 RDBMS,尤其是因为它的列类型范围广泛,远远超出了 SQL 标准定义的范围。其中一种类型是HSTORE,它本质上是一个字符串到字符串的映射。
Debezium 现在可以捕获此类列的更改 ( DBZ-898 )。默认情况下,字段值将使用 Kafka Connect 的地图数据类型表示。hstore.handling.mode由于并非所有接收器连接器都支持此功能,因此您也可以通过将新连接器选项设置为 来将它们表示为字符串化的 JSON json。在这种情况下,您会看到 HSTORE 列在更改消息中表示为值,如下所示:{ “key1” : “val1”, “key2” : “val2” }。
MongoDB 的字段过滤和重命名
与 MySQL 和 Postgres 的连接器不同,Debezium MongoDB 连接器迄今为止不允许从 CDC 消息中排除捕获的集合的单个字段。此外,不支持通过 Kafka 的ReplaceFieldSMT 等方式重命名它们。原因是 MongoDB 不强制给定集合的文档采用固定模式,因此文档在更改消息中使用单个字符串化的 JSON 字段来表示。
感谢社区成员 Andrey Pustovetov 的出色工作,这一切终于发生了变化,即您现在可以从给定集合的 CDC 消息中删除给定字段 ( DBZ-633 ) 或将其重命名 ( DBZ-881 )。请参阅新连接器选项的说明field.blacklist和MongoDB 连接器文档field.renames以了解更多信息。
扩展源信息
connectorAndrey 的另一个贡献是CDC 消息的源信息块中的新可选字段 ( DBZ-918 )。这告诉生成消息的源连接器的类型(“mysql”、“postgres”等),在需要根据源数据库的类型在消费者端应用特定语义的情况下,这可以派上用场。
错误修复和版本升级
新版本包含大量错误修复和其他较小的改进。其中有
使用 MySQL ( DBZ-927 ) 正确处理无效的临时默认值,
支持 MySQL ( DBZ-878 ) 和 MongoDB ( DBZ-865 ) 具有特殊字符的表/集合名称以及
使用新的基于 Antlr 的 DDL 解析器 ( DBZ-872 ) 修复了黑名单表的处理。
社区成员 Ian Axelrod 提供了针对潜在性能问题的修复,即对 Postgres 中具有 TOAST 列的表进行更改会导致连接器的内部架构元数据重复更新,这可能是一项成本高昂的操作 ( DBZ-911 )。有关处理此问题的新选项的详细信息,请参阅Postgres 连接器文档。schema.refresh.mode
在版本升级方面,我们迁移到最新版本的 MySQL(DBZ-763、DBZ-764)和 Postgres 驱动程序(DBZ-912)。前者是支持 MySQL 8 的长期工作的一部分,该工作应该在下一个 Debezium 版本之一中完成。对于 Postgres,我们现在提供了一个 Docker 镜像,其中包含 Debezium 支持的基于 Alpine 的逻辑解码插件,对于那些关心容器大小的人来说可能会感兴趣(DBZ-705)。
请参阅更改日志以获取已修复问题的完整列表。
下一步是什么?
Debezium 0.9 的工作仍在继续,我们将主要关注对 SQL Server 和 Oracle 连接器的改进。其他潜在主题包括对 MySQL 8 的支持以及 Postgres 10 中引入的本机逻辑解码,这将极大地有助于在 Amazon RDS 等云环境中使用 Debezium Postgres 连接器。
我们还将在以下会议上讨论 Debezium:
卡夫卡峰会;加利福尼亚州旧金山;10月17日
VoxxedDays 微服务;法国巴黎; 10 月 29 日至 31 日
Devoxx 摩洛哥; 摩洛哥马拉喀什;11 月 27 日至 29 日
上周我就有机会在JUG Saxony Day上展示 Debezium 。如果您有兴趣,可以在演讲台上找到该演讲的(德语)幻灯片。