团队一直很忙最近几个月准备凝结释放时间表Debezium 2.3,我兴奋地宣布,在下一篇文章中已经到来,Debezium开云体育官方注册网址2.3.0.Final现在可以了!

尽管一个浓缩的发布计划,这个版本是挤满了大量的新特性和改进。开云体育官方注册网址Debezium 2.3包括一个全新的通知子系统、信号子系统的重写以支持额外的方法来发送信号Debezium连接器,引入JDBC存储模块维护Debezium状态在关系数据库中,维塔斯碎片的并行化处理,PostgreSQL连接器复制品身份的改进,一个全新的Debezium Kubernetes服务器操作,支持只有一次语义PostgreSQL连接器,和改进Oracle连接器。开云体育电动老虎机

让我们花一些时间谈论任何破坏变化,所有这些改进和为什么他们如此重要!

你还可以找到Debezium 2.3变化的完整列表开云体育官方注册网址发布说明

突发的变化

我们通常试图避免尽可能多的突发变化在小版本,但不幸的是,有时候这种变化是不可避免的,特别是如果一个功能可能被引入实验。开云体育官方注册网址Debezium 2.3引入了两个打破变化取决于你从一个预览版升级或早期稳定版本:

PostgreSQL / MySQL安全连接的变化

开云体育官方注册网址Debezium PostgreSQL和MySQL可以配置为使用一个安全的SSL连接。对于PostgreSQL,这可以通过配置完成开云体育电动老虎机database.sslmode而对于MySQL可以做到这一点开云体育电动老虎机database.ssl.mode

使用Deb开云体育官方注册网址ezium 2.3,这种配置选项不再默认禁用(PostgreSQL)或禁用(MySQL),而是默认更喜欢(PostgreSQL)和首选(MySQL)。这意味着当试图连接使用一个加密,安全连接不可用,连接器将后备使用无担保连接在默认情况下,除非否则配置。

JDBC存储编码更改

开云体育官方注册网址Debezium tripwire。α1介绍了新实验JDBC存储模块。这个存储模块违约使用utf - 16,因为它的默认编码;然而,大多数喜欢utf - 开云体育电动老虎机8作为默认数据库。如果你从Debezium tripwire升级。开云体育官方注册网址α1,Debez开云体育官方注册网址ium tripwire。Beta1后来现在使用utf - 8当存储数据使用JDBC存储模块结合典型的数据库默认设置。开云体育电动老虎机

新特性和改进

开云体育官方注册网址Debezium 2.3包含大量的新功能改进,其中包括以下:

开云体育官方注册网址Kubernetes Debezium服务器运营商

这个版本引入了一个预览版本的新Debezium运营商提供部署开云体育官方注册网址和管理的能力在Kubernetes Debezium服务器实例。开云体育官方注册网址Debezium服务器允许您改变事件流数据来源各种各样的消息传递基础设施。我们的目标是提供一个Kafka-less替代Debezium社区的那些希望利用Kubernetes可伸缩性和高可开云体育官方注册网址用性部署。

目前,文档是稀疏的运营商在早期孵化阶段;然而,我们打算改进这个即将到来的发布周期。你可以找到一个部署示例和基本的描述自定义资源规范在github库,您可以使用短期作为参考。

我们不建议此时该组件的生产部署;然而,我们鼓励用户提供社区的反馈。将有价值的信息反馈在评估如果组件特性好,或者仍然有改进的领域来满足每个人的需求。

新的通知子系统

开云体育官方注册网址Debezium 2.3引入了一个全新的功能叫做通知,允许Debezium发出事件可以被任何外部系统知道Debezium的生命周期的不同阶段的状态。

通知事件表示为一系列键/值的元组,用一个结构,包含数个开箱即用的字段。下面是一个简单的通知事件的一个例子。

示例通知事件
{id:c485ccc3-16ff-47cc-b4e8-b56a57c3bad2,aggregate_type:快照,类型:开始,additional_data:{}}

每个包含一个通知事件id场,一个UUID来确定通知aggregate_type通知相关的领域基于领域驱动设计的概念,类型领域,意味着得到更多细节关于聚合类型本身,和一个可选的additional_data字段由一个基于字符串的键/值对地图关于事件的附加信息。

