完成数据源、网络、资源的准备配置后,您可以根据同步场景选择同步解决方案,创建并执行同步任务,将源端数据同步至目标端。本文为您介绍同步解决方案的通用配置流程,不同的同步方案配置流程可能存在差异,对应方案配置详情请以界面为准。

前提条件

  1. 已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。同步解决方案支持的数据源及其配置详情请参见支持的数据源与读写能力
    说明 数据源相关能力介绍详情请参见:数据源概述
  2. 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组
  3. 已完成数据集成资源组与数据源的网络连通。详情请参见:配置资源组与网络连通
  4. 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述

背景信息

数据集成基于源端数据库与目标端数据库类型为您提供丰富的数据同步解决方案,同步类型包括:整库离线同步(一次性全量同步、周期性全量同步、离线全增量同步、一次性增量同步、周期性增量同步)、一键实时同步(一次性全量同步,实时增量同步)。不同源端与目标端数据库支持的同步方案不同,具体支持的方案详情请参考产品界面。更多同步解决方案产品能力介绍,详情请参见:同步解决方案能力说明

使用限制

  • 跨时区同步限制:

    同步解决方案暂不支持跨时区同步数据。如果同步任务中读取和写入的数据源与使用的DataWorks资源组不在同一个时区,将会导致时间类型字段同步错误。

  • 同步库个数限制:
    • 整库离线同步仅支持同步数据源指定的默认库。
    • 一键实时同步支持同步对应RDS实例下数据源配置账号有权限的所有数据库。

进入同步解决方案

同步解决方案的创建入口在数据集成模块,您需要前往数据集成模块页面进行创建。

  1. 登录DataWorks控制台
  2. 在左侧导航栏,单击工作空间列表
  3. 选择工作空间所在地域后,单击相应工作空间后的数据集成

操作流程

  1. 步骤一:创建同步解决方案任务
  2. 步骤二:选择同步解决方案
  3. 步骤三:配置同步网络链接
  4. 步骤四:设置同步来源与规则
  5. 步骤五:设置目标表
  6. 步骤六:设置写入规则
  7. 步骤七:设置任务运行资源
  8. 步骤八:执行同步任务

步骤一:创建同步解决方案任务

您可以通过以下两种方式创建同步解决方案任务:
  • 方式一:进入数据集成 > 首页页面,单击创建我的数据同步,新建同步解决方案任务。
  • 方式二:进入数据集成 > 同步任务页面,单击新建任务,新建同步解决方案任务。

步骤二:选择同步解决方案

您可以根据业务需要选择要同步的来源和去向数据源类型。选择后,数据集成基于源端数据库与目标端数据库类型为您展示目前支持的同步解决方案,您可以根据业务需要进行选择。
说明 支持的数据源及同步方案请参见:支持的数据源及同步方案

步骤三:配置同步网络链接

在此步骤中,您需要选择要同步的来源与去向数据源,以及用于执行同步任务的资源组。并测试资源组与数据源的网络连通。
说明 若还未创建数据源,请单击界面的新建数据源按钮,新建数据源。详情请参见:数据源概述

步骤四:设置同步来源与规则

在此步骤中,您可以选择源端数据源中需要同步的库和表,同步解决方案默认将源端数据库、数据表写入目标端同名schema或同名表中,如果目标端不存在该schema或表,将会自动创建。同时,您可以通过设置表(库)名的映射规则定义最终写入目标端的schema或表名称。实现将多张表数据写入到同一个表中,或统一将源端某固定前缀的库名或表名在写入目标库或表时更新为其他前缀。
  • 源表名和目标表名转换规则:源端表名支持通过正则表达式转换为目标端最终写入的表名。
    • 示例1:将源端doc_前缀的表数据,写入前缀为pre_的目标表中。改名
    • 示例2:将多张表数据写入到一张目标表。
      将源端名称为 "table_01","table_02","table_03" 的表同步至一张名为 "my_table" 的表中。配置正则表名转换规则为::table.*,目标:my_table。示例
  • 目标表名规则:支持您使用内置的变量组合生成目标表名,同时,对转换后的目标表名支持添加前缀和后缀。可使用的内置变量有:
    • ${db_table_name_src_transed}:“源表名和目标表名转换规则”中的转换完成之后的表名。
    • ${db_name_src_transed}:“源库名和目标Schema名转换规则”中的转换完成之后的目标Schema名。
    • ${ds_name_src}:源数据源名。

    示例:对上一步源表名和目标表名转换规则转换后的表名做进一步字符串拼接处理,使用${db_table_name_src_transed}代表上一步的处理结果“my_table”,再为该内置变量增加前缀和后缀,例如,pre_${db_table_name_src_transed}_post,最终就映射到了名为“pre_my_table_post”的目标表。

  • 源库名和目标Schema名转换规则:源端schema名支持通过正则表达式转换为目标端最终写入的schema名。
    示例:将源端doc_前缀的库名替换为pre_前缀。schema

