搜索

第 2 章 Db2 的 Debezium 连接器

download PDF

Debezium 的 Db2 连接器可以在 Db2 数据库的表中捕获行级更改。有关与此连接器兼容的 Db2 数据库版本的详情,请查看 Debezium 支持的配置页面

这个连接器主要由 SQL Server 的 Debezium 实现所发,它使用基于 SQL 的轮询模型将表置于"capture 模式"。当表处于捕获模式时,Debezium Db2 连接器会为该表的每个行级更新生成更改事件。

处于捕获模式的表有一个关联的 change-data 表,Db2 创建它。对于处于捕获模式的表的每个更改,Db2 会将有关该更改的数据添加到表的相关 change-data 表中。change-data 表包含一行的每个状态的条目。它还具有要删除的特殊条目。Debezium Db2 连接器从 change-data 表中读取更改事件,并将事件发送到 Kafka 主题。

当 Debezium Db2 连接器第一次连接到 Db2 数据库时,连接器会读取连接器配置为捕获更改的表的一致性快照。默认情况下,这是所有非系统表。有连接器配置属性,允许您指定将哪些表放入捕获模式,或者从捕获模式中排除哪些表。

快照完成后,连接器开始向捕获模式的表发送更改事件。默认情况下,更改特定表的事件会进入与表名称相同的 Kafka 主题。应用程序和服务会消耗这些主题的更改事件。

注意

连接器需要使用抽象语法表示法(ASN)库,该库作为 Linux 的 Db2 标准部分提供。要使用 ASN 库,您必须有用于 IBM InfoSphere 数据复制(IIDR)的许可证。您不必安装 IIDR 来使用 ASN 库。

使用 Debezium Db2 连接器的信息和步骤进行组织,如下所示:

2.1. Debezium Db2 连接器概述

Debezium Db2 连接器基于在 Db2 中启用 SQL Replication 的 ASN Capture/Apply 代理。捕获代理:

  • 为处于捕获模式的表生成 change-data 表。
  • 以捕获模式监控表,并在对应的 change-data 表中存储这些表的更改事件。

Debezium 连接器使用 SQL 接口来查询 change-data 表以更改事件。

数据库管理员必须将更改捕获为捕获模式的表。为方便起见,在 C 中提供了 Debezium 管理用户定义的功能(UDF),您可以编译,然后使用以下管理任务:

  • 启动、停止和重新初始化 ASN 代理
  • 将表置于捕获模式
  • 创建复制(ASN)模式和 change-data 表
  • 从捕获模式中删除表

或者,您可以使用 Db2 控制命令来完成这些任务。

在感兴趣的表采用捕获模式后,连接器会读取对应的 change-data 表,以获取表更新的更改事件。连接器会向与更改表的名称相同的 Kafka 主题,为每个行级插入、更新和删除操作发送更改事件。这是您可以修改的默认行为。客户端应用程序读取与感兴趣的数据库表对应的 Kafka 主题,并可对每行更改事件做出反应。

通常,数据库管理员会将表置于捕获模式,并在表的生命周期内出现。这意味着连接器没有对表进行的所有更改的完整历史记录。因此,当 Db2 连接器首先连接到特定的 Db2 数据库时,它首先为捕获模式的每个表执行 一致的快照。连接器完成快照后,连接器流会从进行快照的时间点更改事件。这样,连接器以捕获模式的表的一致性视图开始,且不会丢弃执行快照时所做的任何更改。

Debezium 连接器可以接受故障。当连接器读取和生成更改事件时,它会记录 change-data 表条目的日志序列号(LSN)。LSN 是数据库日志中更改事件的位置。如果连接器因任何原因停止,包括通信故障、网络问题或崩溃,在重启时继续读取其关闭的 change-data 表。这包括快照。也就是说,如果在连接器停止时快照没有完成,重启连接器会开始新的快照。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.