在这个时候,有两个通知Debezium支持的事件类型:开云体育官方注册网址

  • 状态的初始快照

  • 监测增量快照

初始快照通知

最初是一致的快照捕获的现有数据连接器刚开始。一个初始快照事件将一个聚合类型的值“初始快照”和类型的事件将包括三个逻辑值之一:

跳过

代表了最初的快照是跳过。

流产

代表了最初的快照是中止。

完成

代表了初始快照已经成功结束。

下面是一个示例的一个通知完成初始快照:

例子快照完成事件
{id:5563 ae14 - 49 - f8 - 4579 - 9641 - c1bbc2d76f99,aggregate_type:初始快照,类型:完成}

增量快照通知

增量快照是一个获取现有的数据从一个配置组表在连接器积极流的变化。增量快照事件将一个聚合类型的值“增量快照”和类型将包括几个逻辑值之一:

开始

表明增量快照已经开始。

停顿了一下

表明增量快照已经暂时停了下来。

恢复

表明增量快照已经暂停已经恢复。

停止

表明增量快照已经停止。

IN_PROGRESS

表明增量快照是正在进行的。

TABLE_SCAN_COMPLETED

表示给定表的增量快照已告结束。

完成

显示所有表的增量快照已告结束。

配置通知

开云体育官方注册网址Debezium通知通过连接器的配置进行配置。下面的例子展示如何配置开箱即用的卡夫卡主题或基于日志的渠道。

使用卡夫卡主题
{notification.enable.channels:水槽,notification.sink.topic.name:开云体育官方注册网址debezium_notifications,}
使用连接器日志
{notification.enable.channels:日志}

新的可扩展信号子系统

开云体育官方注册网址Debezium以来支持一个信号的概念的引入增量快照功能在Debezium 1. x。信号是非常重要的,因为它允许您提供元数据来指导Debezium来执行一个给定的任务,这个任务是编写一个条目是否连接器日志或执行一个临时增量快照开云体育官方注册网址。

在De开云体育官方注册网址bezium 2.3中,信号子系统是概念的引入通道代表一个中等的Debezium手表或倾听和对信号的反应。开云体育官方注册网址在以前的版本中,有一个通道在连接器支持普遍,这是数据库表的信号。开云体育电动老虎机在本版本中,这些通道已经统一,以下是可用的:

  • 开云体育电动老虎机数据库信号表

  • 卡夫卡信号的话题

  • 文件系统

  • JMX

但这还不是全部,信号通道合同是可扩展的,允许您编写一个定制的实现和提供,轻松你的连接器。

JMX集成信号和通知

开云体育官方注册网址Debezium 2.3之前引入一个新的信号通道和通知功能。这个特性允许外部应用程序轻松地集成Debezium,发送信号来执行各种任务,如临时增量快照,并接收通知这样的任务的进展。开云体育官方注册网址这个版本构建的功能允许发送信号和接收能力通过JMX通知。

发送信号

在本版本中,信号通道子系统已经过了改进,以支持通过JMX发送信号。从jconsole窗口中,您可以看到有两个新的连接器部分,通知和信号部分如下所示:

JConsole JMX指标”>
             </div>
            </div>
            <div class=

信号部分允许您调用一个操作JMX bean Debezium为了传输信号。开云体育官方注册网址这个信号类似于逻辑信号表结构,它接受三个参数,一个独特的标识符,信号类型,最后信号有效载荷。下面的说明这是什么样子的jconsole:

JConsole发送信号”>
             </div>
            </div>
           </div>
           <div class=

接收通知

通知部分允许您接收和反应从Debezium通知被JMX bean。开云体育官方注册网址Debe开云体育官方注册网址zium JMX bean将缓冲所有通知,确保不遗漏通知。下面的说明这是什么样子的jconsole:

JConsole接收通知”>
             </div>
            </div>
            <div class=

JMX bean不会自动清除通知队列。为了避免内存问题,一定要调用重置通知bean上的方法一旦你处理所有通知。

我们期待你的反馈在这个新方法与Debezium JMX集成信号和通知。开云体育官方注册网址