步骤五:设置目标表

在此步骤中,您可以定义写入目标表的相关属性,例如,写入模式、是否写入分区表以及分区的字段名称、选择写入目标端已有表还是新建表、以及是否需要编辑字段并为目标字段赋值等。
说明
  • 此步骤中,单击刷新源端与目标端表映射按钮后,将会根据上一步骤中配置的表规则来映射源端表与目标端表的写入关系。
  • 此处的配置项根据目标端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。详情请参见:支持的数据源及同步方案

步骤六:设置写入规则

此步骤根据选择的同步方案类型不同,需要进行的配置存在一定差异:
  • DDL或DML消息处理规则(一键实时同步任务):

    来源数据源会包含许多DDL或DML操作,为保障数据符合预期,您可以根据写入的目标端数据源类型配置DDL或DML消息处理策略。DDL消息处理策略详情请参见:DDL消息处理规则DML消息处理策略

  • 同步规则设置(整库离线同步):
    当使用整库离线同步时,需要定义同步策略。例如,增量同步的过滤条件设置、同步任务的调度周期设置等。
    • 增量同步:您可通过where语句对待同步的数据表进行过滤,且只需在增量条件框中填写where子句,无需写where关键字。同时,在写where子句时,您可以使用系统内置变量,例如使用${bdp.system.bizdate}指代业务日期、使用${bdp.system.cyctime}指代定时时间等。
    • 周期设置:由于需要进行周期性调度,所以需要定义周期性调度任务时的相关属性,包括调度周期生效日期暂停调度等。当前方案的调度配置与DataWorks中节点的调度配置一致,参数详情可参见时间属性配置说明

步骤七:设置任务运行资源

在此步骤中,您可以配置任务名称及任务执行所使用的资源组,同时,数据集成提供数据库最大连接数、并发数等配置的默认值,如果您需要对任务做精细化配置,您可通过高级配置进行修改。
  • 如果您选择一键实时同步方案,该方案将分别创建用于同步全量数据的离线同步任务,和用于同步增量数据的实时同步任务。您需要在运行资源设置界面分别配置离线同步任务的及实时同步任务的相关属性。包括实时同步子任务和离线同步子任务的任务名称、实时增量同步及离线全量同步使用的独享数据集成资源组、离线同步任务所使用的调度资源组。
  • 如果您选择整库离线同步方案,您需要配置离线任务名称及使用的调度资源组与数据集成任务执行资源组。
说明
  • DataWorks的离线同步任务通过调度资源组将其下发到数据集成任务执行资源组上执行,所以离线同步任务除了涉及数据集成任务执行资源组外,还会占用调度资源组资源。如果使用了独享调度资源组,将会产生调度实例费用。您可通过任务下发机制对该机制进行了解。
  • 离线和实时同步任务推荐使用不同的资源组,以便任务分开执行。如果选择同一个资源组,任务混跑会带来资源抢占、运行态互相影响等问题。例如,CPU、内存、网络等互相影响,可能会导致离线任务变慢或实时任务延迟等问题,甚至在资源不足的极端情况下,可能会出现任务被OOM KILLER杀掉等问题。

步骤八:执行同步任务

您可以执行任务并查看任务详细执行过程。

  1. 进入数据集成 > 同步任务界面,找到已创建的同步方案。
  2. 单击操作列的启动按钮,启动同步的运行。
  3. 单击操作列的执行详情,查看任务的详细执行过程。

后续步骤

完成任务配置后,您可以对已创建的任务进行管理、执行加减表操作,或对任务配置监控报警,并查看任务运行的关键指标等。详情请参见:同步解决方案任务运维