通过数据开发使用参数传递灵活调度CDM作业
如果CDM作业接收来自数据开发作业配置的参数,则在数据开发模块可以使用诸如EL表达式传递动态参数来调度CDM作业。
![](https://support.huaweicloud.com/intl/zh-cn/bestpractice-cdm/public_sys-resources/note_3.0-zh-cn.png)
- 本示例介绍的参数传递功能仅支持CDM 2.8.6版本及以上集群。
- 本示例以执行迁移Oracle数据到MRS Hive的CDM作业为例,介绍通过数据开发使用参数传递功能灵活调度CDM作业。
前提条件
已购买数据集成增量包。
创建CDM迁移作业
- 登录控制台,选择实例,单击“进入控制台”,单击相应工作空间后的“数据集成”。
- 在集群管理页面,单击集群操作列“作业管理”,进入“作业管理”页面,如图1所示。
- 在“连接管理”页签中,单击“新建连接”,分别创建Oracle数据连接和MRS Hive数据连接,详情请参见新建Oracle数据连接和新建MRS Hive数据连接。
- 在“表/文件迁移”页签中,单击“新建作业”,创建数据迁移作业。
- 配置Oracle源端参数、MRS hive目的端参数,并配置传递参数,参数形式为 ${varName},本示例参数为${cur_date},如图2所示。
不能在CDM迁移作业中配置“作业失败重试”参数,如有需要请在数据开发中的CDM节点配置“失败重试”参数。
创建并执行数据开发作业
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在数据开发主界面的左侧导航栏,选择 。
- 在“作业开发”界面中,单击“新建作业”,如图3所示。
- 在弹出的“新建作业”页面,配置如所示的参数。单击“确定”,创建作业。
表1 作业参数 参数
说明
作业名称
自定义作业的名称,只能包含英文字母、数字、中文、“-”、“_”、“.”,且长度为1~128个字符。
作业类型
选择作业的类型。
- 批处理作业:按调度计划定期处理批量数据,主要用于实时性要求低的场景。批作业是由一个或多个节点组成的流水线,以流水线作为一个整体被调度。被调度触发后,任务执行一段时间必须结束,即任务不能无限时间持续运行。
批处理作业可以配置作业级别的调度任务,即以作业为一整体进行调度,具体请参见配置作业调度任务(批处理作业)。
- 实时处理作业:处理实时的连续数据,主要用于实时性要求高的场景。实时作业是由一个或多个节点组成的业务关系,每个节点可单独被配置调度策略,而且节点启动的任务可以永不下线。在实时作业里,带箭头的连线仅代表业务上的关系,而非任务执行流程,更不是数据流。
实时处理作业可以配置节点级别的调度任务,即每一个节点可以独立调度,具体请参见配置作业调度任务(实时作业)。
创建方式
选择作业的创建方式。
- 创建空作业:创建一个空的作业。
- 基于模板创建:使用数据开发模块提供的模板来创建。
选择目录
选择作业所属的目录,默认为根目录。
责任人
填写该作业的责任人。
作业优先级
选择作业的优先级,提供高、中、低三个等级。
委托配置
配置委托后,作业执行过程中,以委托的身份与其他服务交互。
说明:作业级委托优先于工作空间级委托。
日志路径
选择作业日志的OBS存储路径。日志默认存储在以dlf-log-{Projectid}命名的桶中。
说明:- 若您想自定义存储路径,请参见(可选)修改作业日志存储路径选择您已在OBS服务侧创建的桶。
- 请确保您已具备该参数所指定的OBS路径的读、写权限,否则系统将无法正常写日志或显示日志。
- 批处理作业:按调度计划定期处理批量数据,主要用于实时性要求低的场景。批作业是由一个或多个节点组成的流水线,以流水线作为一个整体被调度。被调度触发后,任务执行一段时间必须结束,即任务不能无限时间持续运行。
- 在数据开发作业中添加CDM Job节点,并关联已创建的CDM作业,如图4所示。
- 在作业参数中配置业务需要的参数,如图5所示。
作业调度执行的过程中,会将该参数值传递给CDM作业,传递的参数“cur_date”可以配置为本示例“2021-11-10 00:00:00”固定参数值,也可以配置为EL表达式,例如:计划运行日期的前一天:#{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyy-MM-dd")},更多EL表达式请参见EL表达式。
- 保存并提交作业版本,单击“测试运行”,执行数据开发作业。
- 数据开发作业执行成功后,单击右上角的“前往监控”,进入“作业监控”页面,查看生成的任务或实例是否符合需求,如图6所示。