新的JDBC存储子系统

开云体育官方注册网址Debezium 2.3引入了一个新的存储模块实现支持模式的历史和抵消的持久性数据存储中的数据通过JDBC。对环境中你可能没有持久的文件系统,这提供了另一个选择通过远程存储,持久性存储平台。

为了利用这个新的模块,下面的依赖必须添加到您的项目或应用程序:

Maven坐标
<依赖>< groupId >io.开云体育官方注册网址debezium< / groupId >< artifactId >开云体育官方注册网址debezium-storage-jdbc< / artifactId ><版本>2.3.0.Final> < /版本< / >的依赖

下面的例子展示如何配置抵消或模式历史存储通过JDBC存储模块:

配置示例抵消JDBC存储
{offset.storage.jdbc.url:< jdbc-connection-url >,offset.storage.jdbc.user:dbus,offset.storage.jdbc.password:秘密,offset.storage.jdbc.offset_table_name:开云体育官方注册网址debezium_offset_storage}
配置示例模式历史JDBC存储
{schema.history.internal.jdbc.url:< jdbc-connection-url >,schema.history.internal.jdbc.user:dbus,schema.history.internal.jdbc.password:秘密,schema.history.internal.jdbc.schema.history.table.name:开云体育官方注册网开云体育电动老虎机址debezium_database_history}

曾经为PostgreSQL流交付

开云体育官方注册网址Debezium历来是一个至少一次交付解决方案,保证没有任何变化是错过了。只有一次是一个Apache卡夫卡提议的社区的一部分kip - 618。这项提案旨在解决常见的问题与制片人(源连接器)生产商重试时,它可能转发到卡夫卡代理一批事件即使这批已经犯下的代理。这意味着有重复的事件可能被发送的情况下,并不是每一个消费者(水槽连接器)可能是轻易能够处理这种情况。

开云体育官方注册网址Debezium计划在分阶段推出仅一次传递语义的风格。有特定的角落情况下快照和流媒体,这些可以通过连接器各不相同。,Debezium 2.3开始开云体育官方注册网址专门为仅一次只有添加支持PostgreSQL在其语义流阶段只有!

为了利用只有一次交货,不需要连接器配置更改;然而,卡夫卡连接工人配置需要调整,以启用这个特性。你可以找到一个新的配置属性的引用kip - 618

如果你是混合连接器在同一集群连接,和不支持完全交付后,您将无法设置exactly.once.support在工人配置要求因为这将导致连接器不支持这个功能的失败验证在启动。

PostgreSQL复制品身份变化

开云体育官方注册网址Debezium 2.3引入了一个新的PostgreSQL连接器称为“Autoset副本身份”的特性。

副本身份PostgreSQL的捕获方法识别哪些列数据库事务日志插入、更新和删除操作。开云体育电动老虎机这个新功能允许配置表的复制品的身份通过连接器配置和授权的责任设置此配置在启动连接器。

新的配置选项,replica.identity.autoset.values指定一个以逗号分隔的表元组和副本的身份。如果表已经给定的复制品的身份,身份将被重写以匹配这个配置如果表中指定的是包括在内。PostgreSQL支持多个副本的身份类型,这些中可以找到更多信息文档

当指定replica.identity.autoset.values值是一个以逗号分隔的值,每个元素使用的格式< fully-qualified-table-name >: < replica-identity >。一个示例如下所示两个表在哪里配置的完整副本的身份:

{replica.identity.autoset.values:public.table1:满,public.table2:完全}

Oracle RAC的改进

当连接到一个Oracle RAC安装,您必须指定一个rac.nodes配置属性的最小主机或跨集群所有单个节点的IP地址。旧版本的连接器也支持多种格式,允许为每个节点包含一个港口不是每个节点上的集群可能使用相同的端口。

开云体育官方注册网址Debezium 2.3提高Oracle RAC支持也承认,不一定每个节点使用相同的Oracle网站标识符(SID),因此,SID现在也可以包含在rac.nodes配置属性来支持这样的设施。

下面的例子说明了连接两个Oracle RAC节点,每一个使用不同的港口和SID参数:

