开云体育官方注册网址为Db2 Debezium连接器

开云体育官方注册网址Debezium Db2 connector可以捕获一个Db2数据库表的行级更改。开云体育电动老虎机信息的Db2数据库版本兼容这个连接器,看到开云体育电动老虎机开云体育官方注册网址Debezium释放概述

这个连接器是强烈的启发Debezium SQL服务器的实现,它使用一个基于SQL的轮询开云体育官方注册网址模型,把表放在“捕获模式”。当一个表在捕获模式下,Debezium Db2 connector生成和流开云体育官方注册网址改变事件的每个行级更新表。

表是在捕获模式都有一个关联的更改数据表中,Db2创建。每换一个表,在捕获模式,Db2将改变数据添加到表相关联的更改数据表。每个状态的更改数据表包含一个条目。它也有特殊的条目删除。Debe开云体育官方注册网址zium Db2 connector读取从更改数据表和改变事件发出卡夫卡主题的事件。

第一次Debezium Db2连接开云体育官方注册网址器连接到Db2数据库,连接器读取一个一致的快照的表连接器配置为捕捉变化。开云体育电动老虎机默认情况下,这是所有非系统的表。有连接器配置属性允许您指定哪些表放入捕获模式,或从捕获模式排除哪些表。

当快照完成连接器开始发出承诺更新表的更改事件捕获模式。默认情况下,为一个特定的表更改事件去卡夫卡主题名称相同的表。应用程序和服务消费从这些主题更改事件。

连接器需要使用抽象语法符号(ASN)库,这是可用的Db2 for Linux作为一个标准的一部分。要使用ASN库,您必须有一个许可证为IBM InfoSphere数据复制(IIDR)。你没有安装IIDR使用ASN库。

Db2连接器与Db2 for Linux测试。预计连接器也工作在其他平台上如窗户,我们希望得到你的反馈,如果你能证实这一点。

概述

基于De开云体育官方注册网址bezium Db2 connectorASN捕获/应用代理在Db2中,使SQL复制。一个捕获剂:

  • 为表生成更改数据表在捕获模式。

  • 监控表中捕获模式并将更改事件那些表的更新存储在相应的更改数据表。

Debe开云体育官方注册网址zium连接器使用SQL接口查询更改数据表进行更改事件。

数据库管开云体育电动老虎机理员必须把你想捕捉的表更改为捕获模式。为了方便,对于自动化测试,开云体育官方注册网址Debezium管理用户定义函数(udf)在C语言中,您可以编译,然后使用做如下管理任务:

  • 启动、停止和重新启动ASN代理

  • 把表放在捕获模式

  • 创建复制(ASN)模式和更改数据表

  • 从捕获模式删除表

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

在捕获模式感兴趣的表之后,连接器读取相应的更改数据表获取改变事件表更新。连接器发出更改事件为每个行级插入、更新和删除操作一个卡夫卡的话题,有着同样的名字改变表。这是默认的行为,您可以修改。客户端应用程序读卡夫卡主题对应于感兴趣的数据库表,可以对每个行级变化事件作出反应。开云体育电动老虎机

通常,数据库管理员把桌子放在中开云体育电动老虎机间的捕获模式的生命表。这意味着连接器没有完整历史的所有更改的表。因此,当Db2 connector第一次连接到一个特定的Db2数据库,它开始执行开云体育电动老虎机一致的快照在捕获模式下的每个表。连接器完成后快照,连接器流改变事件的快照。这样,连接器始于一个一致的视图的表在捕获模式下,并且不放弃所做的任何更改时执行快照。

开云体育官方注册网址Debezium连接器是失败的宽容。作为连接器读取和发生变化的事件,它记录日志序列号(LSN)更改数据表的条目。LSN是更改事件在数据库日志的位置。开云体育电动老虎机如果连接器停止任何理由,包括通信失败,网络问题,或崩溃,重启后继续阅读上次更改数据表。这包括快照。如果快照并不是完整的连接器停止时,在重新启动连接器开始一个新的快照。

连接器是如何工作的

优化配置和运行Debezium Db2 connector,这有助开云体育官方注册网址于了解连接器执行快照,流变化事件,决定了卡夫卡主题名称,和处理模式变化。

快照

Db2的复制特性不是用来存储数据库更改的完整历史。开云体育电动老虎机因此,当一个Debezium Db2 co开云体育官方注册网址nnector首次连接到一个数据库,它需要一个一致的快开云体育电动老虎机照捕获模式的表和小溪卡夫卡这个状态。这对表内容建立基线。

默认情况下,当一个Db2 connector执行快照,它下面的:

  1. 确定哪些表是在捕获模式,因此必须包含在快照。默认情况下,所有非系统的表是在捕获模式。连接器配置属性,如table.exclude.listtable.include.list允许您指定哪些表应该在捕获模式下。

  2. 获得一个锁在捕获模式下的每个表上。这将确保不会模式变化可能发生在那些表快照。锁是由水平snapshot.isolation.mode连接器配置属性。

  3. 读取(最近的)最高的LSN位置在服务器的事务日志。

  4. 捕获模式在捕获模式下的所有表。连接器持续这一信息在其内部数据库模式的历史主题。开云体育电动老虎机

  5. 可选的,在步骤2中获得释放锁。通常,这些锁只有一个短的时间。

  6. 的LSN位置读在步骤3中,连接器扫描捕获模式表以及它们的模式。在扫描过程中,连接器:

    1. 确认之前的表创建快照的开始。如果它不是,快照跳过那张桌子。快照完成后,连接器开始排放变化事件,连接器生产更改事件表中创建的快照。

    2. 产生一个事件的每个表中的每一行都是在捕获模式。所有事件包含相同的LSN位置,在步骤3中获得的LSN位置。

    3. 发出每个事件的卡夫卡主题名称相同的表。

  7. 记录的成功完成连接器补偿的快照。

特别的快照

默认情况下,一个连接器运行初始快照操作之后才开始第一次。这个初始快照后,在正常情况下,连接器不重复快照过程。未来的任何更改事件的数据连接器捕捉只通过流过程。

然而,在某些情况下获得的数据连接器在初始快照可能变得陈旧,丢失,或不完整的。为重新夺回表数据提供一种机制,Debezium包括一个选项来执行特定的快照。开云体育官方注册网址以下更改数据库中可能导致执行一个特设快照:开云体育电动老虎机

  • 连接器配置修改捕获一组不同的表。

  • 卡夫卡主题删除,必须重建。

  • 数据损坏发生由于配置错误或者其他问题。

你可以重新运行你的快照表之前启动一个所谓的捕获快照特别的快照。特别的快照的使用要求信号表。你发起一个特设快照通过发送一个信号请求Debezium信号表。开云体育官方注册网址

当你启动一个特设现有表的快照,连接器附加内容的主题已经存在的表。如果以前现有主题是移除,Debezium可以自动创建一个主题开云体育官方注册网址自动主题创建启用。

特设快照信号中包含指定表快照。快照可以捕捉数据库的全部内容,或者只捕获数据库中的表的一个子集。开云体育电动老虎机此外,快照可以捕获的一个子集表的内容(s)在数据库中。开云体育电动老虎机

您指定的表来捕获通过发送一个execute-snapshot信息信号表。设置的类型execute-snapshot信号增量,并提供表的名称中包含快照,下表中描述:

表1。一个特别的例子execute-snapshot信号记录
默认的 价值

类型

增量

指定类型的快照,你想要运行。
设置类型是可选的。目前,你只能请求增量快照。

数据收集

N /一个

一个数组,其中包含正则表达式匹配表的完全限定名称快照。
名字的格式是一样的signal.data.collection配置选项。

附加条件

N /一个

一个可选的字符串,它指定一个条件基于表的列(s) (s),捕获的内容表的一个子集(年代)。

代理键

N /一个

一个可选的字符串,指定的列名连接器使用的主键表快照过程中。

触发一个特别的快照

你发起一个特设的快照通过添加一个条目execute-snapshot信号类型的信号表。连接器处理消息之后,它开始快照操作。快照过程读取第一个和最后一个主键值,并使用这些值为每个表的开始和结束点。根据表中的条目的数量,和配置的块大小,Debezium把表分成块,每个块和收益快照,在继承,一次一个。开云体育官方注册网址

目前,execute-snapshot动作类型触发增量快照只有。有关更多信息,请参见增量快照

增量快照

快照管理上提供了很大的灵活性,Debezium包括补充快照机制,称为开云体育官方注册网址增量快照。增量快照依靠Debezium机制开云体育官方注册网址Debezium连接器发送信号开云体育官方注册网址。基于增量快照DDD-3设计文档。

在增量快照,而不是捕捉数据库的完整状态,在一个初始快照,Debezium捕捉每个表的阶段,在一系列的配置块。开云体育官方注册网址开云体育电动老虎机你可以指定表的快照捕获和每个数据块的大小。块大小确定的行数的快照收集在每个提取操作数据库。开云体育电动老虎机默认增量快照块大小为1024行。

作为一个增量快照,Debezium使用水印追踪其进展,保持每个表的记录行,开云体育官方注册网址它捕获。分阶段方法捕获数据提供了以下优势标准初始快照过程:

  • 您可以运行增量快照与流数据获取,而不是推迟直到快照完成流媒体。连接器继续捕获实时事件从快照过程中更改日志,也操作模块。

  • 如果中断增量快照的进步,你可以恢复它而不会丢失任何数据。流程简历后,快照开始时它不禁停了下来,而不是重新夺回表从一开始。

  • 您可以运行一个增量快照随时点播,并根据需要重复这个过程适应数据库更新。开云体育电动老虎机例如,您可以重新运行快照后修改连接器配置向其添加一个表table.include.list财产。

增量快照过程

当您运行一个增量快照,Debezium每个表的主键,然后将表格分为块的基础上开云体育官方注册网址配置块大小。块的块,然后捕获块中的每个表行。对于每一行,它捕获快照发出事件。事件所代表的价值当块的快照开始的行。

快照收益,其他进程的继续访问数据库,可能修改表记录。开云体育电动老虎机反映这种变化,插入,更新,或删除操作是致力于按平常的事务日志。同样,持续Debezium流过程继续检测这些事开云体育官方注册网址件并发出相应的改变事件记录卡夫卡。

Debe开云体育官方注册网址zium如何解决碰撞中记录主键相同的吗

在某些情况下,更新删除收到的事件流过程排放的序列。即流过程可能会发出一个事件,修改一个表行之前快照捕获块包含事件这一行。当最终发出相应的快照行活动,其价值已经取代了。以确保增量快照事件到达的顺序处理正确的逻辑顺序,Debezium采用缓冲方案解决冲突。开云体育官方注册网址只有在快照之间的碰撞事件和事件流解析对卡夫卡Debezium发出一个事件记录。开云体育官方注册网址

快照窗口

协助解决后面到达之间的碰撞事件和事件流,修改相同的表行,Debezium雇佣了一个所谓的开云体育官方注册网址快照窗口。快照windows的划定了间隔期间增量快照捕获一个指定表数据块。在一块的快照窗口打开之前,Debezium遵循其一贯的行为和直接从事务日志发出事件下游目标卡开云体育官方注册网址夫卡的话题。但从特定块快照打开,直到关闭,Debezium执行重复数据删除步骤解决之间的碰撞事件具有相同的主键. .开云体育官方注册网址

对于每个数据收集,Debezium发出两种类型的事件,并存储开云体育官方注册网址记录它们在单个目的地卡夫卡的话题。它捕获快照记录直接从表发出操作。与此同时,随着用户继续更新记录的数据收集,和事务日志更新以反映每一个提交,Debezium发出开云体育官方注册网址更新删除为每个变更操作。

快照窗口打开,Debezium开始处理一块快照,它提供了快照记录到内开云体育官方注册网址存缓冲区。在快照windows,主键的事件缓冲比较传入流的主键事件。如果没有发现匹配,直接发送到卡夫卡流事件记录。如果D开云体育官方注册网址ebezium检测到一个匹配,它丢弃缓冲事件,并将流记录写入目标主题,因为流事件逻辑取代静态快照事件。块的快照窗口关闭后,缓冲区只包含事件相关的事务日志事件存在。开云体育官方注册网址Debezium发出这些剩余事件表的卡夫卡的话题。

连接器为每个快照块重复这个过程。

Debe开云体育官方注册网址zium连接器为Db2不支持增量快照运行时模式变化。

触发一个增量快照

目前,启动增量快照的唯一方法是发送一个特设快照信号源数据库上的信号表。开云体育电动老虎机

你提交一个信号信号表的SQL插入查询。

