配置离线处理集成作业
数据集成支持创建离线作业,通过在界面勾选源端数据和目的端数据,并结合为其配置的参数,实现将源端单表、分库分表、整库的全量或增量数据周期性同步至目标数据表。
本文为您介绍离线同步任务的常规配置,各数据源配置存在一定差异,请以配置作业源端参数及配置作业目的端参数为准。
约束限制
同步任务源端和目标端字段类型需要注意精度,如果目标端字段类型最大值小于源端最大值(或最小值大于源端最小值,或精度低于源端精度),可能会导致写入失败或精度被截断的风险。
前提条件
- 已完成数据连接的创建,且创建的连接必须已勾选数据集成选项,详情请参见创建DataArts Studio数据连接 。
- 存在正在运行的CDM集群,详情请参见创建CDM集群。
DataArts Studio实例中已经包含一个CDM集群(试用版除外),如果该集群已经满足需求,您无需再购买数据集成增量包,可以跳过这部分内容。如果您需要再创建新的CDM集群,请参考购买批量数据迁移增量包,完成购买数据集成增量包的操作。
- CDM集群与待同步数据源可以正常通信。
- 当CDM集群与其他云服务所在的区域、VPC、子网、安全组一致时,可保证CDM集群与其他云服务内网互通,无需专门打通网络。
- 当CDM集群与其他云服务所在的区域和VPC一致、但子网或安全组不一致时,需配置路由规则及安全组规则以打通网络。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。
- 当CDM集群与其他云服务所在的区域一致、但VPC不一致时,可以通过对等连接打通网络。配置对等连接请参见如何配置对等连接章节。
注:如果配置了VPC对等连接,可能会出现对端VPC子网与CDM管理网重叠,从而无法访问对端VPC中数据源的情况。推荐使用公网做跨VPC数据迁移,或联系管理员在CDM后台为VPC对等连接添加特定路由。
- 当CDM集群与其他云服务所在的区域不一致时,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。
- 另外,如果创建了企业项目,则企业项目也会影响CDM集群与其他云服务的网络互通,只有企业项目一致的云服务才能打通网络。
操作步骤
- 参见新建离线处理集成作业创建一个离线处理集成作业。
- 类型配置。
图1 类型配置
- 配置数据连接类型,包含配置源端数据类型和目的端数据类型,支持的数据类型请参见支持的数据源。
- 选择集成作业类型。
- 同步类型:默认为离线,不可更改。
- 同步场景:支持单表、分库分表和整库三种同步方式,具体支持的数据源请参见支持的数据源。
- 设置网络资源配置。
- 选择已创建的源端数据连接,且创建的连接必须已勾选数据集成选项。连接不存在时可参见创建DataArts Studio数据连接创建所需连接。
需要测试数据源端和资源组之间网络是否可用,不可用时根据界面提示修改。
- 选择资源组,集群创建可参见创建CDM集群。
选多个集群时系统会随机下发任务,故需要多个集群时版本规格建议选择集群版本一致的集群,否则可能因为集群版本不一致导致作业失败。
- 选择已创建的目的端数据连接,且创建的连接必须已勾选数据集成选项。连接不存在时可参见创建DataArts Studio数据连接。
需要测试数据连接是否可用,不可用时根据界面提示修改。
- 选择已创建的源端数据连接,且创建的连接必须已勾选数据集成选项。连接不存在时可参见创建DataArts Studio数据连接创建所需连接。
- 配置源端数据参数。
各数据源及各同步场景配置存在一定差异,选择源端配置后,请参见配置作业源端参数配置作业参数。
表1 源端需要配置的作业参数 同步场景
源端需要配置参数
字段映射
单表
- 基本参数
- 高级属性
支持
分库分表
- 选择库表方式:精准匹配或正则匹配
- 高级属性
支持
整库迁移
- 添加源数据,选择需要迁移的库表
- 高级属性
不支持
- 配置目的端数据参数。
各数据源及各同步场景配置存在一定差异,选择目的端配置后,请参见配置作业目的端参数配置作业参数。
表2 目的端需要配置的作业参数 同步场景
目的端需要配置参数
字段映射
单表
- 基本参数
- 高级属性
支持
分库分表
- 基本参数
- 高级属性
支持
整库迁移
选择库匹配策略和表匹配策略
不支持
- 配置字段映射关系。
配置作业源端参数和目的端参数后,需要配置源端和目的端列的映射关系,配置字段映射关系后,任务将根据字段映射关系,将源端字段写入目标端对应类型的字段中。
- 字段映射配置:选择字段映射关系、设置字段批量映射规则。
- 字段映射关系:支持批量转换,添加字段,行移动等功能。
- 批量转换器:批量转换源字段名。
勾选需要转换的字段名,单击“批量转换器”,在弹出的转换器列表对话框中根据提示新建转换器。
批量移除字段:源端配置使用SQL语句为是时不显示该参数,勾选需要移除的字段名,单击“批量移除字段”。
已移除的字段可以在添加字段里的“添加被移除的字段”中看到。
- 添加字段:源端配置使用SQL语句为是时不显示该参数。可以为源端和目的端添加新的字段。包含添加已被移除的字段和添加新字段。
支持函数,例如mysql填写now()、curdate()、postgresql。
支持填写now()、transaction_timestamp()。
支持函数配合关键字,例如postgresql填写to_char(current_date,'yyyy-MM-dd')。
支持填写固定值,例如:123、'123',这两种填法都代表字符串:123。
支持填写变量值,例如:${workDate},workDate需要在作业变量中进行定义。
JDBC支持填写固定变量,例如:DB_NAME_SRC(原始数据库名称)、TABLE_NAME_SRC(源端表名称)、DATASOURCE_NAME_SRC(源端数据源名称)。
支持as语句,例如:'123' as test, now() as curTime。
- 行移动:源端配置使用SQL语句为是时,在设置字段映射关系阶段不支持该功能。鼠标拖住需要移动的字段所在行,可以任意移动上下位置。
- 查看转换器:(可选)CDM支持字段内容转换,如果需要可单击操作列下,进入转换器列表界面,再单击“新建转换器”。转换器使用详情请参见字段转换器配置指导。
- 查找目的端字段:CDM支持搜索查找目的端字段名并匹配字段,如果需要可单击操作列下,进入匹配目的字段对话框,通过搜索关键字或者直接单击目标进行匹配。
- 删除字段:CDM支持删除原有表的默认字段,如果需要可单击操作列下删除字段,已移除的字段可以在添加字段里的“添加被移除的字段”中看到。
- 字段映射样例:源端配置使用SQL语句为是时不显示该参数,查看源端和目的端样例数据。
- 文件类数据源(FTP/SFTP/HDFS/OBS)之间相互迁移数据,且源端“文件格式”配置为“二进制格式”(即不解析文件内容直接传输),没有字段映射这一步骤。
整库迁移没有配置字段映射关系这一步骤。
- 迁移过程中可能存在源端与目标端字段类型不匹配,产生脏数据,导致数据无法正常写入目标端,迁移过程中关于脏数据的容忍条数,请参考下一步任务属性进行配置。
- 当源端某字段未与目标端字段进行映射时,源端该字段数据将不会同步到目标端。
- 其他场景下,CDM会自动匹配源端和目的端数据表字段,需用户检查字段映射关系和时间格式是否正确,例如:源字段类型是否可以转换为目的字段类型。
- 如果字段映射关系不正确,用户可以通过拖拽字段来调整映射关系(源端配置使用SQL语句为否时支持该功能)。
- 如果在字段映射界面,CDM通过获取样值的方式无法获得所有列,则可以单击自定义新增字段,也可单击操作列下创建字段转换器,确保导入到目的端的数据完整。
- 支持通过字段映射界面的,可自定义添加常量、变量及表达式。
- 列名仅支持源端为OBS数据源,迁移CSV文件时配置“解析首行为列名”参数为“是”时显示。
- SQLServer作为目的端数据源时,不支持timestamp类型字段的写入,需修改为其他时间类型字段写入(如datatime)。
- 如果是导入到数据仓库服务(DWS),则还需在目的字段中选择分布列,建议按如下顺序选取分布列:
- 有主键可以使用主键作为分布列。
- 多个数据段联合做主键的场景,建议设置所有主键作为分布列。
- 在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。
- 批量转换器:批量转换源字段名。
- 配置任务属性。
通过任务配置,控制数据同步过程的相关属性,具体请参见表3。
- 保存作业。
作业配置完毕后,单击作业开发页面左上角“保存”按钮,保存作业的配置信息。
保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。
- 测试运行作业。
- 提交作业版本。
若任务需要进行周期性调度运行,您需要将任务发布至生产环境。关于任务发布,详情请参见:发布作业任务。
- 调度作业。
对已编排好的作业设置调度方式。关于调度作业,详情请参见:调度作业。