一个示例配置
{connector.class:io.开云体育官方注册网址debezium.connector.oracle.OracleConnector,rac.nodes:host1.domain.com: 1521 / ORCLSID1 host2.domain.com: 1522 / ORCLSID2,}

其他修复

有相当多的错误修正和稳定性变化在本版本中,一些值得注意的是:

  • 开云体育官方注册网址Debezium服务器停止发送事件到谷歌云Pub / Subdbz - 5175

  • 烤不同字符数组和数组日期不正确的处理dbz - 6122

  • Infinispan 14.0.11升级。最终解决cve - 2022 - 45047dbz - 6193

  • 介绍LogMiner查询过滤模式dbz - 6254

  • 锁争用LOG_MINING_FLUSH表当多个连接器部署dbz - 6256

  • 确保连接器可以从一个过期时间戳开始一个多小时过去dbz - 6307

  • rs_id字段为空在Oracle更改事件源信息块dbz - 6329

  • JWT验证添加到HTTP客户端dbz - 6348

  • 使用PostgreSQL10 pg_replication_slot_advance这是不支持的。dbz - 6353

  • log.mining.transaction.retention。小时应该参考去年抵消而不是sysdatedbz - 6355

  • 当流切分列表支持多个任务dbz - 6365

  • 代码改进skip.messages.without.changedbz - 6366

  • 运动水槽,AWS凭据提供程序dbz - 6372

  • 烤hstore没有正确处理dbz - 6379

  • 甲骨文DDL缩小表分区的空间不能被解析dbz - 6386

  • __source_ts_ms r(读)操作日期设置为SQL Server的未来dbz - 6388

  • PostgreSQL连接器任务失败恢复流因为复制槽是活跃的dbz - 6396

  • 没有时区的日期和时间值基于database.time_zone坚持正确开云体育电动老虎机dbz - 6399

  • MongoDB连接器崩溃无效简历上令牌dbz - 6402

  • 快照捕获步骤5 -阅读结构表的时间太长了dbz - 6439

  • 肺水肿在只读启动MySQL连接器dbz - 6440

  • 甲骨文平行快照不正确设置当使用多租户PDB上下文dbz - 6457

  • [MariaDB]添加对userstat插件的支持关键字dbz - 6459

  • 开云体育官方注册网址Debezium服务器不能从谷歌Pub / Sub错误中恢复过来dbz - 6461

  • “忽略无效任务提供抵消”dbz - 6463

  • Oracle snapshot.include.collection。应与数据库名前缀列表文档。开云体育电动老虎机dbz - 6474

  • Db2 connector可以在通知发送失败和肺水肿dbz - 6485

  • ExtractNewRecordState SMT结合HeaderToValue SMT导致意想不到的字段名例外dbz - 6486

  • BigDecimal失败当队列内存大小限制dbz - 6490

  • 允许模式中指定Debezium水槽连接器配置开云体育官方注册网址dbz - 6491

  • ORACLE表不能被捕获,runtime.NoViableAltExceptiondbz - 6492

  • 信号轮询间隔不正确的默认值dbz - 6496

  • Oracle JDBC驱动程序23。x抛出ora - 18716没有任何时区dbz - 6502

  • 高山postgres图像应该使用llvm / 15明确的叮当声dbz - 6506

  • FileSignalChannel不加载dbz - 6509

  • 利用event.processing.failure.handling。在维塔斯模式复制连接dbz - 6510

  • 初始化期间MySqlReadOnlyIncrementalSnapshotChangeEventSource执行卡夫卡的依赖dbz - 6511

  • 开云体育官方注册网址Debezium增量快照块大小文档不清楚或不正确的dbz - 6512

  • 错误的价值convertOracleIntervalDaySecond -秒dbz - 6513

  • 开云体育官方注册网址Debezium增量快照块大小文档不清楚或不正确的dbz - 6515

  • 只使用错误处理模式在某些错误dbz - 6523

  • (PostgreSQL) LTree数据没有被捕捉到流dbz - 6524

  • 甲骨文连接器:快照不能与特定的组合dbz - 6528

  • 使用更好的PartitionRouting哈希函数dbz - 6529

  • 表的顺序是错误的快照dbz - 6533

  • 开始出版夜间图像Debezium算子开云体育官方注册网址dbz - 6541

  • 开始为Debezium运营商发布图片开云体育官方注册网址dbz - 6542

  • 未处理的NullPointerException PartitionRouting将整个连接插件崩溃dbz - 6543

  • Bug field.name.adjustment.mode地产dbz - 6559

  • 操作员设置不正确的值的转换。当没有指定谓词谓词dbz - 6560

  • 升级MySQL 8.0.33 JDBC驱动程序dbz - 6563

  • 谷歌云BOM 26.17.0升级dbz - 6570

  • Kubernetes-Config扩展干扰由于k8 devservice启动SSL测试dbz - 6574

  • MySQL只读连接器启用了卡夫卡信号启动失败dbz - 6579

  • 复述,模式历史可以启动时失败dbz - 6580

