Debezium 1.0 发行说明

Debezium 发行的所有重要更改都记录在此文件中。发行编号遵循 语义化版本控制

1.0.3.Final 版 (2020 年 3 月 12 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.4.0 构建,并已使用 2.4.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.3.Final 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.3.Final 插件文件,并使用相同的配置重启连接器。重启后,1.0.3.Final 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

此发行版中没有重大更改。

新功能

  • ExtractNewRecordState - add.source.fields 应从逗号分隔的字段列表中剥离空格 DBZ-1772

  • 在 ExtractNewRecordState SMT 中添加从 op 字段插入字段的功能 DBZ-1452

修复

此版本包含以下修复

  • Debezium 重启后跳过消息 DBZ-1824

  • 无法监听表名中包含点的表的 binlog DBZ-1834

  • 使用 PostgreSQL 中的用户定义类型时,冗余调用 refresh schema DBZ-1849

  • postgres oid 过大,无法转换为整数 DBZ-1850

其他更改

此版本还包括其他更改

  • 在 AMQ Streams 上进行测试 DBZ-924

  • 验证 JMX 指标的正确性 DBZ-1664

  • 使用 AMQ Streams 1.4 连接器操作符进行测试 DBZ-1714

  • hstore.handling.mode 文档似乎不准确(且 map 显示 null 值) DBZ-1758

  • 关于未提交偏移量的误导性警告消息 DBZ-1840

  • 教程模块化 DBZ-1845

  • 监控文档模块化 DBZ-1851

  • 记录 PostgreSQL 连接器指标 DBZ-1858

1.0.2.Final 版 (2020 年 2 月 27 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.4.0 构建,并已使用 2.4.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.2.Final 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.2.Final 插件文件,并使用相同的配置重启连接器。重启后,1.0.2.Final 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

MySQL 配置选项 gtid.new.channel.position 的默认值最初设置为 latest,这在生产环境中永远不应使用。因此,默认值已设置为 earliest,并且该配置选项计划被移除(DBZ-1705)。MySQL 配置选项 event.deserialization.failure.handling.mode 已重命名为 event.processing.failure.handling.mode,以使其命名与其他连接器保持一致(DBZ-1826)。

新功能

  • 添加选项以跳过不可处理的事件 DBZ-1760

修复

此版本包含以下修复

  • Postgres 连接器因在事件生成到 Kafka 之前调用 commit() 而在重启时丢失数据 DBZ-1766

  • 快照时 TINYINT(1) 的值范围受到限制。DBZ-1773

  • MySQL 源连接器在解析新的 AWS RDS 内部事件时失败 DBZ-1775

  • MySQL TINYINT 映射定义不一致 DBZ-1800

  • Supply of message.key.columns 禁用了主键。DBZ-1825

其他更改

此版本还包括其他更改

  • 将 debezium-testing 模块回溯到 1.0.x DBZ-1819

1.0.1.Final 版 (2020 年 2 月 7 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.4.0 构建,并已使用 2.4.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.1.Final 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.1.Final 插件文件,并使用相同的配置重启连接器。重启后,1.0.1.Final 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

在将 PostgreSQL 数据库中的 DecoderBufs 逻辑解码插件升级到此新版本之前(或拉取该新版本的 debezium/postgres 容器镜像时),必须将 Debezium PostgreSQL 连接器升级到 1.0.1.Final 或 1.1.0.Alpha2 或更高版本(DBZ-1052)。

新功能

此发行版中没有新功能。

修复

此版本包含以下修复

  • 使 PostgreSQL 中的槽创建更加健壮 DBZ-1684

  • 支持将 boolean 作为 MySQL INT(1) 列的默认值 DBZ-1689

  • DDL 解析器无法识别 SIGNAL 语句 DBZ-1691

  • 使用嵌入式模式时,MYSQL 连接器失败 DBZ-1693

  • 在 Postgres 中向表中添加新的非空列后连接器出错 DBZ-1698

  • MySQL 连接器无法解析触发器 DDL DBZ-1699

  • MySQL 连接器不使用 connector.port 的默认值 DBZ-1712

  • ANTLR 解析器无法解析带有 TRANSACTIONAL 属性的 MariaDB 表 DDL DBZ-1733

  • Postgres 连接器不支持代理连接 DBZ-1738

  • GET DIAGNOSTICS 语句无法解析 DBZ-1740

  • MySql 密码在 debug 日志级别被记录下来 DBZ-1748

其他更改

此版本还包括其他更改

  • 添加使用 fallback values 和默认 REPLICA IDENTITY 的测试 DBZ-1158

  • 将所有属性名称/值对迁移到 Antora 组件描述符 DBZ-1687

  • 移除不同文档配置文件之间的重叠 DBZ-1729

  • 接收到未知操作事件时不要失败 DBZ-1747

  • 升级到 Mongo Java Driver 版本 3.12.1 DBZ-1761

1.0.0.Final 版 (2019 年 12 月 18 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.4.0 构建,并已使用 2.4.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.0.Final 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.0.Final 插件文件,并使用相同的配置重启连接器。重启后,1.0.0.Final 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

Debezium 1.0.0.CR1 中引入的孵化中的 SerDes 类型 io.debezium.serde.Serdes 已重命名为 io.debezium.serde.DebeziumSerdes,以避免与同名 Apache Kafka 类型冲突(DBZ-1670)。

与其他关系型连接器一样,MySQL 连接器现在支持 snapshot.lock.timeout.ms 选项,默认超时时间为 10 秒。升级连接器并执行新快照时,此超时现在可能适用,而之前连接器将无限期等待以获取所需的锁。在这种情况下,应根据您的具体要求调整超时时间(DBZ-1671)。

新功能

  • 支持从 SQL Server "AlwaysOn" 副本流式传输更改 DBZ-1642

修复

此版本包含以下修复

  • 正确解释 Sql Server 时间戳时区 DBZ-1643

  • 对 HashSet 进行排序只是为了将其放回 HashSet DBZ-1650

  • 只包含 RETURN 语句的函数无法解析 DBZ-1659

  • 使用 wal2json 或 pgoutput 流式传输时,枚举值解析不起作用 DBZ-1680

其他更改

此版本还包括其他更改

  • 全局确保测试中的记录可以被序列化 DBZ-824

  • 允许上游测试套件使用产品化的依赖项运行 DBZ-1658

  • 升级到最新的 PostgreSQL 驱动程序 42.2.9 DBZ-1660

  • 为自动删除的槽生成警告 DBZ-1666

  • MySQL 日期快照出现问题的回归测试 DBZ-1667

  • 将 Serdes 重命名为 DebeziumSerdes DBZ-1670

  • 基于 Apache Kafka 2.4 构建 DBZ-1676

  • 当 PostgreSQL 架构刷新失败时,允许错误包含根本原因 DBZ-1677

  • 为 RHEL 8 protobuf 插件 RPM 准备测试套件 DBZ-1536

1.0.0.CR1 版 (2019 年 12 月 10 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.3.1 构建,并已使用 2.3.1 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.0.CR1 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.0.CR1 插件文件,并使用相同的配置重启连接器。重启后,1.0.0.CR1 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

对于 SQL Server 和 Oracle 连接器,快照模式 initial_schema_only 已被弃用,将在未来版本中删除。请改用 schema_onlyDBZ-585)。

新功能

  • 未实现事务级别 TRANSACTION_READ_COMMITTED DBZ-1480

  • 为 Kafka Streams 提供更改事件 JSON Serde DBZ-1533

  • 提供 MongoDB 4.2 镜像 DBZ-1626

  • 支持 PostgreSQL 枚举类型 DBZ-920

  • 将容器镜像升级到 Java 11 DBZ-969

  • 支持 MongoDB 4.0 事务 DBZ-1215

  • 使 MySQL 连接 URL 中的连接超时可配置 DBZ-1632

  • 支持 uuid (_uuid) 数组 DBZ-1637

  • 为 SQL Server 添加测试矩阵 DBZ-1644

修复

此版本包含以下修复

  • 空历史主题被视为不存在 DBZ-1201

  • 类型别名处理不正确 DBZ-1413

  • 黑名单列在从 CDC 事件生成 Kafka 消息时未被过滤掉 DBZ-1617

  • IoUtil Bug修复 DBZ-1621

  • VariableLatch Bug修复 DBZ-1622

  • Oracle 连接器在尝试确定最新的 ddl 时间时扫描过多对象 DBZ-1631

  • 处理复合 ALTER 语句时,连接器未正确更新其状态 DBZ-1645

  • Outbox 事件路由器不应小写主题名称 DBZ-1648

其他更改

此版本还包括其他更改

  • 合并配置参数 DBZ-585

  • 合并将小数点值提升到精度低于定义的值的代码 DBZ-825

  • 使 Debezium 项目兼容 Java 11 DBZ-1402

  • 运行 SourceClear DBZ-1602

  • 扩展 MySQL 以测试 Enum 与 column.propagate.source.type DBZ-1636

  • 粘性目录在 PG 连接器文档中隐藏了表格 DBZ-1652

  • Antora 生成构建警告 DBZ-1654

1.0.0.Beta3 版 (2019 年 11 月 14 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.3.1 构建,并已使用 2.3.1 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.0.Beta3 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.0.Beta3 插件文件,并使用相同的配置重启连接器。重启后,1.0.0.Beta3 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

PostgreSQL 连接器的配置参数 drop_on_stop 已重命名为 drop.on.stopDBZ-1595),以使其与其他参数名称保持一致。

新功能

  • 标准化 Cassandra 连接器的源信息 DBZ-1408

  • 澄清当不使用 REPLICA IDENTITY FULL 时“before”中的旧值存在 DBZ-1518

  • 传播 replicator 异常,以便从 Connect 获取失败原因 DBZ-1583

  • Envelope 方法应接受 Instant 而不是 long 作为“ts”参数 DBZ-1607

修复

此版本包含以下修复

  • Debezium 错误地报告没有要捕获的表 DBZ-1519

  • Debezium Oracle 连接器尝试分析表 DBZ-1569

  • “before”中的 Null 值被填充为“__debezium_unavailable_value” DBZ-1570

  • Postgresql 11+ pgoutput 插件在截断时出错 DBZ-1576

  • Postgres 连接器在具有大量表的数据库的架构发现过程中超时(回归) DBZ-1579

  • 快照处理期间 ts_ms 值不正确 DBZ-1588

  • LogInterceptor 不是线程安全的 DBZ-1590

  • 非白名单表的 Heartbeat 不会生成 DBZ-1592

  • SQL Server 连接器的 configDef 中缺少 tombstone.on.delete 配置 DBZ-1593

  • AWS RDS Performance Insights 因“SELECT COUNT(1) FROM pg_publication”中未关闭的语句而稍有受损 DBZ-1596

  • 更新 Postgres 文档以使用 ts_ms 而不是 ts_usec DBZ-1610

  • 尝试快照非白名单表的架构时发生异常 DBZ-1613

其他更改

此版本还包括其他更改

  • 构建时自动格式化源代码 DBZ-1392

  • 根据技术预览更新文档 DBZ-1543

  • 减小 Postgres 容器镜像的大小 DBZ-1549

  • Debezium 不应使用 SHARE UPDATE EXCLUSIVE MODE 锁 DBZ-1559

  • 允许将标签传递给 CI 作业 DBZ-1578

  • 升级 MongoDB 驱动到 3.11 DBZ-1597

  • 在 Travis CI 中运行格式化验证 DBZ-1603

  • 将格式化规则放入 Maven 模块 DBZ-1605

  • 升级到 Kafka 2.3.1 DBZ-1612

  • 允许为 TableId 使用中的 schema/catalog 优先级进行每个连接器的设置 DBZ-1555

1.0.0.Beta2 版 (2019 年 10 月 24 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.3.0 构建,并已使用 2.3.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 1.0.x、0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.0.Beta2 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.0.Beta2 插件文件,并使用相同的配置重启连接器。重启后,1.0.0.Beta2 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

此发行版中没有重大更改。

新功能

  • 将工具镜像更新为使用最新的 kafkacat DBZ-1522

  • 验证配置的复制槽名称 DBZ-1525

  • 为 MS SQL 连接器隐藏密码字段 DBZ-1554

  • 发出关于积压工作(backlog)增长的警告 DBZ-1565

  • 支持 Postgres LTREE 列 DBZ-1336

修复

此版本包含以下修复

  • 由于 RocksDB 存储引擎不支持 START TRANSACTION WITH CONSISTENT SNAPSHOT 的 REPEATABLE READ 隔离级别,快照因最后运行 'UNLOCK TABLES' 时出错而中止。DBZ-1428

  • MySQL 连接器在解析包含索引定义关键字 VISIBLE 的 DDL 时失败 DBZ-1534

  • MySQL 连接器无法解析 DDL - GRANT SESSION_VARIABLES_ADMIN…​ DBZ-1535

  • Mysql 连接器:主键不能引用表中不存在的列 'id' '*' DBZ-1560

  • 当集合名称中存在点时,源结构(source struct)的 collection 字段不正确 DBZ-1563

  • 数据库快照后事务仍处于打开状态 DBZ-1564

其他更改

此版本还包括其他更改

  • 将 Postgres 12 添加到测试矩阵 DBZ-1542

  • 更新 Katacoda 学习体验 DBZ-1548

1.0.0.Beta1 版 (2019 年 10 月 17 日)

Kafka 兼容性

此版本已基于 Kafka Connect 2.3.0 构建,并已使用 2.3.0 版本的 Kafka Broker 进行测试。有关与其他版本 Kafka Broker 的兼容性,请参阅 Kafka 文档

升级

在升级 MySQL、MongoDB、PostgreSQL 或 SQL Server 连接器之前,请务必检查自您正在使用的版本以来所做的任何不兼容性更改。

当您决定将这些连接器中的任何一个从早期 0.10.x、0.9.x、0.8.x、0.7.x、0.6.x、0.5.x、0.4.x、0.3.x、0.2.x 或 0.1.x 版本升级到 1.0.0.Beta1 时,请首先查看您正在使用的版本的升级说明。正常停止正在运行的连接器,移除旧的插件文件,安装 1.0.0.Beta1 插件文件,并使用相同的配置重启连接器。重启后,1.0.0.Beta1 连接器将从上一个连接器中断的地方继续。正如您可能预期的那样,之前由旧连接器写入 Kafka 的所有更改事件都不会被修改。

如果您正在使用我们的 Docker 镜像,请不要忘记从 Docker 注册中心重新拉取它们。

重大更改

ExtractNewDocumentState 和 EventRouter SMTs 现在会原样传播任何 heartbeat 或 schema 更改消息,而不是像以前那样丢弃它们。这是为了确保与 ExtractNewRecordState SMT 的一致性(DBZ-1513)。

新的 Postgres 连接器选项 interval.handling.mode 允许控制 INTERVAL 列是导出为微秒(以前的行为,仍为默认值)还是导出为 ISO 8601 格式的字符串(DBZ-1498)。当现有连接器捕获 INTERVAL 列时,必须维护以下升级顺序

  1. 升级 Debezium Kafka Connect PostgreSQL 连接器

  2. 升级数据库中安装的逻辑解码插件

  3. (可选) 将 interval.handling.mode 切换为 string

特别是,应避免在连接器之前升级逻辑解码插件,因为这会导致 INTERVAL 列没有值被导出。

新功能

  • 为 INTERVAL 提供备用映射 DBZ-1498

  • 确保消息键具有正确的字段顺序 DBZ-1507

  • 在 OpenShift 上部署 Debezium 的图像不正确 DBZ-1545

  • 在日志中指示表锁定问题 DBZ-1280

修复

此版本包含以下修复

  • Debezium 无法快照大型数据库 DBZ-685

  • Postgres 连接器磁盘空间不足 DBZ-892

  • Debezium-MySQL 连接器在解析 AWS RDS 内部事件时失败 DBZ-1492

  • MongoDB ExtractNewDocumentState SMT 阻塞 heartbeat 消息 DBZ-1513

  • pgoutput 字符串解码取决于 JVM 默认字符集 DBZ-1532

  • table.whitelist 中的空格未被剥离 DBZ-1546

其他更改

此版本还包括其他更改

  • 升级到最新的 JBoss Parent POM DBZ-675

  • CheckStyle: 标记缺失的空格 DBZ-1341

  • 升级到最新的 Checkstyle 插件 DBZ-1355

  • CheckStyle: 闭合大括号后没有代码 DBZ-1391

  • 添加“adopters”文件 DBZ-1460

  • 为 Antora 发布页面添加 Google Analytics DBZ-1526

  • 为 postgres-decoderbufs 创建 0.10 RPM DBZ-1540

  • Postgres 文档修复 DBZ-1544

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