更新时间:2023-07-26 GMT+08:00

创建组合任务

概述

FDI支持创建组合任务,组合任务适用于需要持续同步实时数据的场景。实现一个源端多个数据表到一个目标端多个数据表的实时同步及增量同步,提高了数据的集成同步效率。

组合任务支持数据表之间字段(列)级别的灵活映射,例如源端一个数据表中的多个字段可分别映射到目标端的不同数据表中,或者源端多个数据表中的字段可以映射到目标端的一个数据表中。

前提条件

  • 已完成源端数据源和目标端数据源的接入,具体操作请参考接入数据源

    在源端数据源接入配置中,“数据库名”的大小写应与实际数据库名保持一致,否则会导致数据同步失败。

  • 源端数据源已开启CDC功能,根据不同的数据源类型和CDC实现模式,具体操作请参考:
  • 源端数据源中CDC归档日志的保留时间需要大于集成任务解析的日志时间,否则会造成集成任务找不到归档日志而导致增量同步失败。因此,数据集成任务停止运行的时间不宜过长。建议最少保留2天以上的归档日志。
  • 在首次执行数据同步期间,建议不要对源端数据库做DDL操作。
  • 如果创建组合任务个数过多,对数据库服务器、FDI插件进程均会产生资源消耗,所以建议对一个数据库,不要创建过多组合任务。
  • 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. 在创建组合任务页面中配置任务基本信息。
    表1 任务基本信息

    参数

    配置说明

    任务名称

    任务创建后,任务名称不可修改。建议您按照一定的命名规则规划任务名称,能帮助您快速识别和检索任务。

    描述

    建议按照任务的实际用途补充任务描述,方便区分不同任务。任务描述在创建完成后可修改。

    任务标签

    添加任务标签,用来对任务进行分类,方便用户快速查询。可选择已有的标签进行关联,如果没有可单击添加按钮,添加新标签,新标签会在任务保存时被保存,再创建任务时可直接搜索该标签。

    操作类型

    数据库日志操作类型,包含插入,删除、更新。例如,操作任务选择插入和更新,那么将只获取数据库中插入和更新的日志信息。

  4. 配置映射关系,即源端和目标端的数据源信息。
    表2 源端和目标端配置信息

    参数

    配置说明

    源端

    源端实例名称

    选择当前正在使用的ROMA Connect实例。

    源端集成应用

    选择源端数据源所属的集成应用。

    源数据类型

    选择源端数据类型。

    源端数据源类型仅支持MySQL、TaurusDB、Oracle、SQL Server。

    数据源名称

    选择源端数据源,数据源需要提前创建。

    Server Id

    仅当源端“数据源类型”选择“MySQL”时需要填写。

    可自定义,需为大于1的整数,且必须与配置MySQL CDC时设置的server-id值及其他组合任务中的Server Id不一样。

    目的端

    目标端实例名称

    选择当前正在使用的ROMA Connect实例,源端实例配置后目标端自动关联,无需配置。

    目标端集成应用

    选择目标端数据源所属的集成应用。

    源数据类型

    选择目标端的数据类型。

    目标端数据源类型仅支持HANA、Kafka、MySQL、TaurusDB、Oracle、PostgreSQL、SQL Server。

    数据源名称

    选择目标端数据源,数据源需要提前创建。

    Topic名称

    仅当目标端“数据源类型”选择“Kafka”时需要填写。

    选择数据要集成到目标端Kafka的具体Topic,消息数据将存储在Topic中。

  5. 配置源端和目标端的数据表映射关系,您可以通过自动映射或手动添加的方式配置数据表映射关系。
    • 目标端数据字段长度应大于等于源端数据字段的长度,否则会导致同步后的数据丢失。
    • 当前一个任务中最多支持1000个数据表的同步。
    • 当目标端数据类型为“Kafka”时,目标端显示的表为虚拟表,无需编辑数据表的映射关系,只需编辑表中的字段映射关系即可。
    • 自动映射。
      1. 单击“自动映射”,界面自动生成数据表的映射关系。
      2. 单击映射关系后的“编辑”,可以根据需要修改数据表的映射关系。
      3. 单击映射关系后的“映射”,弹出数据表的字段映射配置窗口,可根据需要修改数据表字段的映射关系或者添加mapping映射。

        目标端数据字段长度应大于等于源端数据字段的长度,否则会导致同步后的数据丢失。

    • 手动添加映射。
      1. 单击“添加”,手动添加数据表的映射关系。
        图1 手动添加映射
      2. 在映射关系中选择“目标端表名”和“源端表名”。

        若数据库中的数据表较多,您可以通过添加过滤条件来筛选源端和目标端的数据表。

        单击过滤条件输入框,选择“目标端表过滤条件”或“源端表过滤条件”,输入要筛选的数据表,然后单击“”添加过滤条件。

        • 对于Oracle数据库,填写格式:Schema名.数据表名;对于其他关系型数据库,填写格式:数据库名.数据表名
        • %表示任意字符串,例如数据表“roma%”表示所有以roma开头的数据表。
        • 输入的过滤条件对大小写敏感。
        • 可同时添加一个目标端表过滤条件和一个源端表过滤条件。
      1. 单击映射关系后的“映射”,弹出数据表的字段映射配置窗口。用户可根据实际情况单击“编辑”修改已有的字段及字段映射关系。

        用户也可单击“添加mapping映射”添加要同步的字段及字段映射关系,添加mapping映射配置项说明如下:

        • 目标字段名:选择目标表中对应的字段名。例如ID。
        • 源端字段名/常量:选择源端表对应的字段名/常量,例如CODE。
        • 前缀:配置同步字段的前缀内容。
        • 后缀:配置同步字段的后缀内容。

        配置前缀和后缀示例,例如字段内容为“test”,前缀为tab1,后缀为1,那么同步后字段为“tab1test1”。

        图2 配置字段映射关系
  6. 配置异常数据存储。

    仅当目标端数据类型为MySQL、TaurusDB、Oracle、PostgreSQL、SQL Server时可配置,在配置异常数据存储前,需要提前完成OBS数据源的接入配置,具体请参见接入OBS数据源

    在每次任务执行过程中,如果源端的某些数据符合集成条件,但因为网络抖动或其他异常等原因,无法顺利集成到目标端数据源,则ROMA Connect可以将这些数据以文本文件的形式存储在OBS中。
    表3 异常数据存储信息

    参数

    配置说明

    源数据类型

    当前仅支持选择“OBS”。

    应用

    选择对应的应用。

    数据源名称

    选择已配置的OBS数据源。

    Path

    填写异常数据要存储到OBS数据源的对象名。Path的值不能以斜杠(/)结尾。

  7. 配置完成后,单击“保存”,完成组合任务的创建。

    在组合任务启动后,若出现以下场景,可以在任务列表中单击组合任务后的“更多 > 重置同步进度”,根据实际情况选择重置的日期和时间,重置同步进度后,任务会重新进行数据的同步,然后再实时检测增量数据并同步。

    • 需要组合任务支持源端新增数据表和数据字段的同步。
    • 源端CDC归档日志被清理导致组合任务同步失败。
    • MySQL由于未采用GTID模式,发生了主备切换,导致组合任务同步失败。

    仅当“任务状态”为“停止”时,才能进行重置同步进度操作。