接下来是什么?

Debez开云体育官方注册网址ium 2.3,我们的主要焦点在于将协调修正报告Debezium 2.3,但主要在即将到来的新的Debezium 2.4预览版。

开云体育官方注册网址Debezium 2.4吨的计划改变,我们打算斗的方式应对这些变化,与每个桶被分配一个优先级。对于任何安排,优先受到改变,但是以下的大纲会发生什么:

优先级1
  • (核心)TimescaleDB单一消息转换的支持

  • (核心)时区单一消息转换缓解与Debezium时间类型的用法开云体育官方注册网址

  • (核心)初始快照通知

  • MongoDB数据库开云体育电动老虎机范围内变化流支持

  • (MongoDB)支持多任务部署指标

  • (Oracle) OpenLogReplicator适配器支持

  • (Oracle) XML、长、原料和长原始数据类型的支持

  • (通用)仅一次语义支持其他连接器

  • Apache 3.5卡夫卡(依赖性)。x的支持

优先级2
  • (运营商)的下一步Debezium算子开云体育官方注册网址

  • (核心)临时阻断快照

  • 使用OpenTelemetry(依赖性)

优先级3
  • (嵌入式引擎)并行化支持

  • (MongoDB)平行增量快照支持

  • (MySQL)并行模式快照支持

这不是一个详尽的清单及其非常雄心勃勃的,但是考虑到缩短时间和Debezium 2.3,我们希望额外的几周Debezium 2.4将下一个小版本可能与所有这些特性等等。开云体育官方注册网址路线图本周将被更新,结合上述Debezium 2.4和未来,所以请务必与我们联系开云体育官方注册网址邮件列表或者我们的聊天如果你有任何想法或建议。

否则,我期望与夏季全面展开对我们这些在北方,假期和应得的补假接下来的几个月将是正常的。那些旅行或打算花些时间为自己和家人,享受,是安全的!

直到下次…

克里斯克兰福德

克里斯是一个软件工程师在Red Hat。他以前是一个Hibernate ORM小组成员现在Debezium工作。开云体育官方注册网址他住在北卡罗莱纳刚从Red Hat塔几小时。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,把你现有的数据库事件流,这样应用程序就可以看到,几乎立刻回应每个提交的行级的变化数据库。开云体育电动老虎机开云体育官方注册网址Debezium之上卡夫卡并提供卡夫卡连接兼容的连接器监控特定的数据库管理系统。开云体育电动老虎机开云体育官方注册网址Debezium卡夫卡日志记录的历史数据变化,所以可以在任何时候停止并重新启动您的应用程序,可以很容易地使用它错过了所有的事件而不运行,确保所有事件处理完全正确。开云体育官方注册网址Debezium是开源Apache许可,2.0版本

参与

我们希望你发现Debezium有趣开云体育官方注册网址的和有用的,想试一试。在Twitter上关注我们@开云体育官方注册网址debezium,与我们Zulip聊天,或者加入我们的邮件列表跟社区。所有的代码是开源的GitHub上,所以在本地构建代码,帮助我们改进我们现有的连接器和添加更多的连接器。如果你发现问题或有想法如何提高Debezium,请让我们知道开云体育官方注册网址日志一个问题