CDM大表分片操作

举报
Jimmy@^@ 发表于 2020/06/23 11:31:25 2020/06/23
【摘要】 CDM配合DLF补数据功能,根据日期或者递增ID,配置作业自动分片迁移


CDM配合DLF补数据功能,根据日期或者递增ID,配置作业自动分片迁移

1        基于将大表拆分成小段分段迁移,基于DLF补数据拆分段能力搞定;补数据功能可以根据dlf作业配置的调度周期(按月),下发时间参数给cdm解析成sql条件,自动拆分作业

2        数据pipeline oracle(分段)---CDM---目的表

3        大表拆分策略:基于时间拆分和基于ID字段拆分

4        配置示例

4.1       数据样例

image.png

4.2      基于时间配置分片作业

1.       配置CDM作业,从oracle表拉取数据到hive临时表。根据时间字段,时间宏配置条件,dateformat时间由dlf传递;目的端导入前清空数据

image.png

配置CDM分片条件,按月拆分作业

 

Oracle条件:(cc >= to_date('${dateformat(yyyy-MM, 0, DAY)}','yyyy-mm') and cc <= to_date('${dateformat(yyyy-MM, +31, DAY)}','yyyy-mm'))

 

Mysql条件:cc >= '${dateformat(yyyy-MM, 0, DAY)}' and cc < '${dateformat(yyyy-MM, +31, DAY)}'

 

2.       配置迁移hive临时表数据到hive主表,配置hdfs文件迁移作业,直接迁移文件

image.png

 

3.       配置dlf作业节点,选择两个CDM节点,分别选取oracle2hive临时表,临时表2主表作业,并且配置调度周期为每月1

image.png

 

4.补数据调度,选取需要抽取数据的时间段;然后dlf会在这个时间段,按照每月1号的调度时间下发给cdm解析

image.png

image.png

 

 

 

4.3      基于ID配置分片作业

1.       配置CDM作业

image.png

CDM不需要配置参数条件,每次调用通过dlf自动修改作业参数,然后分片执行;

 

2.       配置dlf作业

(1)       配置rest算子,自动修改cdm作业json, 使用参数构造where条件

bb >= ${start} and bb <= ${end};

image.png

2CDM节点配置

image.png

3)作业调度配置

配置作业参数startend

start   #{DateUtil.getDay(Job.planTime)*1000-1000}

end    #{DateUtil.getDay(Job.planTime)*1000}

数字1000为每段作业id范围,可以根据需要调节,调度配置为按天;

则一共可以分成30段,即一个月每天的日期;

image.png

 

image.png

 

4)补数据调度,选择一个月的时间

image.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。