本文介绍了如何基于LHM调度迁移工具实现DataWorks调度任务流的批量治理。
LHM调度迁移工具提供了对DataWorks中任务流、节点属性的批量修改能力。
该能力依托工具提供的DataWorks平迁能力实现:先将任务由DataWorks导出、修改属性后导入统一工作空间。属性修改完全通过编辑Excel表格操作,无需编写代码、无需了解LHM调度工作流标准数据结构,以最灵活、最可用的形式向用户提供。
本方案是对DataWorks批量操作能力的补充,建议优先使用DataWorks批量操作功能;在批量操作无法满足需求时使用本方案。
1 导出DataWorks调度任务流
参考DataWorks跨空间迁移中的任务流导出方案,生成ReaderOutput.zip导出包。
2 DataWorks批量治理
LHM调度数据包的统计表以平铺的方式展示了包中Workflow、Workflow Node、Workflow Resource、Function、DataSource的条目及其主要属性。工具允许用户通过编辑表格以修改调度属性,允许修改的字段以蓝色字体标识。
解压缩ReaderOutput.zip导出包,打开统计报表。
在批量修改完成后,请删除原压缩包,保存报表,然后压缩得到新包。
2.1 工作流属性批量修改
Workflow子表展示了工作空间中任务流的清单及其主要属性。
支持修改的属性如下:
2.1.1 责任人
2.1.1.a 定义
表格中的“责任人”字段允许修改,对应DataWorks数据开发界面中的如下设置:
2.1.1.b 可选值
“责任人”字段填写用户的账号ID,ID可以在页面右上角获取,或从数据开发节点责任人下拉框中获取。字段置空时,将自动设置为导入DataWorks时所使用AK、SK归属账号的ID。
2.1.2 备注
表格中的“备注”字段允许修改,对应DataWorks数据开发界面中的如下设置:
2.1.3 调度参数
表格中的“调度参数”字段允许修改,对应DataWorks数据开发界面中的如下设置:
填写等号表达式,存在多个参数时以英文逗号连接,如:a=1,b=2
2.1.4 调度信息(Cron表达式)
表格中的“调度信息(Cron表达式)”字段允许修改,对应DataWorks数据开发界面中的如下设置:
字段中需填写Cron表达式,格式为“秒 分钟 小时 日 月 星期”。注意,所有数字需以两位数表达,例如,0需要被写作00、1需要被写作01。此外,DataWorks不支持设置“年”。
工具将根据Cron表达式自动填写数据开发节点上的“调度周期”相关参数。
2.1.5 实例生成方式
表格中的“实例生成方式”字段允许被修改,对应DataWorks数据开发界面中的如下设置:
可选值:
· T_PLUS_1:T+1次日生成
· IMMEDIATELY:发布后即时生成
2.2 任务属性批量修改
2.2.1 责任人
2.2.1.a 定义
表格中的“责任人”字段允许修改,对应DataWorks数据开发界面中的如下设置:
2.2.1.b 可选值
“责任人”字段填写用户的账号ID,ID可以在页面右上角获取,或从数据开发节点责任人下拉框中获取。字段置空时,将自动设置为导入DataWorks时所使用AK、SK归属账号的ID。
2.2.2 备注
表格中的“备注”字段允许修改,对应DataWorks数据开发界面中的如下设置:
2.2.3 相关数据源
若用户希望在迁移中更换节点绑定的数据源,可通过修改表格中“相关数据源”字段实现变更。
其中数据集成节点与多个数据源相关,数据集成源端数据源与目标端数据源以“,”分隔,如“odps1,odps2”表示该数据集成任务是从odps1读取写入odps2;如存在分库分表时,源端数据源以空格分隔,如“mysql1 mysql2 mysql3,odps1”表示从mysql1、mysql2、mysql3三个数据源读取写入odps1。
请确保表格中的数据源在目标DataWorks空间中真实存在,并尽可能填写。当数据源置空时,MaxCompute(ODPS)、EMR、HOLOGRES相关节点将会自动绑定工作空间中默认引擎,其他节点可能存在异常。
该字段对应DataWorks数据开发的如下设置:
DataWorks数据开发节点绑定数据源的设置位置如下:
DataWorks数据集成节点(单表离线)绑定数据源的设置位置如下:
注意!DataWorks节点测试与调度运行支持绑定不同的数据源,工具允许批量设置的是运行数据源。以下为测试数据源的设置位置,请勿混淆。
2.2.4 调度参数
表格中的“调度参数”字段允许修改,对应DataWorks数据开发界面中的如下设置:
填写等号表达式,存在多个参数时以英文逗号连接,如:a=1,b=2
2.2.5 调度信息(Cron表达式)
在DataWorks中,本配置项由当前节点所属工作流统一管理。
2.2.6 实例生成方式
在DataWorks中,本配置项由当前节点所属工作流统一管理。
2.2.7 调度类型
表格中的“调度类型”字段允许修改,对应DataWorks数据开发界面中的如下设置:
可选值:
· NORMAL: 正常调度
· PAUSE: 暂停调度
· SKIP: 空跑调度
2.2.8 重跑类型
表格中的“重跑类型”字段允许修改,对应DataWorks数据开发界面中的如下设置:
可选值:
· ALL_ALLOWED: 运行成功或失败皆可重跑
· FAILURE_ALLOWED: 运行成功后不可重跑,运行失败后可以重跑
· ALL_DENIED: 运行失败或成功后皆不可重跑
2.2.9 调度资源组
表格中的“调度资源组”字段允许修改,对应DataWorks数据开发界面中的如下设置:
资源组的获取方式如下:
由DataWorks工作空间详情页左侧菜单栏进入资源组页面,绑定资源组,并获取资源组ID。
注意,后续在使用工具将调度信息导入目标DataWorks空间时,导入配置项中也存在资源组设置。若表格中资源组设置有值时,导入工具将优先取用表格中的值;在表格中资源组为空时,导入工具将取用导入配置项中的设置。(即,优先级:表格设置>导入配置项)
2.2.10 调度资源组(内部ID)
调度资源组内部ID resource.group.inner.identifier在资源组界面上暂时没有透出,根据如下步骤在数据开发页面获取。
注意,后续在使用工具将调度信息导入目标DataWorks空间时,导入配置项中也存在资源组设置。若表格中资源组设置有值时,导入工具将优先取用表格中的值;在表格中资源组为空时,导入工具将取用导入配置项中的设置。(即,优先级:表格设置>导入配置项)
2.2.11 数据集成资源组(仅DI)
DataWorks数据集成任务需设置集成资源组,在数据开发界面上,该配置项位置如下:
工具允许通过修改表格中的“数据集成资源组(仅DI)”字段为数据集成任务批量设置集成资源组,资源组ID的获取方式与调度资源组一致,详见2.2.9节。
注意,后续在使用工具将调度信息导入目标DataWorks空间时,导入配置项中也存在资源组设置。若表格中资源组设置有值时,导入工具将优先取用表格中的值;在表格中资源组为空时,导入工具将取用导入配置项中的设置。(即,优先级:表格设置>导入配置项)
2.2.12 数据集成cu(仅DI)
表格中的“数据集成cu(仅DI)”字段允许修改,对应DataWorks数据开发界面中的如下设置:
注意,后续在使用工具将调度信息导入目标DataWorks空间时,导入配置项中也存在资源组设置。若表格中资源组设置有值时,导入工具将优先取用表格中的值;在表格中资源组为空时,导入工具将取用导入配置项中的设置。(即,优先级:表格设置>导入配置项)
2.3 任务脚本批量修改
节点脚本被集中存储于data/project/script目录下,按节点类型分类保存。
文件名为“工作空间名#任务名称#任务Id”,用户可结合统计报表寻找到需要修改的节点脚本。
按节点类型分类存储有助于用户批量修改同类任务。
3 导入DataWorks
参考DataWorks跨空间迁移中的任务流导入方案,更新任务流,完成属性批量修改。