通过向导模式配置离线同步任务

数据集成提供向导式的开发引导,您无需编写任何代码,通过在界面勾选数据来源与去向,并结合DataWorks调度参数,实现将源端单表或分库分表的全量或增量数据周期性同步至目标数据表。本文为您介绍向导模式配置离线同步任务的常规配置,各数据源配置存在一定差异,请以具体数据源配置文档为准。

背景信息

数据集成离线同步,为您提供数据读取(Reader)和写入插件(Writer)实现数据的读取与写入,您可通过向导模式和脚本模式配置离线同步任务,实现源端单表同步至目标端单表、源端分库分表同步至目标端单表两类数据同步场景。详情请参见离线同步能力说明

使用说明

  • 部分数据源不支持使用向导模式配置离线同步任务,您可以选择数据源后,根据界面提示,若当前数据源不支持向导模式编辑任务,则单击工具栏中的image.png图标切换至脚本模式继续配置任务。详情请参见通过脚本模式配置离线同步任务

    image.png

  • 向导模式的学习成本低,但向导模式无法支持部分高级功能。如果您需要实现更精细化的配置管理,您可以单击工具栏中的转换脚本图标,切换到脚本模式配置离线同步任务。

前提条件

  1. 已完成数据源配置。在设置数据集成同步任务之前,请确保已在DataWorks的数据源管理中配置好所需的源数据库和目标数据库。数据源配置详情请参见数据源列表

    说明
  2. 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组

  3. 独享数据集成资源组与数据源网络已打通。详情请参见:网络连通方案

进入数据开发界面

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

开发流程

  1. 步骤一:新建离线同步节点

  2. 步骤二:配置同步网络链接

  3. 步骤三:配置数据来源与去向

  4. 步骤四:配置字段映射关系

  5. 步骤五:配置通道

  6. 步骤六:配置调度属性

  7. 步骤七:提交并发布任务

步骤一:新建离线同步节点

  1. 创建业务流程。详情请参见:创建业务流程

  2. 创建离线同步节点。

    你可以通过以下两种方式创建离线同步节点:

    • 方式一:展开业务流程,右键单击数据集成 > 新建节点 > 离线同步

    • 方式二:双击业务流程名称,将数据集成目录下的离线同步节点直接拖拽至右侧业务流程编辑面板。

  3. 根据界面提示创建离线同步节点。

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

选择离线同步任务的数据来源和数据去向,以及用于执行同步任务的资源组,并测试连通性。

步骤三:配置数据来源与去向

在选择数据源区域,配置任务读取与写入的表,及同步的数据范围。

重要

各插件配置存在一定差异,以下内容仅以常见配置为例进行说明,各插件是否支持相关配置以及配置的具体实现,请以具体插件配置文档为准。详情请参见支持的数据源与读写插件

  • 读取端

    操作

    说明

    配置同步范围

    • 当您在数据过滤文本框配置过滤条件时,执行同步任务时将只同步满足过滤条件的数据。同时,过滤条件可以结合调度参数使用,实现过滤条件随任务调度时间的动态变化,进而实现增量数据的同步。不同插件增量同步配置与实现方式不同,关于增量数据同步配置详情请参见:场景:配置增量数据离线同步任务

      说明
      • 在数据过滤和目标表相关配置中定义的变量,当单击下一步,配置调度属性时,您可以为此处定义的变量赋值。实现增量或全量数据写入目标表对应时间分区等功能,关于调度参数的使用详情请参见:调度参数支持的格式

      • 增量同步过滤条件的语法与数据库语法基本一致,同步时,离线同步将拼接为完整SQL向对应数据源抽取数据。

    • 当不配置数据过滤条件时,默认同步该表全量数据。

    关系型数据库配置切分键

    定义将源端待同步数据基于源端哪个字段进行切分,同步任务执行时将根据该字段切分为多个task,以便并发、分批读取数据。

    说明
    • 推荐splitPk用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点。

    • 目前splitPk仅支持整型数据切分,不支持字符串、浮点和日期等其他类型 。如果您指定其他非支持类型,忽略splitPk功能,使用单通道进行同步。

    • 如果不填写splitPk,包括不提供splitPk或者splitPk值为空,数据同步视作使用单通道同步该表数据 。

    • 并非所有插件均支持指定切分键配置任务切分逻辑,以上仅为示例,请以具体插件说明为准。详情请参见支持的数据源与读写插件

  • 写入端

    操作

    说明

    配置同步前后执行语句

    部分数据源支持在同步前(数据写入目标端数据源前)与同步完成后(数据写入目标端后),在目标端执行相关数据库SQL。

    示例:MySQL Writer支持配置preSql与postSql,即在数据写入MySQL前或后,可以执行一些MySQL命令。例如在MySQL Writer端导入前准备语句(preSql)配置项中配置MySQL清空表命令truncate table tablename,实现同步前(写入MySQL数据前)先清空表中的旧数据的操作。

    定义冲突时的写入模式

    定义路径或主键等场景冲突时以何种方式写入目标端。该配置根据数据源本身特性及writer插件支持情况,此处配置不同。您需要参考具体writer插件进行配置。

