如果系统表结构发生了变化或者有表级别调整,则需要重新开启CDC配置,配置步骤 如下:
1. 先关闭CDC配置,请根据实际情况填写schema和name。
EXEC sys.sp_cdc_disable_table @source_schema = N'dbo', @source_name = 'baris', @capture_instance ='all'
2. 重新开启CDC配置,请根据实际情况填写schema和name。
开启表级别配置。
IF EXISTS(SELECT 1 FROM sys.tables WHERE name='baris' AND is_tracked_by_cdc = 0) BEGIN
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo', -- source_schema
● 源端数据源已开启CDC功能,根据不同的数据源类型和CDC实现模式,具体操作 请参考:
– 配置Oracle CDC(LogMiner)(推荐使用)
– 配置Oracle CDC(XStream)
– 配置MySQL CDC(Binlog)
– 配置SQL Server CDC
● 源端数据源中CDC归档日志的保留时间需要大于集成任务解析的日志时间,否则
● FDI支持单个CDC任务中配置多个Schema下的多个数据库表,实现统一的全量或 增量采集能力。
● 组合任务在运行过程中支持添加表,选择重启后可对新表执行全量采集或者增量 采集。
● 源端数据源:
– 大文本类型和二进制类型的字段不支持同步。
– 表名为小写的数据表不支持同步。
– 无主键的数据表不支持同步。
如果表中数据较少,建议通过每天采集一次全量数据的方式进行采集,目前 Postgresql类型表支持写入前清空数据。对于从Oracle数据库采集数据,但表 中没有主键的情况,可以利用Oracle内部的RowId作为主键,RowId一般是使 用数字、字母生成18位长度的字符串。
– 名称为数据库自身保留字的数据表或数据字段不支持同步。
– truncate方式删除的数据不支持同步,整表方式删除的数据不支持同步。
● 源端MySQL数据源:
如果MySQL数据库使用的是MGR集群模式,在接入源端数据源时,必须直接连接 主节点,不能连节route节点。
如果MySQL数据库中数据量特别巨大,在首次执行数据同步时可能会连接数据库 超时,可以通过修改MySQL数据库的超时参数interactive_timeout和
wait_timeout来规避。
操作步骤
1. 登录ROMA Connect控制台,在“实例”页面单击具体实例上的“查看控制 台”,进入实例控制台。
2. 在左侧的导航栏选择“数据集成 FDI > 任务管理”,然后单击页面的“创建组合 任务”。
3. 在创建组合任务页面中配置任务基本信息。
表4-72 任务基本信息
参数 配置说明
任务名称 任务创建后,任务名称不可修改。建议您按照一定的命名 规则规划任务名称,能帮助您快速识别和检索任务。
描述 建议按照任务的实际用途补充任务描述,方便区分不同任 务。任务描述在创建完成后可修改。
任务标签 添加任务标签,用来对任务进行分类,方便用户快速查 询。可选择已有的标签进行关联,如果没有可点击添加按 钮,添加新标签,新标签会在任务保存时被保存,再创建 任务时可直接搜索该标签。
操作类型 数据库日志操作类型,包含插入,删除、更新。例如,操 作任务选择插入和更新,那么将只获取数据库中插入和更 新的日志信息。
参数 配置说明
同步已有数据 启动组合任务时,如果有新添加到任务中的表映射,此开 关用于如下控制:
● 启用此开关,则任务会先全量同步新增表的存量数据,
全量同步结束后接着增量同步。
● 禁用此开关,则任务不会同步新增表的存量数据,只会 同步任务启动后的增量数据。
4. 配置映射关系,即源端和目标端的数据源信息。
表4-73 源端和目标端配置信息
参数 配置说明
源端 实例名称 选择当前正在使用的ROMA Connect实例。
集成应用 选择源端数据源所属的集成应用。
数据源类型 选择源端的数据源类型。
源端数据源类型仅支持MySQL、Oracle、SQL Server。
目的端 实例名称 选择当前正在使用的ROMA Connect实例,源端实 例配置后目标端自动关联,无需配置。
集成应用 选择目标端数据源所属的集成应用。
数据源类型 选择目标端的数据源类型。
目标端数据源类型仅支持Kafka、MySQL、Oracle、
PostgreSQL、SQL Server。
5. 配置源端和目标端的数据表映射关系,您可以通过自动映射或手动添加的方式配 置数据表映射关系。
说明
● 目标端数据字段长度应大于等于源端数据字段的长度,否则会导致同步后的数据丢失。
● 当前一个任务中最多支持1000个数据表的同步。
● 当目标端数据类型为“Kafka”时,目标端显示的表为虚拟表,无需编辑数据表的映射 关系,只需编辑表中的字段映射关系即可。
– 自动映射。
i. 单击“自动Mapping”,界面自动生成数据表的映射关系。
ii. 单击表映射关系后的“编辑”,可以根据需要修改数据表的映射关系。
iii. 单击表映射关系后的“查看映射”,弹出数据表的字段映射配置窗口,
可根据需要修改数据表字段的映射关系或者添加mapping映射。
目标端数据字段长度应大于等于源端数据字段的长度,否则会导致同步 后的数据丢失。
– 手动添加表映射。
i. 在表映射关系栏中单击“手动添加表映射”,手动添加数据表的映射关 系。
ii. 在映射关系中选择“源端表名”和“目标端表名”。
若数据库中的数据表较多,您可以通过添加过滤条件来筛选源端和目标 端的数据表。
单击过滤条件输入框,选择“目标端表过滤条件”或“源端表过滤条 件”,输入要筛选的数据表,然后单击“ ”添加过滤条件。
○ 对于Oracle数据库,填写格式:Schema名.数据表名;对于其他关 系型数据库,填写格式:数据库名.数据表名。
○ %表示任意字符串,例如数据表“roma%”表示所有以roma开头的 数据表。
○ 输入的过滤条件对大小写敏感。
○ 可同时添加一个目标端表过滤条件和一个源端表过滤条件。
iii. 单击表映射关系后的“查看映射”,弹出数据表的字段映射配置窗口。
用户可根据实际情况单击“编辑”修改已有的字段及字段映射关系。
用户也可单击“添加mapping映射”添加要同步的字段及字段映射关 系,添加mapping映射配置项说明如下:
○ 目标字段名:选择目标表中对应的字段名。例如ID。
○ 源端字段名/常量:选择源端表对应的字段名/常量,例如CODE。
○ 前缀:配置同步字段的前缀内容。
○ 后缀:配置同步字段的后缀内容。
配置前缀和后缀示例,例如字段内容为“test”,前缀为tab1,后缀为 1,那么同步后字段为“tab1test1”。
图4-38 配置字段映射关系
6. 配置异常数据存储。
说明
仅当目标端数据类型为MySQL、Oracle、PostgreSQL、SQL Server时可配置,在配置异常 数据存储前,需要提前完成OBS数据源的接入配置,具体请参见接入OBS数据源。
在每次任务执行过程中,如果源端的某些数据符合集成条件,但因为网络抖动或 其他异常等原因,无法顺利集成到目标端数据源,则ROMA Connect可以将这些 数据以文本文件的形式存储在OBS中。
表4-74 异常数据存储信息
参数 配置说明
源数据类型 当前仅支持选择“OBS”。
应用 选择对应的应用。
数据源名称 选择已配置的OBS数据源。
Path 填写异常数据要存储到OBS数据源的对象名。Path的值不 能以斜杠(/)结尾。
7. 配置完成后,单击“保存”,完成组合任务的创建。
说明
在组合任务启动后,若出现以下场景,可以在任务列表中单击组合任务后的“更多 > 重置 同步进度”,根据实际情况选择重置的日期和时间,重置同步进度后,任务会重新进行数 据的同步,然后再实时检测增量数据并同步。
● 需要组合任务支持源端新增数据表和数据字段的同步。
● 源端CDC归档日志被清理导致组合任务同步失败。
● MySQL由于未采用GTID模式,发生了主备切换,导致组合任务同步失败。
仅当“任务状态”为“停止”时,才能进行重置同步进度操作。
4.5 启停数据集成任务
概述
数据集成任务创建后,“任务状态”为“停止”状态,此时任务不会执行,需先启动 任务。
● 定时任务启动后,ROMA Connect按照任务计划进行数据集成。首次执行时,会 把所有符合条件的源端数据集成到目标端,后续根据任务配置,集成符合条件的 全量数据或只集成增量数据。
● 实时任务启动后,ROMA Connect会不断检测源端数据变更。首次执行时,会把 所有符合条件的源端数据集成到目标端,后续若检测到新增数据,则将其集成到 目标端。
说明
● 若两个数据集成任务分别使用了不同版本的MRS数据源(包含MRS Hive、MRS HDFS和 MRS HBase),且该MRS数据源均开启了Kerberos认证,则这两个数据集成任务不能同时运 行,否则会导致集成任务运行失败。
● 任务列表中的“开始调度时间”为已创建且未启动的定时任务调度计划的开始生效时间。
已启动的任务,如果需要进行其他操作,例如修改等,需要先停止任务才可进行相关 操作。