本文为您介绍如何通过数据集成向导模式配置周期性调度的离线同步任务。
前提条件
- 已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。离线同步支持的数据源及其配置详情请参见支持的数据源与读写插件。说明 数据源相关能力介绍详情请参见:数据源概述。
- 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组。
- 独享数据集成资源组与数据源网络已打通。详情请参见:配置资源组与网络连通。
进入数据开发界面
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。进入数据开发界面。
开发流程
步骤一:新建离线同步节点
- 创建业务流程。详情请参见:创建业务流程。
- 创建离线同步节点。你可以通过以下两种方式创建离线同步节点:
- 方式一:展开业务流程,右键单击 。
- 方式二:双击业务流程名称,将数据集成目录下的离线同步节点直接拖拽至右侧业务流程编辑面板。
- 根据界面提示创建离线同步节点。
步骤二:配置同步网络链接
选择离线同步任务的数据来源和数据去向,以及用于执行同步任务的资源组,并测试连通性。
- 还支持同步源端分库分表数据至目标单表,详情请参见:场景:配置分库分表离线同步任务。
- 若数据源与资源组网络不通,请参考界面提示或文档进行网络连通配置。详情请参见:配置资源组与网络连通。
步骤三:配置数据来源与去向
在选择数据源区域,配置任务读取与写入的表,及同步的数据范围。重要 各插件配置存在一定差异,以下内容仅以常见配置为例进行说明,各插件是否支持相关配置以及配置的具体实现,请以具体插件配置文档为准。详情请参见支持的数据源与读写插件。
- 读取端
操作 说明 配置同步范围 - 当您在数据过滤文本框配置过滤条件时,执行同步任务时将只同步满足过滤条件的数据。同时,过滤条件可以结合调度参数使用,实现过滤条件随任务调度时间的动态变化,进而实现增量数据的同步。不同插件增量同步配置与实现方式不同,关于增量数据同步配置详情请参见:场景:配置增量数据离线同步任务。说明
- 在数据过滤和目标表相关配置中定义的变量,当单击下一步,配置调度属性时,您可以为此处定义的变量赋值。实现增量或全量数据写入目标表对应时间分区等功能,关于调度参数的使用详情请参见:调度参数支持的格式。
- 增量同步过滤条件的语法与数据库语法基本一致,同步时,离线同步将拼接为完整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’,'${变量名}'。说明 在此处定义的变量,当单击下一步,配置调度时,可以为变量赋值。关于调度参数的使用详情请参见:调度参数支持的格式。
- 编辑源端字段:您可以通过单击类型右侧的
图标实现如下功能:
- 使用源端数据库支持的函数,对字段进行函数处理,例如,通过Max(id)控制仅同步最大值。
- 在字段映射未拉取全部字段的情况下,手动编辑源端字段。
说明 MaxCompute Reader暂不支持使用函数。
步骤五:配置通道
您可通过通道配置,控制数据同步过程相关属性。参数 | 描述 |
---|---|
任务期望最大并发数 | 用于定义当前任务从源端并行读取或并行写入目标端的最大线程数。 |
同步速率 | 用于控制同步速率。
说明 流量度量值是数据集成本身的度量值,不代表实际网卡流量。通常,网卡流量是通道流量膨胀的1至2倍,实际流量膨胀取决于具体的数据存储系统传输序列化情况。 |
错误记录数控制(脏数据控制) | 用于定义脏数据阈值,及对任务的影响。 重要 当脏数据过多时,会影响同步任务的整体同步速度。
说明 脏数据认定标准:脏数据是对业务没有意义,格式非法或者同步过程中出现问题的数据。单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。 例如,源端是VARCHAR类型的数据写到INT类型的目标列中,则会因为转换不合理导致脏数据不会成功写入目的端。您可以在同步任务配置时,控制同步过程中是否允许脏数据产生,并且支持控制脏数据条数,即当脏数据超过指定条数时,任务失败退出。 |
分布式处理能力 | 用于控制是否开启分布式模式来执行当前任务。
重要
|
说明 任务整体同步速度除受到上述配置影响外,还受源端数据源性能,同步网络环境等多方面影响,关于同步速率说明与调优,详情请参见离线同步任务调优。
步骤六:配置调度属性
周期性调度的离线同步任务需要配置任务自动调度时的相关属性,此步骤为您介绍如何配置调度相关属性。您可以进入离线同步节点的编辑页面,单击右侧的调度配置,下文将为您介绍如何在同步任务中配置节点调度属性。调度参数使用说明请参见数据集成使用调度参数的相关说明。
步骤七:提交并发布任务
若任务需要进行周期性调度运行,您需要将任务发布至生产环境。关于任务发布,详情请参见:发布任务。