后Debez开云体育官方注册网址ium检测信号的变化表,它读取信号,请求的快照操作运行。

你提交的查询中包含指定表快照,而且,还指定了快照的操作。目前,快照操作的唯一有效的选项是默认值,增量

中包括指定表快照,提供一个数据收集数组列表的表或数组正则表达式用于匹配表,例如,

{“数据收集”:["。MyFirstTable”、“public.MySecondTable ")}

数据收集数组增量快照信号没有默认值。如果数据收集数组为空,Debezium检测到开云体育官方注册网址不需要行动,不执行一个快照。

如果一个表的名称,你想要包含在一个快照包含一个点()数据库的名称、模式或表,添加表开云体育电动老虎机数据收集数组,你必须摆脱在双引号的每一部分的名字。

例如,包含一个表中存在公共模式和名称My.Table使用以下格式:“公共”。“My.Table”

先决条件
利用源信号通道触发增量快照
  1. 发出一个SQL查询添加临时增量快照请求信号表:

    插入< signalTable >(id、类型、数据)值(“< id >”,“< snapshotType >”{“数据收集”:[",<表>”、“<表>“,”类型”:“< snapshotType >”、“附加条件”:“<附加条件>“}”);

    例如,

    插入myschema.debezium_s开云体育官方注册网址ignal (id、类型、数据)(1)值(“ad-hoc-1”,(2)“execute-snapshot”,(3)”{代码基于schema1中“数据收集”:["。表1”、“schema2.table2”),(4)“类型”:“增量”},(5)“附加条件”:“颜色=蓝色“}”);(6)

    的值id,类型,数据参数对应的命令信号表的字段

    下表描述了参数的例子:

    表2。描述字段的SQL命令发送信号到信号表增量快照
    价值 描述

    1

    myschema.开云体育官方注册网址debezium_signal

    指定完全限定名称的信号在源数据库表。开云体育电动老虎机

    2

    ad-hoc-1

    id参数指定一个任意字符串,指定的id标识符的请求信号。
    使用这个字符串来识别信号表中的日志消息条目。开云体育官方注册网址Debezium不使用这个字符串。相反,在快照,Debezium生成自己的开云体育官方注册网址id字符串作为水印信号。

    3

    execute-snapshot

    类型参数指定的操作信号触发。

    4

    数据收集

    一个必需的组成部分数据领域的一个信号,指定表名数组或正则表达式匹配表名中包含快照。
    数组列表正则表达式匹配表的完全限定名称,使用相同的格式使用指定连接器的信号表的名称signal.data.collection配置属性。

    5

    增量

    一个可选的类型组件的数据领域的一个信号,表明指定的快照操作运行。
    目前,唯一有效的选项是默认值,增量
    如果你不指定一个值,连接器运行增量快照。

    6

    附加条件

    一个可选的字符串,它指定一个条件基于表的列(s) (s),捕获的内容表的一个子集。更多的信息附加条件参数,看到临时增量快照附加条件

临时增量快照附加条件

如果你想要一个快照只包括内容表的一个子集,您可以修改请求通过添加一个信号附加条件信号参数的快照。

典型的SQL查询快照需要以下形式:

SELECT * FROM<表>…。

通过添加一个附加条件参数,你添加一个在哪里SQL查询条件,如以下示例:

SELECT * FROM<表>在哪里<附加条件>…。

下面的例子展示了一个SQL查询发送一个临时增量快照请求信号表的附加条件:

插入< signalTable >(id、类型、数据)值(“< id >”,“< snapshotType >”{“数据收集”:[",<表>”、“<表>“,”类型”:“< snapshotType >”、“附加条件”:“<附加条件>“}”);

例如,假设您有一个产品表,包含以下列:

  • id(主键)

  • 颜色

  • 数量

如果你想要一个增量的快照产品表只包括的数据项颜色=蓝色,您可以使用以下SQL语句触发快照:

插入myschema.debezium_s开云体育官方注册网址ignal (id、类型、数据)值(‘ad-hoc-1’,‘execute-snapshot’,‘{代码基于schema1中“数据收集”:["。产品”),“类型”:“增量”、“附加条件”:“颜色=蓝色"});

附加条件参数也可以通过基于多个列的条件。例如,使用产品从前面的示例表,你可以提交一个查询,触发器增量快照,包括数据的只有那些物品颜色=蓝色量> 10:

插入myschema.debezium_s开云体育官方注册网址ignal (id、类型、数据)值(‘ad-hoc-1’,‘execute-snapshot’,‘{代码基于schema1中“数据收集”:["。产品”),“类型”:“增量”、“附加条件”:“颜色=蓝色和数量> 10 "});

下面的例子,显示了JSON增量快照捕获的事件连接器。

例如:增量快照事件消息
{“前”:零,“后”:{“pk”:“1”,“价值”:“新数据”},“源”:{…“快照”:“增量”(1)},“人事处”:“r”,(2)“ts_ms”:“1620393591654”,“交易”:零}
字段名 描述

1

快照

指定类型的快照操作运行。
目前,唯一有效的选项是默认值,增量
指定一个类型在你提交的SQL查询信号表是可选的。
如果你不指定一个值,连接器运行增量快照。

2

人事处

指定事件类型。
快照事件的值r,标志着一个操作。

程序使用卡夫卡信号通道

你可以发送一条消息配置卡夫卡的话题要求连接器运行一个临时增量快照。

卡夫卡的关键消息的值必须匹配topic.prefix连接器配置选项。

消息是一个JSON对象的值类型数据字段。

信号类型execute-snapshot,数据字段必须有以下字段:

表3。执行快照数据字段
默认的 价值

类型

增量

执行快照的类型。目前Debezium开云体育官方注册网址只支持增量类型。
详细信息,请参阅下一节。

数据收集

N /一个

逗号分隔的正则表达式匹配数组中包含的完全限定名称表快照。
指定名称需要通过使用相同的格式signal.data.collection配置选项。

附加条件

N /一个

一个可选的字符串,指定一个条件是连接器评估指定列的一个子集,包括在一个快照。

的一个例子execute-snapshot卡夫卡的信息:

关键= ' test_connector ' Value = '{“类型”:“execute-snapshot”、“数据”:{代码基于schema1中“数据收集”:["。表1”、“代码基于schema1中。表2"], "type": "INCREMENTAL"}}`
临时增量快照与附加条件

开云体育官方注册网址Debezium使用附加条件字段选择一个表的内容的一个子集。

通常,当Debezium运行一个开云体育官方注册网址快照,它运行一个SQL查询,如:

SELECT * FROM<表>…。

当请求包含一个快照附加条件,附加条件添加到SQL查询,例如:

SELECT * FROM<表>在哪里<附加条件>…。

例如,给定一个产品表的列id(主键),颜色,品牌,如果你想要一个快照只包括的内容颜色=蓝色当你请求快照,您可以添加一个附加条件声明内容过滤:

关键= ' test_connector ' Value = '{“类型”:“execute-snapshot”、“数据”:{代码基于schema1中“数据收集”:["。产品”),“类型”:“增量”、“附加条件”:“颜色=蓝色"}}

您可以使用附加条件声明中通过条件基于多个列。例如,使用相同的产品表在前面的例子,如果你想要一个快照只包括的内容产品颜色=蓝色,品牌= MyBrand你可以发送以下请求:

关键= ' test_connector ' Value = '{“类型”:“execute-snapshot”、“数据”:{代码基于schema1中“数据收集”:["。产品”),“类型”:“增量”、“附加条件”:“颜色=蓝色和品牌= MyBrand "}}

停止一个增量快照

你也可以停止增量快照通过发送一个信号对源数据库表。开云体育电动老虎机你提交一个停止信号表快照通过发送一个SQL插入查询。

后Debez开云体育官方注册网址ium检测信号的变化表,它读取信号,停止增量快照操作如果是在进步。

你提交的查询指定快照的操作增量,选择当前运行快照的表被删除。

先决条件
使用一个源信号通道停止增量快照
  1. 发出一个SQL查询停止临时增量快照信号表:

    插入< signalTable >(id、类型、数据)值(“< id >”,“stop-snapshot”、“{“数据收集”:["<表>”、“<表>”,“类型”:“增量”}’);

    例如,

    插入myschema.debezium_s开云体育官方注册网址ignal (id、类型、数据)(1)值(“ad-hoc-1”,(2)“stop-snapshot”,(3)”{代码基于schema1中“数据收集”:["。表1”、“schema2.table2”),(4)“类型”:“增量”}’);(5)

    的值id,类型,数据参数对应的信号命令信号表的字段

    下表描述了参数的例子:

    表4。描述字段的SQL命令发送停止信号到信号表增量快照
    价值 描述

    1

    myschema.开云体育官方注册网址debezium_signal

    指定完全限定名称的信号在源数据库表。开云体育电动老虎机

    2

    ad-hoc-1

    id参数指定一个任意字符串,指定的id标识符的请求信号。
    使用这个字符串来识别信号表中的日志消息条目。开云体育官方注册网址Debezium不使用这个字符串。

    3

    stop-snapshot

    指定类型参数指定的操作信号触发。

    4

    数据收集

    一个可选的组成部分数据领域的一个信号,指定表名数组或正则表达式匹配表名删除快照。
    数组列表正则表达式匹配表的完全限定名称,使用相同的格式使用指定连接器的信号表的名称signal.data.collection配置属性。如果该组件数据省略字段,那么信号停止整个增量快照的进展。

    5

    增量

    一个必需的组成部分数据领域的一个信号,表明指定的快照操作停止。
    目前,唯一有效的选项增量
    如果你不指定一个类型值时,信号无法停止增量快照。

使用卡夫卡信号通道停止增量快照

你可以发送消息到一个信号卡夫卡信号配置主题停止一个临时增量快照。

卡夫卡的关键消息的值必须匹配topic.prefix连接器配置选项。

消息是一个JSON对象的值类型数据字段。

信号类型stop-snapshot,数据字段必须有以下字段:

表5所示。执行快照数据字段
默认的 价值

类型

增量

执行快照的类型。目前Debezium开云体育官方注册网址只支持增量类型。
详细信息,请参阅下一节。

数据收集

N /一个

一个可选的逗号分隔的正则表达式匹配的完全限定名称中包含的表快照。
指定名称需要通过使用相同的格式signal.data.collection配置选项。

下面的例子显示了一个典型stop-snapshot卡夫卡的信息:

关键= ' test_connector ' Value = '{“类型”:“stop-snapshot”、“数据”:{代码基于schema1中“数据收集”:["。表1”、“代码基于schema1中。表2"], "type": "INCREMENTAL"}}`

更改数据表

后一个完整的快照,当一个Debezium Db2 connector开云体育官方注册网址开始第一次连接器标识更改数据表为每个在捕获模式下的源表。连接器为每个更改数据表做以下:

  1. 阅读改变过去存储之间创建的事件,最高的LSN和当前,最高的LSN。

  2. 订单更改事件根据提交LSN和LSN对于每个事件的变化。这确保连接器发出更改事件的顺序表中发生变化。

  3. 通过提交和改变lsn抵消卡夫卡连接。

  4. 商店的最高LSN传递给卡夫卡的连接器连接。

在重启之后,连接器简历发出更改事件的抵消(提交和改变lsn)离开。连接器运行时和排放变化事件,如果你从捕获模式删除一个表或添加一个表来捕获模式,连接器检测到变化,并相应修改其行为。

主题名称

默认情况下,Db2 connector写所有的更改事件插入,更新,删除操作发生在一个表到一个Apache卡夫卡主题特定的表。连接器使用以下约定名称更改事件主题:

topicPrefixschemaName的表

下面的列表提供了定义组件的默认名称:

topicPrefix

这个话题作为指定的前缀topic.prefix连接器配置属性。

schemaName

模式的名称的操作发生。

的表

表的名称的操作发生。

例如,考虑一个Db2安装的my开云体育电动老虎机database开云体育电动老虎机数据库,其中包含四个表:产品,PRODUCTS_ON_HAND,客户,订单在的MYSCHEMA模式。这四个卡夫卡连接器将发出事件主题:

  • my开云体育电动老虎机database.MYSCHEMA.PRODUCTS

  • my开云体育电动老虎机database.MYSCHEMA.PRODUCTS_ON_HAND

  • my开云体育电动老虎机database.MYSCHEMA.CUSTOMERS

  • my开云体育电动老虎机database.MYSCHEMA.ORDERS

连接器适用于类似的命名约定将其内部数据库模式的历史主题,开云体育电动老虎机模式改变话题,事务元数据主题

如果默认主题名称不符合您的需求,您可以配置自定义主题名称。配置自定义主题名称,您指定正则表达式在逻辑主题路由SMT。关于使用逻辑主题的更多信息路由SMT定制主题命名,明白了主题的路由

模式改变话题

您可以配置一个Debezium Db2连开云体育官方注册网址接器生产模式更改事件描述模式变化应用于捕获数据库中的表。开云体育电动老虎机

开云体育官方注册网址Debezium发出消息时模式改变话题:

连接器写模式改变事件卡夫卡模式改变主题的名称< topicPrefix >在哪里< topicPrefix >主题中指定的前缀是吗topic.prefix连接器配置属性。连接器的消息发送模式改变主题包含有效载荷,包括以下要素:

开云体育电动老虎机数据库名

语句的数据库的名称。开云体育电动老虎机的价值开云体育电动老虎机数据库名作为关键的消息。

pos

出现的位置在binlog语句。

tableChanges

整个表的结构化表示模式后改变。的tableChanges字段包含一个数组,包括表的每一列的条目。因为JSON或Avro的结构化表示了数据格式,消费者可以很容易地读取消息没有首先通过DDL解析器处理它们。

表是在捕获模式下,不仅连接器商店模式的变化模式变化的历史主题,而且在一个内部数据库模式的历史主题。开云体育电动老虎机内部数据库模式的历史主题是开云体育电动老虎机连接器只使用,不用于直接消费应用程序使用。确保应用程序只需要通知关于消费模式变化信息的模式改变话题。

没有分区数据库模式的历史主题。开云体育电动老虎机数据库模式的历史开云体育电动老虎机主题功能正确,必须保持一致的全球秩序连接器发出的事件记录。

确保主题不是分配给分区,设置分区数为主题通过使用下列方法之一:

  • 如果你手动创建数据库模式的历史主题,开云体育电动老虎机指定的分区数1

  • 如果你使用Apache卡夫卡代理自动创建数据库模式的历史主题,创建主题,设置的值开云体育电动老虎机卡夫卡num.partitions配置选项1

连接器的消息的格式发出到模式改变话题是一个酝酿状态,可以随时更改,不另行通知。

例子:消息发出Db2 connector模式改变话题

下面的示例显示了一个消息模式改变话题。消息包含一个表模式的逻辑表示。

{"模式":{…},“有效载荷”:{“源”:{“版本”:“tripwire。最后”、“连接器”:“db2”、“名称”:“db2”、“ts_ms”: 0,“快照”:“真正的”、“”、“testdb数据库”:“模式”:“DB2INST1”、“表”:“客户”、“change_lsn”:空,“commit_lsn”:“00000025:00000d98:00a2”、“event_serial_no ts_ms“:零}:1588252618953,(1)“开云体育电动老虎机数据库名”:“TESTDB”,(2)“schemaName”:“DB2INST1”、“ddl”:空,(3)“tableChanges”:((4){“类型”:“创造”,(5)" id ": " \ " DB2INST1 \ \”, \“客户”,(6)"表":{(7)“defaultCharsetName”:零,“primaryKeyColumnNames”:(8)“ID”],“列”:[(9){" name ": " ID ",“jdbcType”: 4,“nativeType”:空,“typeName”:“int身份”、“typeExpression”:“int身份”、“charsetName”:空,“长度”:10“规模”:0,“位置”:1、“可选”:假的,“自动增量”:假的,“生成”:假},{“名称”:“FIRST_NAME”,“jdbcType”: 12日“nativeType”:空,“typeName”:“varchar”、“typeExpression”:“varchar”、“charsetName”:空,“长度”:255年,“规模”:空,“位置”:2,“可选”:假的,“自动增量”:假的,“生成”:假},{“名称”:“LAST_NAME”,“jdbcType”: 12日“nativeType”:空,“typeName”:“varchar”、“typeExpression”:“varchar”、“charsetName”:空,“长度”:255年,“规模”:空,“位置”:3,“可选”:假的,“自动增量”:假的,“生成”:假},{“名称”:“电子邮件”、“jdbcType”: 12日“nativeType”:空,“typeName”:“varchar”、“typeExpression”:“varchar”、“charsetName”:空,“长度”:255年,“规模”:空,“位置”:4,“可选”:假的,“自动增量”:假的,“生成”:假}],“属性”:[(10){“customAttribute”:“attributeValue”}]}}]}}
表6所示。描述字段的消息发出模式改变话题
字段名 描述

1

ts_ms

可选字段显示的时间连接器处理事件。基于系统时钟的时间是在JVM中运行卡夫卡连接任务。

在源对象,ts_ms表示的时间更改到数据库中。开云体育电动老虎机通过比较payload.source的值。ts_ms载荷的值。ts_ms,you can determine the lag between the source database update and Debezium.

2

开云体育电动老虎机数据库名
schemaName

标识包含的数据库和模式的变化。开云体育电动老虎机

3

ddl

总是Db2 connector。对于其他连接器,该字段包含DDL负责的模式变化。这种DDL并不是可用的Db2连接器。

4

tableChanges

一个或多个数组项包含一个DDL命令生成的模式变化。

5

类型

描述的那种变化。价值是下列之一:

  • 创建——表创建

  • 改变——修改表

  • 下降——表删除

6

id

创建的表的完整标识符,修改或删除。

7

代表表元数据应用后改变。

8

primaryKeyColumnNames

列表的列组成表的主键。

9

改变表中的每一列的元数据。

10

属性

自定义属性为每个表元数据变化。

在连接器的消息发送模式改变话题,消息键是数据库的名称,包含模式的变化。开云体育电动老虎机在以下的示例中,有效载荷字段包含的关键:

{"模式":{“类型”:“结构”、“字段”:[{“类型”:“弦”、“可选”:假的,“场”:“数据库名”}],“可选”:假的,“名字”:“io.debezium.connector.db2开云体育电动老虎机.SchemaChangeKey”},“有效载荷”:{“数据库名”:“TESTDB}}开云体育官方注册网址

事务的元数据

开云体育官方注册网址Debezium可以生成事件表示事务边界和丰富变化数据事件消息。

限制当Debezium接收事务开云体育官方注册网址的元数据

开云体育官方注册网址Debezium寄存器和接收元数据只对交易发生后部署连接器。交易发生之前部署连接器的元数据是不可用的。

开云体育官方注册网址Debezium生成事务边界的事件开始结束分隔符在每个事务。事务边界事件包含以下字段:

状态

开始结束

id

唯一的事务标识符的字符串表示。

ts_ms

一个事务边界事件的时间(开始结束事件)的数据源。如果数据源不提供Debezium事件时间,然后字段代表的时间而不是Deb开云体育官方注册网址ezium处理事件。

event_count(结束事件)

事件的总数emmitted事务。

data_collections(结束事件)

对的数组data_collectionevent_count元素表明事件连接器发出的数量变化,来源于一个数据收集。

例子
{“状态”:“开始”,“id”:“00000025:00000d08:0025”、“ts_ms”: 1486500577125,“event_count”:空,“data_collections”:零}{“状态”:“结束”,“id”:“00000025:00000d08:0025”、“ts_ms”: 1486500577691,“event_count”: 2,“data_collections”: [{:“data_collection testDB.dbo。为多”、“event_count”: 1}, {:“data_collection testDB.dbo。”、“event_count”表b: 1}]}

除非通过覆盖topic.transaction选项,连接器排放交易事件< topic.prefix >.transaction的话题。

数据更改事件浓缩

当启用事务元数据连接器丰富变化的事件信封用一个新的事务字段。这个领域提供关于每一个事件的信息的形式复合的字段:

id

唯一的事务标识符的字符串表示。

total_order

事件在所有事件的绝对位置生成的事务。

data_collection_order

每个数据收集事件在所有事件的位置,发出的事务。

下面是一个例子的信息:

{“前”:零,“后”:{“pk”:“2”,“aa”:“1”},“源”:{…},“人事处”:“c”、“ts_ms”:“1580390884335”,“交易”:{" id ":“00000025:00000d08:0025”、“total_order”:“1”,“data_collection_order”: " 1 "}}

数据更改事件

Debe开云体育官方注册网址zium Db2 connector生成一个数据为每个行级更改事件插入,更新,删除操作。每个事件都包含一个键和一个值。键和值的结构取决于表的改变。

开云体育官方注册网址Debezium和卡夫卡连接的设计连续的事件消息流。然而,这些事件的结构可能会改变随着时间的推移,可以让消费者难以处理。为了解决这个问题,每个事件包含模式的内容或,如果您正在使用一个模式注册表,一个模式ID,一个消费者可以使用从注册表获取模式。这使得每个事件自包含的。

下面的骨架JSON显示了更改事件的基本四个部分。然而,如何配置卡夫卡连接转换器,你选择在应用程序中使用的决定表示这四个部分的更改事件。一个模式字段的更改事件只有当你配置转换器装出来的。同样,事件关键和事件有效负载的变化事件只有在你配置一个转换器装出来的。如果你使用JSON转换器配置它来生产所有四个基本事件部分改变,改变事件有一个结构:

{"模式":{(1)…},“有效载荷”:{(2)…},"模式":{(3)…},“有效载荷”:{(4)…}},
表7所示。更改事件基本内容的概述
字段名 描述

1

模式

第一个模式字段是关键事件的一部分。它指定了卡夫卡连接模式描述的事件的关键有效载荷部分。换句话说,第一个模式字段描述结构的主键或唯一键如果表没有主键的表,是改变。

可以通过设置覆盖表的主键message.key.columns连接器配置属性。在这种情况下,第一个模式场描述的结构主要由财产。

2

有效载荷

第一个有效载荷字段是关键事件的一部分。前面描述的结构模式的行字段和它包含的关键是改变。

3

模式

第二个模式场活动价值的一部分。它指定了卡夫卡连接模式描述的事件值有效载荷部分。换句话说,第二模式描述的结构被改变的行。通常,这个模式包含嵌套模式。

4

有效载荷

第二个有效载荷场活动价值的一部分。前面描述的结构模式场和它包含的实际数据为行改变。

默认情况下,连接器流改变事件记录主题名称是一样的事件的原始表。有关更多信息,请参见主题名称

Debe开云体育官方注册网址zium Db2 connector确保遵守所有卡夫卡连接模式名称Avro模式名称格式。这意味着逻辑服务器名称必须开始用拉丁字母或下划线,也就是说,a - z、a - z,或_。每个剩余字符在逻辑服务器名称和数据库和表中的每个字符的名称必须是一个拉丁字母,数字,下划线,也就是说,a - z、a - z, 0 - 9,或\ _。开云体育电动老虎机如果有一个无效的字符替换为下划线字符。

这可能会导致意想不到的冲突如果逻辑服务器名称,数据库名称,或一个表名称包含无效字符,和唯一的字符,区分名称从一个另一个无效,从而替换为下开云体育电动老虎机划线。

同时,Db2数据库名称、模式和表可以区分开云体育电动老虎机大小写。这意味着,连接器可以发出事件记录多个表相同的卡夫卡的话题。

更改事件的钥匙

改变事件的主要包含的模式改变表的键和改变行实际的关键。模式和相应的有效载荷包含一个字段更改表中的每一列的主键(或唯一约束)当时的事件创建的连接器。

考虑以下客户表,紧随其后的是一个更改事件这个表的关键。

例表
创建表的客户(ID的整数标识(1001 1)NOT NULL主键,FIRST_NAME VARCHAR (255) NOT NULL, LAST_NAME VARCHAR (255) NOT NULL,邮件VARCHAR (255) NOT NULL独特的);
示例更改事件关键

每一个变化事件,抓住了改变客户表具有相同的事件模式的关键。只要客户表有前面的定义,每一个更改事件捕获的变化客户表有以下键结构。在JSON,看起来像这样:

{"模式":{(1)“类型”:“结构”,“字段”:(2){“类型”:“int32”、“可选”:假的,“场”:“ID”}],“可选”:假的,(3)“名称”:“mydat开云体育电动老虎机abase.MYSCHEMA.CUSTOMERS.Key”(4)},“有效载荷”:{(5)“ID”: 1004}}
表8所示。描述变化事件的关键
字段名 描述

1

模式

模式的关键部分指定了卡夫卡连接模式,描述了什么是关键的有效载荷部分。

2

字段

指定每个字段,预计有效载荷,包括每个字段的名称、类型和是否需要它。

3

可选

表明事件的键必须包含一个值有效载荷字段。在这个例子中,一个关键的价值的有效载荷是必需的。关键的负载值字段是可选的,当一个表没有主键。

4

my开云体育电动老虎机database.MYSCHEMA.CUSTOMERS.Key

的名字的结构模式,它定义了关键的负载。该模式描述表的主键的结构改变。关键模式名的格式connector-name开云体育电动老虎机数据库名称表名关键。在这个例子中:

  • my开云体育电动老虎机database连接器的名称,生成的这一事件。

  • MYSCHEMA包含表,数据库开云体育电动老虎机模式是改变。

  • 客户是表更新。

5

有效载荷

包含这一变化的关键行生成事件。在这个例子中,关键,包含一个单一的ID字段的值是1004年

更改事件值

改变的价值比的关键事件更复杂。像的关键,有价值模式部分和一个有效载荷部分。的模式部分包含模式描述信封的结构有效载荷部分,包括其嵌套的字段。改变事件的操作创建、更新或删除数据有效载荷与信封结构都有一个值。

考虑相同的样本表用来显示的一个例子改变事件的关键:

例表
创建表的客户(ID的整数标识(1001 1)NOT NULL主键,FIRST_NAME VARCHAR (255) NOT NULL, LAST_NAME VARCHAR (255) NOT NULL,邮件VARCHAR (255) NOT NULL独特的);

每一个变化的事件值部分事件的客户表指定相同的模式。事件价值的有效载荷变化根据事件类型:

创建事件

下面的例子显示了更改事件的价值部分的连接器生成创建数据的操作客户表:

{"模式":{(1)“类型”:“结构”、“字段”:[{“类型”:“结构”、“字段”:[{“类型”:“int32”、“可选”:假的,“场”:“ID”},{“类型”:“弦”、“可选”:假的,“场”:“FIRST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“LAST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“电子邮件”}],“可选”:真的,“名字”:“mydatabase.MYSCHEMA.CUSTOMERS.Value”,开云体育电动老虎机(2)“字段”:“之前”},{“类型”:“结构”、“字段”:[{“类型”:“int32”、“可选”:假的,“场”:“ID”},{“类型”:“弦”、“可选”:假的,“场”:“FIRST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“LAST_NAME”},{“类型”:“弦”、“可选”:假的,“场”:“电子邮件”}],“可选”:真的,“名字”:“mydatabase.MYSCHEMA.CUSTOMERS。开云体育电动老虎机价值", "field": "after" }, { "type": "struct", "fields": [ { "type": "string", "optional": false, "field": "version" }, { "type": "string", "optional": false, "field": "connector" }, { "type": "string", "optional": false, "field": "name" }, { "type": "int64", "optional": false, "field": "ts_ms" }, { "type": "boolean", "optional": true, "default": false, "field": "snapshot" }, { "type": "string", "optional": false, "field": "db" }, { "type": "string", "optional": false, "field": "schema" }, { "type": "string", "optional": false, "field": "table" }, { "type": "string", "optional": true, "field": "change_lsn" }, { "type": "string", "optional": true, "field": "commit_lsn" }, ], "optional": false, "name": "io.debezium.connector.db2.Source",(3)“字段”:“源”},{“类型”:“弦”、“可选”:假的,“场”:“人事处”},{“类型”:“int64”、“可选”:真的,“场”:“ts_ms”}],“可选”:假的,“名字”:“mydatabase.MYSCHEMA.CUSTOMERS.Envelope”开云体育电动老虎机(4)},“有效载荷”:{(5)“之前”:空,(6)"后":{(7)“ID”: 1005年,“FIRST_NAME”:“约翰”,“LAST_NAME”:“母鹿”、“电子邮件”:“john.doe@example.org”},“源”:{(8)“版本”:“tripwire。最后”、“连接器”:“db2”、“名称”:“myconnector”、“ts_ms”: 1559729468470,“快照”:假的,“分贝”:“mydatabase”、“模式”:“MYSCHEMA”、“表”开云体育电动老虎机:“客户”、“change_lsn”:“00000027:00000758:0003”、“commit_lsn”:“00000027:00000758:0005”},“人事处”:“c”,(9)“ts_ms”: 1559729471739(10)}}
表9所示。的描述创建事件值字段
字段名 描述

1

模式

价值的模式,描述了价值的有效载荷的结构。更改事件的价值模式都是一样的在每一个更改事件的连接器生成一个特定的表。

2

的名字

模式节中,每的名字字段指定模式的一个字段值的有效载荷。

my开云体育电动老虎机database.MYSCHEMA.CUSTOMERS.Value是负载的模式吗之前字段。该模式是特定的客户表。连接器使用这个模式的所有行MYSCHEMA.CUSTOMERS表。

名称的模式之前表单的字段logicalNameschemaName的表value,确保数据库中的模式名称是惟一的。开云体育电动老虎机这意味着,当使用Avro转换器,结果Avro模式为每个表在每个逻辑源有其自身的进化和历史。

3

的名字

io.开云体育官方注册网址debezium.connector.db2.Source是负载的模式吗字段。这种模式是特定于Db2 connector。连接器使用它生成的所有事件。

4

的名字

my开云体育电动老虎机database.MYSCHEMA.CUSTOMERS.Envelope是模式的总体结构载荷,在哪里my开云体育电动老虎机database是数据库,开云体育电动老虎机MYSCHEMA是模式,客户是表。

5

有效载荷

价值的实际数据。这是改变事件提供的信息。

似乎JSON表示的事件是远远大于他们描述的行。这是因为必须包括一个JSON表示的模式部分和有效载荷部分信息。然而,通过使用Avro转换器,你可以显著减少连接器的消息流的大小,卡夫卡的话题。

6

之前

一个可选的字段指定事件发生之前的状态行。当人事处字段是c创建,在这个例子中,之前字段是因为这个更改事件是新内容。

7

一个可选的字段指定事件发生后的状态行。在这个例子中,字段包含的值的新行ID,FIRST_NAME,LAST_NAME,电子邮件列。

8

强制性字段描述了事件源的元数据。的结构显示Db2这种变化的信息,提供可跟踪性。它也有信息你可以使用它来比较其他事件在同一主题或其他主题知道这个事件发生之前,之后,或作为其他事件一样的承诺的一部分。元数据来源包括:

  • 开云体育官方注册网址Debezium版本

  • 连接器类型和名称

  • 时间戳在数据库中更改时间开云体育电动老虎机

  • 事件是否进行快照的一部分

  • 数据库的名称、模式和表,开云体育电动老虎机包含新行

  • 改变LSN

  • 提交LSN(省略如果这个事件是一个快照的一部分)

9

人事处

强制性的描述类型的字符串操作导致连接器生成事件。在这个例子中,c表明,一行创建的操作。有效值:

  • c=创建

  • u=更新

  • d=删除

  • r=阅读(只适用于快照)

10

ts_ms

可选字段显示的时间连接器处理事件。基于系统时钟的时间是在JVM中运行卡夫卡连接任务。

对象,ts_ms显示的时间更改到数据库中。开云体育电动老虎机通过比较的值payload.source.ts_ms的价值payload.ts_ms,您可以确定源数据库更新和Debezium之间的滞后。开云体育官方注册网址开云体育电动老虎机

更新事件

更改事件的价值更新的样本客户作为一个表有相同的模式创建事件表。同样,更新事件相同价值的有效载荷结构。然而,在一个事件有效负载价值包含不同的值更新事件。更改事件的一个例子是价值的事件连接器生成的一个更新客户表:

{"模式":{…},“有效载荷”:{“前”:{(1)“ID”: 1005年,“FIRST_NAME”:“约翰”,“LAST_NAME”:“母鹿”、“电子邮件”:“john.doe@example.org”},“后”:{(2)“ID”: 1005年,“FIRST_NAME”:“约翰”,“LAST_NAME”:“母鹿”、“电子邮件”:“noreply@example.org”},“源”:{(3)“版本”:“tripwire。最后”、“连接器”:“db2”、“名称”:“myconnector”、“ts_ms”: 1559729995937,“快照”:假的,“分贝”:“mydatabase”、“模式”:“MYSCHEMA”、“表”开云体育电动老虎机:“客户”、“change_lsn”:“00000027:00000ac0:0002”、“commit_lsn”:“00000027:00000ac0:0007”},“人事处”:“u”,(4)“ts_ms”: 1559729998706(5)}}
表10。的描述更新事件值字段
字段名 描述

1

之前

一个可选的字段指定事件发生之前的状态行。在一个更新事件的价值,之前为每个表列字段包含一个字段和值的列在数据库提交。开云体育电动老虎机在这个例子中,注意电子邮件值是john.doe@example.com

2

一个可选的字段指定事件发生后的状态行。你可以比较之前结构来确定更新这一行。在这个例子中,电子邮件值是现在noreply@example.com

3

强制性字段描述了事件源的元数据。的场结构包含相同的字段中创建事件,但一些值是不同的,例如,样本更新事件有不同的lsn。您可以使用这些信息来比较这个事件和其他事件知道这个事件发生之前,之后,或作为其他事件一样的承诺的一部分。元数据来源包括:

  • 开云体育官方注册网址Debezium版本

  • 连接器类型和名称

  • 时间戳在数据库中更改时间开云体育电动老虎机

  • 事件是否进行快照的一部分

  • 数据库的名称、模式和表,开云体育电动老虎机包含新行

  • 改变LSN

  • 提交LSN(省略如果这个事件是一个快照的一部分)

4

人事处

强制性的字符串描述操作的类型。在一个更新事件的价值,人事处字段值是u,表示这一行改变,因为一个更新。

5

ts_ms

可选字段显示的时间连接器处理事件。基于系统时钟的时间是在JVM中运行卡夫卡连接任务。

对象,ts_ms显示的时间更改到数据库中。开云体育电动老虎机通过比较的值payload.source.ts_ms的价值payload.ts_ms,您可以确定源数据库更新和Debezium之间的滞后。开云体育官方注册网址开云体育电动老虎机

更新列一行的主要/唯一键改变值的行键。当一个关键变化,Debezium输出开云体育官方注册网址三个事件:删除事件和一个墓碑上的事件用旧的关键行,紧随其后的是一个事件的新键行。

删除事件

在一个值删除有相同的变化事件模式部分为创建更新事件以相同的表。事件的价值有效载荷在一个删除事件为样本客户表看起来像这样:

{"模式":{…}},“有效载荷”:{“前”:{(1)“ID”: 1005年,“FIRST_NAME”:“约翰”,“LAST_NAME”:“母鹿”、“电子邮件”:“noreply@example.org”},“后”:空,(2)“源”:{(3)“版本”:“tripwire。最后”、“连接器”:“db2”、“名称”:“myconnector”、“ts_ms”: 1559730445243,“快照”:假的,“分贝”:“mydatabase”、“模式”:“MYSCHEMA”、“表”开云体育电动老虎机:“客户”、“change_lsn”:“00000027:00000db0:0005”、“commit_lsn”:“00000027:00000db0:0007“}”, op”:“d”,(4)“ts_ms”: 1559730450205(5)}}
表11所示。的描述删除事件值字段
字段名 描述

1

之前

可选字段,指定事件发生之前的状态行。在一个删除事件的价值,之前字段包含的值的行之前删除数据库中提交。开云体育电动老虎机

2

可选字段,指定事件发生后的状态行。在一个删除事件的价值,字段是,标志着这一行已不复存在。

3

强制性字段描述了事件源的元数据。在一个删除事件的价值,场结构是一样的创建更新事件以相同的表。许多字段值也相同。在一个删除事件的价值,ts_ms和LSN字段值,以及其他值,可能已经发生了变化。但是,在一个删除事件价值提供了相同的元数据:

  • 开云体育官方注册网址Debezium版本

  • 连接器类型和名称

  • 时间戳在数据库中更改时间开云体育电动老虎机

  • 事件是否进行快照的一部分

  • 数据库的名称、模式和表,开云体育电动老虎机包含新行

  • 改变LSN

  • 提交LSN(省略如果这个事件是一个快照的一部分)

4

人事处

强制性的字符串描述操作的类型。的人事处字段值是d,表示这一行被删除。

5

ts_ms

可选字段显示的时间连接器处理事件。基于系统时钟的时间是在JVM中运行卡夫卡连接任务。

对象,ts_ms显示的时间更改到数据库中。开云体育电动老虎机通过比较的值payload.source.ts_ms的价值payload.ts_ms,您可以确定源数据库更新和Debezium之间的滞后。开云体育官方注册网址开云体育电动老虎机

一个删除更改事件记录为消费者提供了信息需要处理删除这一行。包括旧值,因为一些消费者可能需要他们为了妥善处理消除。

Db2 connector事件设计卡夫卡日志压实。日志压实使删除一些旧消息只要至少每个关键是保持最新的消息。这使卡夫卡回收存储空间同时确保主题包含一个完整的数据集,可用于重新加载密钥的状态。

当一行被删除的删除事件的价值仍然使用日志压实,因为卡夫卡之前删除所有消息可以拥有同样的关键。然而,对于卡夫卡删除所有消息,相同的密钥,必须的信息价值。使这一切成为可能,Debezium Db2 connect开云体育官方注册网址or后发出删除事件,连接器发出一种特别的墓碑上活动,但是有相同的关键价值。

数据类型的映射

介绍了Db2的数据类型Db2 SQL数据类型

Db2 connector代表改变行等结构化事件存在的表行。事件的每一列都包含一个字段值。如何表示如果这个值取决于Db2数据类型的列。本节描述这些映射。如果默认数据类型转换不符合你的需要,你可以创建一个自定义转换器连接器。

基本类型

下表描述了连接器的每个Db2数据类型映射到一个文字类型和一个语义类型在事件字段。

  • 文字类型描述如何使用卡夫卡连接模式类型所代表的值是:INT8,INT16,INT32,INT64,FLOAT32,FLOAT64,布尔,字符串,字节,数组,地图,结构体

  • 语义类型描述了卡夫卡如何连接模式了意义使用的名称的字段卡夫卡连接模式。

表12。为Db2基本数据类型的映射
Db2数据类型 文字类型(模式类型) 语义类型(模式名称)和笔记

布尔

布尔

只能从快照表与布尔类型列。目前在Db2 SQL复制不支持布尔,所以Debezium不能对这些表执行中心。开云体育官方注册网址考虑使用一个不同的类型。

长整型数字

INT64

n /一个

二进制

字节

n /一个

字节

n /一个

CHAR ((N))

字符串

n /一个

CLOB

字符串

n /一个

日期

INT32

io.开云体育官方注册网址debezium.time.Date

没有时区的时间戳信息的字符串表示

DECFLOAT

字节

org.apache.kafka.connect.data.Decimal

小数

字节

org.apache.kafka.connect.data.Decimal

DBCLOB

字符串

n /一个

FLOAT64

n /一个

整数

INT32

n /一个

真正的

FLOAT32

n /一个

短整型

INT16

n /一个

时间

INT32

io.开云体育官方注册网址debezium.time.Time

没有时区的时间信息的字符串表示

时间戳

INT64

io.开云体育官方注册网址debezium.time.MicroTimestamp

没有时区的时间戳信息的字符串表示

VARBINARY

字节

n /一个

VARCHAR ((N))

字符串

n /一个

VARGRAPHIC

字符串

n /一个

XML

字符串

io.开云体育官方注册网址debezium.data.Xml

字符串表示的XML文档

如果存在,一个列的默认值是传播到对应字段的卡夫卡连接模式。更改事件包含字段的默认值,除非显式列值了。因此,很少有需要获得模式的默认值。当通过默认值可以满足兼容性规则使用Avro的序列化格式一起汇合的模式注册表。

时间类型

除了Db2的DATETIMEOFFSET数据类型,它包含时区信息,如何时间类型映射的值取决于time.precision.mode连接器配置属性。以下部分描述了这些映射:

time.precision.mode =自适应

time.precision.mode配置属性设置为自适应默认,连接器决定了文本类型和语义类型基于列的数据类型定义。这将确保事件完全表示数据库中的值。开云体育电动老虎机

表13。映射时time.precision.mode自适应
Db2数据类型 文字类型(模式类型) 语义类型(模式名称)和笔记

日期

INT32

io.开云体育官方注册网址debezium.time.Date

代表时代以来的天数。

时间(0),时间(1),时间(2),(3)

INT32

io.开云体育官方注册网址debezium.time.Time

代表的是午夜的毫秒数,不包括时区信息。

(4),时间(5),(6)

INT64

io.开云体育官方注册网址debezium.time.MicroTime

代表微秒午夜的数量,不包括时区信息。

时间(7)

INT64

io.开云体育官方注册网址debezium.time.NanoTime

代表的是午夜的纳秒数,不包括时区信息。

DATETIME

INT64

io.开云体育官方注册网址debezium.time.Timestamp

代表时代以来的毫秒数,不包括时区信息。

time.precision.mode =连接

time.precision.mode配置属性设置为连接卡夫卡,连接器使用逻辑连接类型。消费者只能处理时,这可能是有用的内置卡夫卡连接逻辑类型,无法处理可变精度时间值。然而,由于Db2支持10微秒级精度,通过连接器生成的事件连接时间精度结果精度的损失当数据库列开云体育电动老虎机精确到小数部分的第二值大于3。

表14。映射时time.precision.mode连接
Db2数据类型 文字类型(模式类型) 语义类型(模式名称)和笔记

日期

INT32

org.apache.kafka.connect.data.Date

代表时代以来的天数。

时间([P])

INT64

org.apache.kafka.connect.data.Time

代表午夜以来的毫秒数,不包括时区信息。Db2允许P在鹿储存范围10微秒级精度,尽管这种模式结果在精度的损失P大于3。

DATETIME

INT64

org.apache.kafka.connect.data.Timestamp

代表时代以来的毫秒数,不包括时区信息。

时间戳类型

DATETIME类型代表没有时区的时间戳信息。这些列转化为一个等价的基于UTC卡夫卡连接值。例如,DATETIME“2018-06-20 15:13:16.945104”为代表的价值io.开云体育官方注册网址debezium.time.Timestamp“1529507596000”的价值。

运行的JVM的时区卡夫卡连接和Debezium并不影响这种转换。开云体育官方注册网址

十进制类型

Db2数据类型 文字类型(模式类型) 语义类型(模式名称)和笔记

数字((P (S)))

字节

org.apache.kafka.connect.data.Decimal

规模模式参数包含一个整数,代表转移是多少数字小数点。的connect.decimal.precision模式参数包含一个整数,表示给定的十进制值的精度。

小数((P (S)))

字节

org.apache.kafka.connect.data.Decimal

规模模式参数包含一个整数,代表转移是多少数字小数点。的connect.decimal.precision模式参数包含一个整数,表示给定的十进制值的精度。

设置Db2

Debe开云体育官方注册网址zium捕捉变化事件致力于Db2表,一个Db2数据库管理员的权限必须为变化数据捕获配置数据库中的表。开云体育电动老虎机你开始运行后Debezium你可以调整捕捉剂的开云体育官方注册网址配置优化性能。

把表放在捕获模式

把表放在捕获模式,Debezium提供了一组用户定义函数(udf)开云体育官方注册网址,为了您的方便。这里的程序展示了如何安装和运行这些管理udf。或者,你可以把表放在捕获模式运行Db2控制命令。管理员必须为每个表,然后使CDC Debezium捕获。开云体育官方注册网址

先决条件
过程
  1. 编译Debezium管理开云体育官方注册网址udf Db2服务器主机上使用bldrtn提供与Db2命令:

    cd $ HOME / asncdctools / src
    。/ bldrtn asncdc
  2. 启动数据库如果尚未运开云体育电动老虎机行。取代DB_NAME数据库的名称,你想要Debezium连接。开云体育电动老虎机开云体育官方注册网址

    db2启动db DB_NAME
  3. 确保Db2 JDBC可以读取元数据目录:

    cd $ HOME / sqllib / bnd
    db2 db2schema绑定。bnd阻塞所有授予公共sqlerror继续
  4. 确保数据库最近备份。开云体育电动老虎机ASN代理必须有最近的起点读。如果您需要执行备份,运行以下命令,删除数据,因此只有最新版本是可用的。如果你不需要保留旧版本的数据,指定dev /空备份文件的位置。

    1. 备份数据库。开云体育电动老虎机取代DB_NAMEBACK_UP_LOCATION用适当的值:

      db2备份db DB_NAME BACK_UP_LOCATION
    2. 重新启动数据库:开云体育电动老虎机

      db2启动db DB_NAME
  5. 连接到数据库安装Debeziu开云体育电动老虎机m管理udf。开云体育官方注册网址假设你是登录的db2instl应该安装在用户的udfdb2inst1用户。

    db2 connect, DB_NAME
  6. 复制Debeziu开云体育官方注册网址m udf和设置权限管理:

    cp $ HOME / asncdctools / src / asncdc $ HOME / sqllib /功能
    chmod 777 $ HOME / sqllib / function
  7. 使Debezium U开云体育官方注册网址DF,启动和停止ASN捕获代理:

    db2 -tvmf $ HOME / asncdctools / src / asncdc_UDF.sql
  8. 创建ASN控制表:

    db2 -tvmf $ HOME /美元asncdctools / src / asncdctables.sql
  9. 使Debezium U开云体育官方注册网址DF,将表添加到从捕获模式捕获模式和删除表:

    db2 -tvmf $ HOME /美元asncdctools / src / asncdcaddremove.sql

    后设置Db2服务器,使用Db2 udf控制复制(ASN)和SQL命令。一些udf预期返回值在这种情况下,您使用SQL价值语句来调用它们。对于其他udf,使用SQL调用声明。

  10. 开始ASN代理:

    值ASNCDC.ASNCDCSERVICES(“开始”、“asncdc”);

    前面的语句返回的结果:

    • asncap已经运行

    • 开始- - ><命令>

      在这种情况下,输入指定的<命令>在终端窗口下面的例子所示:

      /开云体育电动老虎机数据库/ config / db2inst1 / sqllib / bin / asncap capture_schema = asncdc capture_server = &样品
  11. 把表放在捕获模式。为每个表调用下面的语句,你想捕获。取代MYSCHEMA与模式包含表的名称你想捕获模式。同样,取代MYTABLE与表的名称放入捕获模式:

    ASNCDC打电话。一个DDTABLE('MYSCHEMA', 'MYTABLE');
  12. 重新启动ASN服务:

    值ASNCDC.ASNCDCSERVICES (“reinit”、“asncdc”);

Db2捕获剂配置对服务器负载的影响和延迟

当一个数据库管开云体育电动老虎机理员允许改变源表的数据捕获,捕获代理开始运行。代理从事务日志中读取新的变更事件记录和事件记录复制到捕获表。之间的时间变化是在源表,和时间的改变出现在相应的表中,总有一个小延迟间隔。这个延迟间隔代表一个差距当变化发生在源表和当他们成为Apache卡夫卡Debezium可以流。开云体育官方注册网址

理想情况下,应用程序必须快速响应变化数据,你想保持密切同步源和捕获之间的表。你想象,运行捕获剂不断过程尽快更改事件可能导致增加吞吐量和减少延迟——填充改变表尽快与新事件记录事件发生后,在近乎实时的。然而,这并不一定如此。有一个的性能损失支付追求更直接的同步。每次查询数据库的改变代理新事件记录,它增加了对数据库主机CPU负载。开云体育电动老虎机额外的服务器上的负载可以在数据库的整体性能产生负面影响,并可能减少交易效率,特别是在高峰的时候数据库使用。开云体育电动老虎机

监视数据库是很重要的指标,这样你知道数据库达到的服务开云体育电动老虎机器可以不再支持捕获剂的活动水平。如果您遇到性能问题在运行捕获剂,减少CPU负载调整捕获代理设置。

Db2捕获代理配置参数

在Db2中,IBMSNAP_CAPPARMS表包含参数控制的行为捕获剂。您可以调整这些参数的值来平衡的配置捕获过程减少CPU负载和仍然维持可接受的水平的延迟。

具体指导如何配置Db2捕获剂参数超出了本文档的范围。

IBMSNAP_CAPPARMS表,以下参数产生最大的影响在减少CPU负载:

COMMIT_INTERVAL
  • 指定的秒数捕获剂等待提交数据来更改数据表。

  • 更高的价值减少数据库主机上的负载,增加延迟。开云体育电动老虎机

  • 默认值是30.

SLEEP_INTERVAL
  • 指定的秒数捕获剂等待它到达后开始一个新的提交周期结束的活动事务日志。

  • 更高的价值降低了服务器上的负载,并增加延迟。

  • 默认值是5

额外的资源
  • 关于捕获剂参数的更多信息,请参阅Db2文档。

部署

部署Debezium D开云体育官方注册网址b2 connector,你安装Debezium Db2 connector存档,配置连接器,并开始通过添加其配置卡夫卡连接连接器。

先决条件
过程
  1. 下载开云体育官方注册网址Debezium Db2 connector插件存档从Maven中央。

  2. 将JAR文件提取到您的卡夫卡连接环境。

  3. 下载为Db2 JDBC驱动程序从Maven中央和提取下载的驱动程序文件的目录,其中包含Debezium Db2连接器JAR文件(即,开云体育官方注册网址开云体育官方注册网址debezium-connector-db2-2.3.0.Final.jar)。

    由于许可要求,Debezium Db2 connector档案不包括D开云体育官方注册网址ebezium的Db2 JDBC驱动程序需要连接到Db2数据库。开云体育电动老虎机使连接器来访问数据库,您必须添加司机连接器的环境。开云体育电动老虎机

  4. 添加JAR文件的目录卡夫卡连接的plugin.path

  5. 重新启动卡夫卡连接过程去接新的JAR文件。

如果你正在与不可变的容器,明白了开云体育官方注册网址Debezium集装箱的图片Apache管理员,Apache卡夫卡和卡夫卡与Db2 connector已经安装并准备运行。

Db2连接器配置示例

下面是一个例子,一个连接器的配置从一个Db2服务器实例捕获数据在192.168.99.100在端口50000上,逻辑上我们的名字fullfillment。通常,您配置Debezium Db2 connector 开云体育官方注册网址JSON文件中通过设置配置属性可用于连接器。

你可以选择生成事件的一个子集模式和表在数据库中。开云体育电动老虎机可选地,您可以忽略,面具,或包含敏感数据的截断列,超过指定的尺寸,或者你不需要。

{" name ":“db2 connector”,(1)“配置”:{“连接器。class": "io.debezium.connector.db2.Db2Connector",(2)“开云体育电动老虎机数据库。主机名”:“192.168.99.100”,(3)“开云体育电动老虎机数据库。港”:“50000”,(4)“开云体育电动老虎机数据库。user": "db2inst1",(5)“开云体育电动老虎机数据库。密码”:“密码!”(6)“开云体育电动老虎机数据库。dbname": "mydatabase",(7)”的话题。前缀”:“fullfillment”,(8)“table.include。列表”:“MYSCHEMA.CUSTOMERS”,(9)“schema.history.internal.kafka.bootstrap.servers”:“卡夫卡:9092”,(10):“schema.history.internal.kafka.topic schemahistory.fullfillment”(11)}}
1 连接器的名称注册时卡夫卡连接服务。
2 这个Db2 connector类的名称。
3 Db2实例的地址。
4 Db2实例的端口号。
5 Db2的用户的名称。
6 Db2用户的密码。
7 数据库的名称来捕获变化。开云体育电动老虎机
8 Db2实例的逻辑名称/集群,形成一个名称空间中使用所有的名字的卡夫卡主题连接器写道,卡夫卡连接模式名称和相应的名称空间Avro模式时Avro连接器使用。
9 一个列表的所有表的更改Debezium应该捕获。开云体育官方注册网址
10 卡夫卡经纪人这个连接器使用的列表和恢复DDL语句写入数据库模式的历史主题。开云体育电动老虎机
11 数据库模式的名称历史主题连接器写开云体育电动老虎机道,恢复DDL语句。这个话题是仅供内部使用,不应被消费者使用。

配置属性的完整列表,您可以设置Debezium Db2 connector,明白了开云体育官方注册网址Db2 connector属性

你可以发送这个配置帖子命令来运行卡夫卡连接服务。服务记录配置并启动一个连接器任务执行下列操作:

  • 连接到Db2数据库。开云体育电动老虎机

  • 读取在捕获模式下更改数据表的表。

  • 流变化事件记录卡夫卡的话题。

添加连接器配置

开始运行一个Db2 connector,创建一个连接器配置和配置添加到您的卡夫卡连接集群。

先决条件
过程
  1. 创建一个配置Db2 connector。

  2. 使用卡夫卡REST API连接卡夫卡添加连接器配置连接集群。

结果

连接器启动后,它执行一个一致的快照Db2数据库表的连接器开云体育电动老虎机配置为捕捉变化。连接器然后开始生成数据行级操作的事件和流媒体改变事件记录,卡夫卡的话题。

连接器属性

Debe开云体育官方注册网址zium Db2连接器有许多配置属性,您可以使用它们来实现正确的连接器为您的应用程序的行为。许多属性的默认值。属性信息的组织结构如下:

需要Debeziu开云体育官方注册网址m Db2 connector配置属性

以下配置属性要求除非一个默认值是可用的。

财产 默认的 描述

没有默认的

独特的连接器的名称。再次尝试注册名称相同的就会失败。这个属性是必需的所有卡夫卡连接连接器。

没有默认的

连接器的Java类的名称。总是使用的值io.开云体育官方注册网址debezium.connector.db2.Db2ConnectorDb2 connector。

1

的最大数量的任务应该创建连接器。Db2 connector总是使用一个单一的任务,因此不使用这个值,所以默认总是可以接受的。

没有默认的

Db2数据库服务器的IP地址或主机名。开云体育电动老虎机

50000年

整数Db2数据库服务器的端口号。开云体育电动老虎机

没有默认的

Db2数据库用户名连接到Db2数开云体育电动老虎机据库服务器。

没有默认的

密码连接到Db2数据库服务器时使用。开云体育电动老虎机

没有默认的

流的Db2数据库的名称更改开云体育电动老虎机

没有默认的

主题提供一个名称空间前缀的特定的Db2数据库服务器主机Debezium捕捉变化的数据库。开云体育官方注册网址开云体育电动老虎机只有字母数字字符,连字符,点和凸显了主题的必须使用前缀的名字。主题前缀应该是唯一的在所有其他连接器,因为这个话题前缀是用于所有卡夫卡主题,接收记录该连接器。

不改变这个属性的值。如果你改变名称值,重启之后,而不是继续发出事件最初的话题,连接器发出后续事件主题的名字是基于新值。连接器也无法恢复其数据库模式的历史主题。开云体育电动老虎机

没有默认的

可选,以逗号分隔的正则表达式匹配完全限定表标识符表的修改你想要捕获的连接器。设置此属性时,连接器捕捉变化只从指定的表。每个标识符的形式schemaName的表。默认情况下,连接器捕捉每一个非系统的表的变化。

匹配一个表的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个表的名称字符串不匹配的子表中可能出现的名字。
如果包含该属性的配置,也不设置table.exclude.list财产。

没有默认的

可选,以逗号分隔的正则表达式匹配完全限定表标识符表的更改您不希望捕获的连接器。连接器捕捉变化在每一个非系统的表不包括在排除列表中。每个标识符的形式schemaName的表

匹配一个表的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个表的名称字符串不匹配的子表中可能出现的名字。
如果包含该属性的配置,也不设置table.include.list财产。

空字符串

可选,以逗号分隔的正则表达式匹配的完全限定名称列包含在变更事件记录值。完全限定名称列的形式schemaName的表columnName

匹配一个列的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;子字符串不匹配,可能出现在一个列名。如果包含该属性的配置,也不设置column.exclude.list财产。

空字符串

一个可选,以逗号分隔的正则表达式匹配的完全限定名称列从更改事件排除值。完全限定名称列的形式schemaName的表columnName

匹配一个列的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;子字符串不匹配,可能出现在一个列名。主键列总是包括在事件的关键,即使他们被排除在价值。如果包含该属性的配置,不设置column.include.list财产。

n /一个

一个可选,以逗号分隔的正则表达式匹配的完全限定名称基于字符的列。完全限定名称列的形式schemaName的表columnName
匹配的名称列Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;表达式不匹配的子字符串可能出现在一个列名。在生成的更改事件记录,指定列的值替换为假名。

一个假名由散列值指定应用的结果hashAlgorithm。基于所使用的哈希函数,引用完整性维护,当列值替换为假名。支持哈希函数的描述MessageDigest节Java加密体系结构标准算法名称的文档。

在接下来的例子中,CzQMA0cB5K是一个随机选择的盐。

column.mask.hash.sha with.salt——256.。CzQMA0cB5K = inventory.orders。customerName, inventory.shipment.customerName

如果有必要,笔名是自动缩短列的长度。连接器配置可以包括多个属性,指定不同的哈希算法和盐。

根据hashAlgorithm使用,选中,和实际数据集,生成的数据集可能不是完全掩盖了。

自适应

时间、日期和时间戳可以表示不同的精度:

自适应捕获时间和时间戳值在数据库中一样使用毫秒、微秒,或纳秒精度值基于数据库列的类型。开云体育电动老虎机

连接总是代表着时间和时间戳值通过卡夫卡连接的内置表示时间,日期,时间戳使用毫秒精度无论数据库列的精度。开云体育电动老虎机有关更多信息,请参见时间类型

真正的

控制是否删除事件是紧随其后的是一个墓碑上的事件。

真正的——由一个一个删除操作删除事件和随后的墓碑事件。

——只有一个删除发送事件。

源记录被删除后,发射一个墓碑事件(默认行为)允许卡夫卡属于完全删除所有事件的关键,以防被删除的行日志压实启用主题。

真正的

布尔值,用于指定连接器是否应该发布数据库模式的变化到卡夫卡的主题名称相同的数据库服务器ID。每个模式改变记录键包含数据库名称和值是一个JSON结构,描述了模式更新开云体育电动老虎机。这是独立的连接器内部数据库模式的历史记录。开云体育电动老虎机

n /一个

一个可选,以逗号分隔的正则表达式匹配的完全限定名称基于字符的列。设置该属性如果你想截断时的一组列中的数据超过指定的字符数长度在属性名。集长度为一个正整数的值,例如,column.truncate.to.20.chars

的完全限定名称列观察下列格式:schemaName的表columnName。匹配一个列的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;表达式不匹配的子字符串可能出现在一个列名。

您可以指定多个属性具有不同的长度在一个配置。

n /一个

一个可选,以逗号分隔的正则表达式匹配的完全限定名称基于字符的列。设置该属性如果你希望连接器面具的一组列的值,例如,如果他们包含敏感数据。集长度一个正整数指定列中的数据替换为星号的数量(*)指定的字符长度在属性名。集长度0(零),用一个空字符串替换指定列中的数据。

的完全限定名称列观察下列格式:schemaName的表columnName
匹配一个列的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;表达式不匹配的子字符串可能出现在一个列名。

您可以指定多个属性具有不同的长度在一个配置。

n /一个

可选,以逗号分隔的正则表达式匹配列,您想要的完全限定名称连接器排放额外参数代表列元数据。设置此属性时,连接器将以下字段添加到事件记录的模式:

  • __开云体育官方注册网址debezium.source.column.type

  • __开云体育官方注册网址debezium.source.column.length

  • __开云体育官方注册网址debezium.source.column.scale

这些参数传递一个列的原始类型名称和长度(不同宽度的类型),分别。
使连接器正确地发出这个额外的数据可以帮助大小水槽数据库中特定的数字或字符的列。开云体育电动老虎机

的完全限定名称列观察下列格式:开云体育电动老虎机数据库名的表columnName,或开云体育电动老虎机数据库名schemaName的表columnName
匹配一个列的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串列的名称;表达式不匹配的子字符串可能出现在一个列名。

n /一个

可选,以逗号分隔的正则表达式,指定完全限定名称列的数据类型定义的一个数据库。开云体育电动老虎机当这个属性设置,对于匹配的数据类型的列,连接器发出事件记录在他们的模式包括以下额外的字段:

  • __开云体育官方注册网址debezium.source.column.type

  • __开云体育官方注册网址debezium.source.column.length

  • __开云体育官方注册网址debezium.source.column.scale

这些参数传递一个列的原始类型名称和长度(不同宽度的类型),分别。
使连接器正确地发出这个额外的数据可以帮助大小水槽数据库中特定的数字或字符的列。开云体育电动老虎机

的完全限定名称列观察下列格式:开云体育电动老虎机数据库名的表typeName,或开云体育电动老虎机数据库名schemaName的表typeName
匹配一个数据类型的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串数据类型的名称;表达式不匹配的子字符串可能存在的类型名称。

特定于db2的数据类型名称的列表,请参阅Db2数据类型映射

空字符串

的表达式列表指定连接器使用的列表单自定义消息键改变事件记录,发布卡夫卡指定表的主题。

默认情况下,Debezi开云体育官方注册网址um使用一个表的主键列,它发出的消息键记录。的默认值,或指定一个关键对于缺乏一个主键的表,您可以配置自定义消息键基于一个或多个列。

建立一个自定义消息键表,列出表格,紧随其后的是列使用消息键。每个列表项采用以下格式:

< fully-qualified_tableName >:< keyColumn >,< keyColumn >

基地主要在多个列的表名称,插入逗号之间的列名。
每一个完全限定表名是一个正则表达式在以下格式:

< schemaName ><表>

房地产可以列出多个表的条目。使用分号来单独的条目列表中为不同的表。

下面的示例设置消息键的表inventory.customers:

inventory.customers: pk1 pk2; (. *) .purchaseorders: pk3 pk4

在前面的例子中,列pk1pk2指定的消息键表吗inventory.customer。为在任何模式表,列pk3pk4作为关键的消息。

没有一个

指定应该如何调整的兼容模式名消息转换器使用的连接器。可能的设置:

  • 没有一个不应用任何调整。

  • avro替换字符,不能用于强调Avro类型名称。

  • avro_unicode替换下划线或字符,不能用于像_uxxxx Avro与相应的unicode类型名称。注意:_是一个转义序列类似于Java反斜杠

没有一个

指定字段名称应该如何调整的兼容性与消息转换器使用的连接器。可能的设置:

  • 没有一个不应用任何调整。

  • avro替换字符,不能用于强调Avro类型名称。

  • avro_unicode替换下划线或字符,不能用于像_uxxxx Avro与相应的unicode类型名称。注意:_是一个转义序列类似于Java反斜杠

看到Avro命名为更多的细节。

先进的连接器配置属性

以下先进的配置属性默认值,在大多数情况下工作,因此很少需要指定连接器的配置。

财产 默认的 描述

没有默认的

列举了一个以逗号分隔的符号名称自定义转换器连接器可以使用实例。例如,

国际标准图书编号

你必须设置转换器财产让连接器使用一个自定义转换器。

对于每一个转换配置连接器,您必须添加一个.type属性,该属性指定了fully-qualifed实现converter接口的类的名称。的.type财产使用以下格式:

< converterSymbolicName >.type

例如,

isbn。类型:io.debezium.test.IsbnConverter

如果你想进一步控制配置转换器的行为,您可以添加一个或多个配置参数值传递给转换器。把任何额外的配置参数和一个转换器,前缀符号名称的参数名称的转换器。
例如,

isbn.schema.name: io.开云体育官方注册网址debezium.db2.type.Isbn

最初的

指定的标准执行快照当连接器开始:

最初的——表在捕获模式,连接器需要的快照模式的表和表中的数据。这是用于填充卡夫卡主题的完整表示的数据。

initial_only——需要结构和数据的快照像初始而是不进入快照完成流变化一次。

schema_only——表在捕获模式,连接器需要的快照只表的模式。这是有用的只有正在发生的变化从现在开始需要发出卡夫卡的话题。快照完成后,连接器继续通过阅读改变事件从数据库的重做日志。开云体育电动老虎机

repeatable_read

在一个快照,控制事务隔离级别和连接器锁多久在捕获模式的表。可能的值是:

read_uncommitted——不阻止其他事务在一个初始快照更新表行。这种模式没有数据一致性保证;一些数据可能丢失或损坏。

read_committed——不阻止其他事务在一个初始快照更新表行。新记录有可能出现两次:一次在初始快照和曾经在流阶段。然而,这是适合数据镜像一致性水平。

repeatable_read——防止其他事务在一个初始快照更新表行。新记录有可能出现两次:一次在初始快照和曾经在流阶段。然而,这是适合数据镜像一致性水平。

独家——使用可重复读隔离级别,但需要对所有表读取独占锁。这种模式可以防止其他事务在一个初始快照更新表行。只有独家模式保证完整的一致性;最初的快照和流日志构成一个线性的历史。

失败

指定连接器如何处理异常事件的处理过程中。可能的值是:

失败——连接器日志的抵消问题事件和停止处理。

警告——连接器日志的抵消问题事件,继续处理下一个事件。

跳过——连接器跳过问题事件并继续处理下一个事件。

500年

正整数的值指定的毫秒数连接器应该等待新的更改事件出现之前,开始处理一批事件。默认为500毫秒,或0.5秒。

2048年

正整数的值指定的最大大小每一批连接器的事件过程。

8192年

正整数的值指定了阻塞队列的最大记录数所能容纳的量。当Debe开云体育官方注册网址zium从数据库读取事件流,它将事件阻塞队列之前写卡夫卡。开云体育电动老虎机阅读改变事件的阻塞队列可以提供反压力的情况下从数据库连接器吸入消息的速度比它可以编写卡夫卡,或者当卡夫卡变得不可用。开云体育电动老虎机事件队列连接器时忽视举行定期记录偏移量。总是设置的值max.queue.size更大的价值max.batch.size

0

一个长整型值,指定字节的阻塞队列的最大体积。默认情况下,体积限制不指定阻塞队列。指定的字节数,队列可以消费,将此属性设置为一个积极的长期价值。
如果max.queue.size也是集,写作时队列阻塞队列的大小达到通过属性指定的限制。例如,如果您设置max.queue.size = 1000,max.queue.size.in.bytes = 5000、写作到队列阻塞队列包含1000条记录后,或记录在队列的体积后达到5000字节。

0

控制频率连接器发送心跳消息到卡夫卡的主题。默认行为是连接器不发送心跳消息。

心跳消息是有用的监测从数据库连接器是否接受更改事件。开云体育电动老虎机心跳消息可能有助于减少更改事件的数量时,需要发送一个连接器将重新启动。发送心跳消息,将此属性设置为一个正整数,这表明心跳消息之间的毫秒数。

时心跳消息有用有许多更新在数据库中被跟踪,但只有极少数的更新是在捕获模式的表。开云体育电动老虎机在这种情况下,连接器从数据库读取事务日志像往常一样但很少发出记录改为卡夫卡。开云体育电动老虎机这意味着连接器很少有机会发送最新的抵消卡夫卡。发送心跳消息使连接器发送最新的抵消卡夫卡。

没有默认的

以毫秒为单位间隔,连接器之前应该等待连接器启动时执行一个快照。如果你开始集群中的多个连接器,这个属性是有用的为避免快照中断,这可能导致连接器的调整。

所有表中指定table.include.list

一个可选,以逗号分隔的正则表达式匹配的完全限定名称(< schemaName >。<表>)表包括的一个快照。指定的物品必须命名的连接器table.include.list财产。这个属性生效只有连接器snapshot.mode除了属性设置为一个值从来没有
这个属性不会影响增量快照的行为。

匹配一个表的名称,Debezium适用于您指定的正则表达式开云体育官方注册网址锚定正则表达式。即指定表达式匹配整个字符串表的名称;可能存在不匹配的子字符串表中的名称。

2000年

在一个快照,连接器批量读取表内容的行。这个属性指定批处理的最大行数。

10000年

正整数的值指定最大的时间(以毫秒为单位)等来获取表锁在执行一个快照。如果连接器不能获得表锁在这个区间,快照就会失败。连接器如何执行快照提供细节。其他可能的设置:

0——连接器立即失败时不能获得一个锁。

1——连接器无限等待。

没有默认的

指定的表行包括一个快照。使用属性如果你想要一个快照包含只有一个子集的一个表中的记录。这个属性只影响快照。它不适用于事件连接器读取的日志。

属性包含一个以逗号分隔的完全限定表名的形式< schemaName >。<表>。例如,

“snapshot.select.statement。覆盖”:“inventory.products customers.orders”

对于每个表列表中,添加一个进一步配置属性指定了选择语句的连接器运行表时需要一个快照。指定的选择声明确定的子集表行中包含快照。使用以下格式指定的名字选择声明属性:

snapshot.select.statement.overrides。< schemaName ><表>。例如,snapshot.select.statement.overrides.customers.orders

例子:

从一个customers.orders表,包括软删除列,delete_flag添加以下属性如果你想要一个快照只包括那些不是soft-deleted:记录

“snapshot.select.statement。覆盖”:“客户。或ders", "snapshot.select.statement.overrides.customer.orders": "SELECT * FROM [customers].[orders] WHERE delete_flag = 0 ORDER BY id DESC"

在生成的快照,连接器只包含的记录delete_flag = 0

决定连接器生成事件与事务与事务边界和丰富变化事件信封的元数据。指定真正的如果你想连接器。看到事务的元数据获取详细信息。

t

一个以逗号分隔的操作类型,在流将被忽略。的操作包括:c插入/创建、u的更新,d删除,t截断,没有一个不要跳过任何操作。默认情况下,截断操作跳过(不发出该连接器)。

没有默认的

完全限定的名称用于发送的数据收集信号连接器。使用以下格式指定集合名称:
< schemaName ><表>

的信号通道名称列表启用的连接器。默认情况下,以下渠道:

  • 卡夫卡

  • 文件

  • jmx

可选地,也可以实现自定义信号通道

没有默认的

的通知列表支持连接器的通道名称。默认情况下,以下渠道:

  • 水槽

  • 日志

  • jmx

可选地,也可以实现自定义通知渠道

1024年

的最大行数连接器存取和读取到内存块在增量快照。增加块大小提供了更高的效率,因为快照少运行快照查询一个更大的规模。然而,更大的块的大小也需要更多的内存缓冲区快照数据。调整块大小的值提供了最佳的性能在您的环境中。

io.开云体育官方注册网址debezium.schema.SchemaTopicNamingStrategy

TopicNamingStrategy类的名称应该用于确定数据的主题名称变化,模式改变,交易,心跳事件等,默认SchemaTopicNamingStrategy

为主题名称指定分隔符,违约

10000年

大小用于举办的主题名称有界并发散列映射。这个缓存将有助于确定主题名称对应于给定的数据收集。

__开云体育官方注册网址debezium-heartbeat

控件的名称连接器发送心跳消息的主题。主题名称有这种模式:

topic.heartbeat.prefixtopic.prefix

例如,如果话题是前缀实现,默认的主题名称__开云体育官方注册网址debezium-heartbeat.fulfillment

事务

控制主题的连接器的名称发送交易信息的元数据。主题名称有这种模式:

topic.prefixtopic.transaction

例如,如果话题是前缀实现,默认的主题名称fulfillment.transaction

1

连接器使用指定数量的线程在执行一个初始快照。支持并行初始快照,将属性设置为大于1的值。在一个平行的初始快照,连接器同时处理多个表。这个特性是孵化。

开云体育官方注册网址Debezium连开云体育电动老虎机接器配置属性数据库模式历史

开云体育官方注册网址Debezium提供了一组schema.history.internal。*属性控制连接器与模式交互历史话题。

下表描述了schema.history.internal属性配置Debezium连接器。开云体育官方注册网址

表15。连接器配置属性数据库开云体育电动老虎机模式历史
财产 默认的 描述

没有默认的

连接器的卡夫卡主题的全称存储数据库模式的历史。开云体育电动老虎机

没有默认的

一个主机/端口对列表,建立一个初始的连接器使用连接到卡夫卡集群。这个连接是用于检索以前存储的数据库模式历史连接器,写作和每个DDL语句从源数据库读取。开云体育电动老虎机每一对应该指向同一个卡夫卡集群卡夫卡所使用的连接过程。

One hundred.

一个整数值,它指定的最大数量毫秒连接器应该等待在启动/恢复,同时为持久化数据轮询。默认是100 ms。

3000年

一个整数值,它指定的最大数量毫秒连接器应该等待获取集群信息使用卡夫卡管理客户机。

30000年

一个整数值,它指定的最大数量毫秒连接器应该等待使用卡夫卡管理客户机创建卡夫卡的历史主题。

One hundred.

连接器的最大次数应该尝试读取保存历史数据连接器之前恢复失败的错误。最大的时间等待后没有数据recovery.attempts×recovery.poll.interval.ms

一个布尔值,用于指定连接器是否应该忽略畸形或未知的数据库语句或停止处理,所以人类可以解决这个问题。开云体育电动老虎机安全默认是。不应该只有小心使用,因为它会导致数据丢失或矫直时binlog正在处理。

一个布尔值,用于指定连接器是否应该记录所有从数据库模式或指定DDL语句开云体育电动老虎机

真正的只记录那些变化的相关表的DDL语句被Debezium捕获。开云体育官方注册网址设置为真正的小心因为缺失的数据可能成为必要的如果你改变哪些表变化捕获。

安全默认是

一个布尔值,用于指定连接器是否应该记录所有DDL语句

真正的只记录那些相关数据库的DDL语句/模式的表被Debezium捕获的变化。开云体育官方注册网址开云体育电动老虎机将存储所有传入的DDL语句。

默认值是真正的MySQL连接器
直通数据库模式历史属性配置开云体育电动老虎机生产国和消费国的客户


开云体育官方注册网址Debezium依赖于卡夫卡生产商编写模式的更改数据库模式的历史主题。开云体育电动老虎机同样的,它依赖于消费者阅读卡夫卡连接器开始时从数据库模式的历史主题。开云体育电动老虎机您定义的配置卡夫卡生产国和消费国的客户通过将值分配给一组开始的直通配置属性schema.history.internal.producer。*schema.history.internal.consumer。*前缀。直通生产国和消费国数据库模式历史属性控制的一系列行为,比如如何将这些客户与卡夫开云体育电动老虎机卡代理安全连接,如以下示例所示:

SSL schema.history.internal.producer.ssl.keystore.location schema.history.internal.producer.security.protocol = = / var /私人/ SSL / kafka.server.keystore.jks schema.history.internal.producer.ssl.keystore.password = test1234 schema.history.internal.producer.ssl.truststore.location = / var /私人/ SSL / kafka.server.truststore.jks schema.history.internal.producer.ssl.truststore.password = test1234 schema.history.internal.producer.ssl.key.password = test1234 schema.history.internal.consumer.security.protocol = SSL schema.history.internal.consumer.ssl.keystore.location = / var /私人/ SSL / kafka.server.keystore.jks schema.history.internal.consumer.ssl.keystore.password = test1234 schema.history.internal.consumer.ssl.truststore.location = / var /私人/ SSL / kafka.server.truststore.jks schema.history.internal.consumer.ssl.truststore.password = test1234 schema.history.internal.consumer.ssl.key.password = test1234

开云体育官方注册网址Debezium带前缀的属性名之前,将属性传递到卡夫卡客户机。

看到卡夫卡文档了解更多细节卡夫卡生产商配置属性卡夫卡消费者配置属性

开云体育官方注册网址Debezium连接器卡夫卡信号配置属性

开云体育官方注册网址Debezium提供了一组信号。*属性控制连接器与卡夫卡的信号交互的话题。

下表描述了卡夫卡信号属性。

表16所示。卡夫卡信号配置属性
财产 默认的 描述

没有默认的

卡夫卡的名称主题,特设的连接器监控信号。

没有默认的

一个主机/端口对列表,建立一个初始的连接器使用连接到卡夫卡集群。每一对引用的卡夫卡集群Debezium卡夫卡所使用的连接过程。开云体育官方注册网址

One hundred.

一个整数值,它指定的最大数量毫秒时,连接器等轮询的信号。

开云体育官方注册网址Debezium直通信号连接器卡夫卡消费者客户端配置属性

Debe开云体育官方注册网址zium连接器提供了直通信号卡夫卡消费者的配置。直通信号属性从前缀开始signals.consumer。*。例如,连接器传递属性等signal.consumer.security.protocol = SSL卡夫卡的消费者。

一样的直通属性数据库模式历史客户开云体育电动老虎机,D开云体育官方注册网址ebezium带前缀的属性之前,会将它们传递到消费者卡夫卡信号。

开云体育官方注册网址Debezium连接器水槽通知配置属性

下表描述了通知属性。

表17所示。水槽通知配置属性
财产 默认的 描述

没有默认的

主题的名称,从Debezium接收通知。开云体育官方注册网址这个属性是必需的配置notification.enabled.channels财产包括水槽为启用通知渠道之一。

开云体育官方注册网址Debezium连接器直通数据库驱动程序的配置属性开云体育电动老虎机

Debe开云体育官方注册网址zium连接器提供了直通数据库驱动程序的配置。开云体育电动老虎机直通数据库属性从前缀开始开云体育电动老虎机司机。*。例如,连接器传递属性等driver.foobar = falseJDBC URL。

一样的直通属性数据库模式历史客户开云体育电动老虎机之前开云体育官方注册网址,Debezium带前缀的属性将它们传递到数据库驱动程序。开云体育电动老虎机

监控

Debe开云体育官方注册网址zium Db2 connector提供三种类型的指标除了内置支持JMX的度量标准Apache管理员,Apache卡夫卡,卡夫卡提供连接。

  • 快照指标提供连接器的信息操作在执行一个快照。

  • 流指标提供连接器的信息操作连接器时捕捉变化和流改变事件记录。

  • 模式历史指标提供连接器的状态模式的历史信息。

开云体育官方注册网址Debezium监控文档提供细节如何通过使用JMX公开这些指标。

快照指标

MBean开云体育官方注册网址debezium.db2: type = connector-metrics上下文=快照,server =< db2.server.name >

快照指标并非暴露,除非一个快照操作被激活时,或者如果发生自上次快照连接器的开始。

下表列出了shapshot指标可用。

属性 类型 描述

字符串

读过的最后一个快照事件连接器。

连接器以来的毫秒数读取和处理最近的事件。

这个连接器的事件总数已经从去年开始或重置。

事件的数量已经被包括/排除列表过滤规则过滤配置连接器。

string []

表的列表被连接器。

int

队列长度用来传递事件之间的快照和主卡夫卡连接循环。

int

队列的自由能力用来传递事件之间的快照和主卡夫卡连接循环。

int

表的总数被包含在快照。

int

表的数量尚未复制快照。

布尔

快照是否开始。

布尔

快照是否停了下来。

布尔

快照是否中止。

布尔

快照是否完成。

总秒数,快照到目前为止,即使不完整。也包括时间快照时停了下来。

总秒数,快照是暂停。如果快照停了好几次,暂停时间增加。

Map < String,长>

地图包含扫描的行数为每个表的快照。表在处理过程中也逐渐被添加到地图。更新一个表扫描并完成每10000行。

的最大缓冲区队列以字节为单位。这个指标是可用的max.queue.size.in.bytes被设置为一个积极的长期价值。

当前的体积,以字节为单位,记录在队列中。

连接器还提供了以下额外的快照指标执行增量快照时:

属性 类型 描述

字符串

当前的快照数据块的标识符。

字符串

下界的主键设置定义当前块。

字符串

主键的上限设置定义当前块。

字符串

下界的当前快照的表的主键设置。

字符串

主键的上界的当前快照表。

流指标

MBean开云体育官方注册网址debezium.db2: type = connector-metrics、上下文=流媒体服务器=< db2.server.name >

下表列出了流指标可用。

属性 类型 描述

字符串

过去的流事件连接器已经阅读。

连接器以来的毫秒数读取和处理最近的事件。

事件,该连接器的总数已经重置自上次启动或指标。

创建事件的总数,这个连接器以来最后复位启动或指标。

更新事件的总数,这个连接器以来最后复位启动或指标。

删除事件,该连接器的总数已经重置自上次启动或指标。

事件的数量已经被包括/排除列表过滤规则过滤配置连接器。

string []

表的列表被连接器。

int

队列长度之间的拖缆和主要用来传递事件卡夫卡连接循环。

int

队列的自由能力用来传递事件之间的拖缆和主卡夫卡连接循环。

布尔

国旗,表示连接器是否正在连接到数据库服务器。开云体育电动老虎机

的毫秒数去年更改事件的时间戳和连接器之间的处理它。值将会把机器上的任何差异时钟运行数据库服务器和连接器。开云体育电动老虎机

处理事务的数量。

Map < String, String >

去年收到事件的坐标。

字符串

事务标识符的处理事务。

的最大缓冲区队列以字节为单位。这个指标是可用的max.queue.size.in.bytes被设置为一个积极的长期价值。

当前的体积,以字节为单位,记录在队列中。

模式历史指标

MBean开云体育官方注册网址debezium.db2: type = connector-metrics、上下文= schema-history服务器=< db2.server.name >

下表列出了模式历史指标可用。

属性 类型 描述

字符串

之一停止,恢复(恢复历史存储),运行描述了历史数据库模式的状态。开云体育电动老虎机

时间在时代秒复苏已经开始。

的数量变化,阅读在复苏阶段。

模式变化的总数在复苏和运行时应用。

后经过的毫秒数,最后从历史存储变化是恢复。

后经过的毫秒数,最后应用改变。

字符串

最后变化的字符串表示从历史存储中恢复过来。

字符串

最后应用变化的字符串表示。

管理

你部署一个Debezium Db2 c开云体育官方注册网址onnector,使用后Debezium管理控制Db2 udf复制(ASN)和SQL命令。一些udf预期返回值在这种情况下,您使用SQL价值语句来调用它们。对于其他udf,使用SQL调用声明。

表18。的描述Debezium管理udf开云体育官方注册网址
任务 命令和笔记

开始ASN代理

值ASNCDC.ASNCDCSERVICES(“开始”、“asncdc”);

停止ASN代理

值ASNCDC.ASNCDCSERVICES(“停止”、“asncdc”);

检查ASN代理的状态

值ASNCDC.ASNCDCSERVICES(“状态”,“asncdc”);

把一个表放进捕获模式

ASNCDC打电话。一个DDTABLE('MYSCHEMA', 'MYTABLE');

取代MYSCHEMA与模式包含表的名称你想捕获模式。同样,取代MYTABLE与表的名称捕获模式。

从捕获模式删除一个表

ASNCDC打电话。REMOVETABLE (“MYSCHEMA”、“MYTABLE”);

重新启动ASN服务

值ASNCDC.ASNCDCSERVICES (“reinit”、“asncdc”);

这样做后,你把一个表为捕获模式或从捕获模式后您删除一个表。

模式演化

而Debeziu开云体育官方注册网址m Db2 connector可以捕捉模式变化,更新模式,必须与数据库管理员协作,确保连接器事件继续发生变化。开云体育电动老虎机这是所需的Db2实现复制。

为每个表在捕获模式下,Db2的复制特性创建一个更改数据表,其中包含源表的所有更改。然而,更改数据表模式是静态的。如果你更新一个表的模式在捕获模式,那么你也必须更新相应的更改数据表的模式。一个开云体育官方注册网址Debezium Db2 connector做不到这一点。以更开云体育电动老虎机高权限数据库管理员必须更新模式捕获模式的表。

是至关重要的执行模式更新过程完全之前,有一个新的更新相同的表。因此,建议执行ddl在单个批处理模式更新过程是只有一次完成。

通常有两种程序更新表模式:

每个方法都有优点和缺点。

离线模式更新

之前,你停止Debeziu开云体育官方注册网址m Db2 connector执行离线模式更新。虽然这是安全模式更新过程,它可能不是可行的应用程序高可用性需求。

先决条件
  • 一个或多个表的捕获模式需要模式更新。

过程
  1. 暂停更新数据库的应用程序。开云体育电动老虎机

  2. 等待Debezium连接器开云体育官方注册网址流所有unstreamed改变事件记录。

  3. 停止Debeziu开云体育官方注册网址m连接器。

  4. 所有更改应用到源表模式。

  5. ASN注册表中,马克表与更新模式不活跃的

  6. 重新启动ASN捕获服务

  7. 删除源表与捕获模式的旧模式删除表的运行Debezi开云体育官方注册网址um UDF捕获模式

  8. 添加源表与捕获模式的新模式添加表的Debezium开云体育官方注册网址 UDF来捕获模式运行

  9. ASN注册表中,马克更新的源表活跃的

  10. 重新启动ASN捕获服务。

  11. 简历更新数据库的应用程序。开云体育电动老虎机

  12. 重新启动Debezium开云体育官方注册网址连接器。

在线模式更新

一个在线模式更新不需要的应用程序和数据处理停机时间。也就是说,你不停止Debezium Db2 connect开云体育官方注册网址or之前执行在线模式更新。同时,在线模式更新过程比离线模式更新的过程简单。

然而,当一个表在捕获模式,改变列名称之后,Db2复制特性继续使用旧的列名。新列的名字没有出现在Debezium更改事件。开云体育官方注册网址您必须重新启动连接器中的新列名称更改事件。

先决条件
  • 一个或多个表的捕获模式需要模式更新。

过程结束时添加一个列到一个表格
  1. 锁模式你想改变的源表。

  2. ASN注册表中,马克锁表不活跃的

  3. 重新启动ASN捕获服务。

  4. 所有更改应用到源表的模式。

  5. 所有更改应用到相应的更改数据表的模式。

  6. ASN注册表中,马克的源表活跃的

  7. 重新启动ASN捕获服务。

  8. 可选的。重新启动连接器看到更新的列名称更改事件。

过程当添加一个列到一张桌子的中间
  1. 锁源表(s)被改变。

  2. ASN注册表中,马克锁表不活跃的

  3. 重新启动ASN捕获服务。

  4. 每个源表改变:

    1. 出口源表中的数据。

    2. 截断源表。

    3. 改变源表并添加列。

    4. 导出的数据装载到改变源表。

    5. 导出源表的相应更改数据表中的数据。

    6. 截断更改数据表。

    7. 修改更改数据表并添加列。

    8. 导出的数据装载到改变更改数据表。

  5. ASN注册表中,马克的表不活跃的。这标志着旧更改数据表不活跃,其中的数据可以保持但他们不再更新。

  6. 重新启动ASN捕获服务。

  7. 可选的。重新启动连接器看到更新的列名称更改事件。