增量数据同步
CDM工具同样支持数据的增量同步,经过与业务方确认,考虑到可能存在业务方修改180天内历史数据的场景,因此在增量数据同步中以180天的时间范围获取数据。根据源表时间戳,获取源表内最新180天内数据存放在贴源层的增量分区表内,并通过ETL脚本将增量同步的数据进行增转全处理后存放至贴源层的全量分区表中。需要注意的是在增量同步数据前,需要进行一次初始化全量同步。增量分区表内历史数据的存放周期为7日,对应的全量分区表内历史数据的存放周期为8日,用于数据的历史回溯,且历史数据的存放周期可依据后期数据实际使用需求进行相应的调整。以“订单进程量管理详细表”为例,说明数据增量同步流程。
- 确定数据源
通过调研获取数据源以及数据字典信息,从调研结果中确认数据来源系统。
- 目标库手动建表
根据需要的表和字段,在MRS-Hive数据库中建立相应的库和表;
表及字段的命名规范为:ods_源系统简写_源系统表名_{TYPE简码},增量表的type简码为i,全量表的type简码为f,所有的表名称及字段名称小写
标准字段: ext_etl_dt (ETL时间),ext_src_sys_id(源系统标识),dt、ph(分区字段)
表的其他要求:采用ORC存储格式,并采用SNAPPY压缩
在数管平台的“数据开发”模块,选择MRS_Spark_Agent数据连接和ods_mes_bc数据库,执行对应的DDL,创建以_i结尾的增量表和以_f结尾的全量表。
- 新建CDM连接
入口路径:一体化数据基础平台控制台 > 数据集成
在“集群管理”标签页面,单击“作业管理”进入集成作业作业管理页面
图1 新建CDM连接
单击“连接管理”标签,进入新建和编辑连接的界面,这里配置CDM产品访问源库的权限,主要包括源端数据库和目的端数据库类型,地址、端口、账号、密码等。
第一步:创建源端(Oracle)的数据连接(如果已创建,则跳过)
第二步:创建目的端(MRS-Hive)的数据连接(如果已创建,则跳过)
数据库连接配置成功后测试连通性,测试成功即配置完成。
第一步:源端数据连接的连通性测试
第二步:目的端数据连接的连通性测试
- 新建CDM作业
打开“表/文件迁移”标签页,为便于作业管理,需要为作业创建分组,当前平台中已创建有MES_BC组用于存放所有来源于MES_BC数据源的数据迁移作业,MES数据源的迁移作业隶属于MES_BC作业组,单击MES_BC作业组后在页面右上角检索框中查询作业名称,如果无返回结果则单击页面左上角“新建作业”。
图2 新建CDM作业1
选择源端的库、表,并且选择目的端手动创建的表,然后加上增量条件。
单击“下一步”,选择需要同步的表字段
图3 新建CDM作业2
添加标准字段
图4 新建CDM作业3
添加的标准字段的具体值如下:
表1 标准字段具体值 ext_etl_dt
${dateformat(yyyy-MM-dd HH:mm:ss)}
ext_src_sys_id
mes_bc
dt
to_char(sysdate,'yyyy-mm-dd')
选择作业分组,单击“保存”将保存作业;单击“保存并运行”将保存并启动作业。
- CDM作业手动执行
单击作业右侧的“运行”,单次运行作业。
图5 CDM作业手动执行1
单击“历史记录”,可以看到历史运行记录及日志
图6 CDM作业手动执行2
- 增量同步ETL脚本开发
创建数据开发连接,入口路径:控制台 > 管理中心
图7 管理中心1
登录DataArts Studio控制台,单击“管理中心”,创建数据开发的连接(如果已创建,则跳过)
图8 管理中心2
单击“创建数据连接”,创建spark数据连接(MRS_Spark_Agent)
图9 管理中心3
测试连接的连通性
创建脚本
入口路径:控制台 > 数据开发
单击“数据开发”,进入数据开发的界面
新建Spark SQL脚本
图10 数据开发1
选择数据连接和数据库
图11 数据开发2
添加表头注释
设置脚本参数
开发增转全脚本
增转全规则:通过增量时间戳获取180天的增量数据,然后将增量数据和180天前的数据进行整合,存放在新生成的分区里。
删除分区
保留7天的历史数据,用于数据回溯和脚本重跑
脚本测试(测试阶段可以把参数值换成具体的值进行测试,这里使用参数为了方便以后的作业调度)
测试完成后,单击“保存并提交版本”
按照脚本的命名规则命名,并选择对应的目录,单击“确定”