步骤四:配置字段映射关系

选择数据来源和数据去向后,需要指定读取端和写入端列的映射关系,配置字段映射关系后,任务将根据字段映射关系,将源端字段写入目标端对应类型的字段中。

同步过程中可能存在源端与目标端字段类型不匹配,产生脏数据,导致数据无法正常写入目标端,同步过程中关于脏数据的容忍条数,请参考下一步通道控制进行配置。

说明
  • 当源端某字段未与目标端字段进行映射时,源端该字段数据将不会同步到目标端。

  • 若自动映射与您所期望的映射不同时,需您手动调整映射。

支持同名映射、同行映射。在使用过程中,您还可以:

  • 为目标字段赋值:通过添加一行的方式,为目标表添加常量、调度参数、内置变量。例如,'123','${调度参数}', '#{内置变量}#' 。

    说明

    当单击下一步,配置调度时,可以为调度参数赋值。关于调度参数的使用详情请参见:调度参数支持的格式

  • 您可以通过手动添加内置变量,映射到目标字段,将内置变量输出到下游。

    各个插件可用内置变量如下:

    内置变量

    变量说明

    支持插件

    '#{DATASOURCE_NAME_SRC}#'

    来源数据源名称

    MySQL Reader

    MySQL(分库分表) Reader

    PolarDB Reader

    PolarDB(分库分表) Reader

    PostgreSQL Reader

    '#{DB_NAME_SRC}#'

    来源表所在的数据库名称

    MySQL Reader

    MySQL(分库分表) Reader

    PolarDB Reader

    PolarDB(分库分表) Reader

    PostgreSQL Reader

    '#{SCHEMA_NAME_SRC}#'

    来源表所在的模式名称

    PolarDB Reader

    PolarDB(分库分表) Reader

    PostgreSQL Reader

    '#{TABLE_NAME_SRC}#'

    来源表名称

    MySQL Reader

    MySQL(分库分表) Reader

    PolarDB Reader

    PolarDB(分库分表) Reader

    PostgreSQL Reader

  • 编辑源端字段:您可以通过单击类型右侧的编辑图标实现如下功能:

    • 使用源端数据库支持的函数,对字段进行函数处理,例如,通过Max(id)控制仅同步最大值。

    • 在字段映射未拉取全部字段的情况下,手动编辑源端字段。

    说明

    MaxCompute Reader暂不支持使用函数。

步骤五:配置通道

您可通过通道配置,控制数据同步过程相关属性。

参数

描述

任务期望最大并发数

用于定义当前任务从源端并行读取或并行写入目标端的最大线程数。

说明
  • 由于资源规格等原因,实际执行时并发数可能小于等于此处配置的并发数,调试资源组收费将按照实际执行的并发数收费。详情请参见:性能指标

  • 离线同步任务将通过调度资源组下发至数据集成任务执行资源组上执行,任务调度收费与离线同步任务个数有关,和任务配置的并发无关。关于离线同步任务下发机制,详情请参见:DataWorks资源组概述

同步速率

用于控制同步速率。

  • 限流:您可以通过限流控制同步速率,以保护读取端数据库,避免抽取速度过大,给源库造成太大的压力。限速最小配置为1MB/s。

  • 不限流:在不限流的情况下,任务将在所配置的并发数的限制基础上,提供现有硬件环境下最大的传输性能。

说明

流量度量值是数据集成本身的度量值,不代表实际网卡流量。通常,网卡流量是通道流量膨胀的1至2倍,实际流量膨胀取决于具体的数据存储系统传输序列化情况。

错误记录数控制(脏数据控制)

用于定义脏数据阈值,及对任务的影响。

重要

当脏数据过多时,会影响同步任务的整体同步速度。

  • 不配置时默认允许脏数据,即任务产生脏数据时不影响任务执行。

  • 配置为0,表示不允许脏数据存在。如果同步过程中产生脏数据,任务将失败退出。

  • 允许脏数据并设置其阈值时:

    • 若产生的脏数据在阈值范围内,同步任务将忽略脏数据(即不会写入目标端),并正常执行。

    • 若产生的脏数据超出阈值范围,同步任务将失败退出。

说明

脏数据认定标准:脏数据是对业务没有意义,格式非法或者同步过程中出现问题的数据。单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。

例如,源端是VARCHAR类型的数据写到INT类型的目标列中,则会因为转换不合理导致脏数据不会成功写入目的端。您可以在同步任务配置时,控制同步过程中是否允许脏数据产生,并且支持控制脏数据条数,即当脏数据超过指定条数时,任务失败退出。

分布式处理能力

用于控制是否开启分布式模式来执行当前任务。

  • 开启:分布式执行模式可以将您的任务切片分散到多台执行节点上并发执行,进而做到同步速度随执行集群规模做水平扩展,突破单机执行瓶颈。

  • 未开启:配置的并发数据仅仅是单机上的进程并发,无法利用多机联合计算。

如果您对于同步性能有比较高的诉求可以使用分布式模式。 另外分布式模式也可以使用机器的碎片资源,对资源利用率友好。

重要
  • 如果使用独享数据集成资源组,且只有1台机器,不建议使用分布式,因为无法利用多机资源能力。

  • 如果单机已经满足速度需要,建议优选单机模式,简化任务执行模式。

  • 并发数大于等于8个才能开启分布式处理能力。

  • 开启分布式处理开关会占用更多资源,如运行时报错内存溢出(OOM),可尝试关闭此开关。

说明

任务整体同步速度除受到上述配置影响外,还受源端数据源性能,同步网络环境等多方面影响,关于同步速率说明与调优,详情请参见离线同步提速或限速

步骤六:配置调度属性

周期性调度的离线同步任务需要配置任务自动调度时的相关属性,此步骤为您介绍如何配置调度相关属性。您可以进入离线同步节点的编辑页面,单击右侧的调度配置,下文将为您介绍如何在同步任务中配置节点调度属性。调度参数使用说明请参见数据集成使用调度参数的相关说明

  • 配置节点调度属性:用于为任务配置阶段使用的变量赋值调度参数,您在上述配置中定义的变量均可以在此处进行赋值,支持赋值常量与变量。

  • 时间属性配置说明:用于定义任务在生产环境的周期调度方式。您可以在调度配置的时间属性区域,配置任务生成周期实例的方式、调度类型、调度周期等属性。

  • 配置资源属性:用于定义调度场景下,将当前任务下发至数据集成任务执行资源时所使用的调度资源组,您可以在调度配置的资源属性区域,选择任务调度运行时需要使用的资源组。

    说明

    数据集成离线任务通过调度资源组下发至对应的数据集成任务执行资源组上运行,会产生调度相关费用,关于任务下发机制说明,请参见DataWorks资源组概述

步骤七:提交并发布任务

若任务需要进行周期性调度运行,您需要将任务发布至生产环境。关于任务发布,详情请参见:发布任务

后续步骤

任务发布至生产环境后,您可进入生产环境运维中心查看该调度任务,关于离线同步任务的运行与管理、状态监控、资源组运维等操作详情请参见:离线同步任务运维

相关文档