使用调度迁移中的概览报表补充修改调度属性

本文档介绍了调度标准包中的概览报表(LHMPackageOverview.xls)的进阶能力,允许用户通过编辑表格修改工作流、节点的部分调度属性,以及实现黑名单操作。

1 什么是LHM调度标准包?

调度标准包是LHM调度迁移链路的中间产物,是为实现N2N调度迁移而建立的调度信息统一描述层(标准数据结构)。

image

标准包中包含一个概览报表文件(LHMPackageOverview.xls),是对转换结果任务流、节点、资源、函数、数据源基本信息的汇总展示。

image

2 概览报表进阶能力

LHM允许用户通过编辑概览报表以修改部分常用调度属性,以及实现黑名单操作。

2.1 操作方式

操作方式如下:

image

概览报表进阶操作将在调度迁移的下一阶段的初始化中生效:

1、对导出工具输出包修改后,调度转换工具会在初始化时获取修改内容并使之生效;

2、对转换工具输出包修改后,目标端导入工具会在初始化时获取修改内容并使之生效。

2.2 修改工作流调度属性

报表中工作流的部分属性被允许更改,允许更改的字段以蓝色字体标识。

属性名

说明

类型

取值

样例

ID

工作流ID

只读

/

16373885761152

名称

工作流名称

只读

/

TestWorkflow2

路径

工作流所在路径

只读

/

ds3_0410

责任人

/

读写

/

admin

备注

/

读写

/

这是一个测试工作流123

调度参数

工作流级参数

读写

JSON格式;允许修改、增加、删除

{"prop1":"value1","prop2":"value2"}

调度信息

Cron表达式

读写

符合Cron表达式规范

00 00 * * * * ?

实例生成方式

/

读写

IMMEDIATELY: 发布后即时生成实例

T_PLUS_1: T+1次日生成实例。

T_PLUS_1

包含节点的个数

/

只读

/

3

源端ID(若任务流由迁移而来)

高级功能

只读

/

/

按节点类型分别统计(多列)

/

只读

/

/

2.3 修改节点调度属性

报表中节点的部分属性被允许更改,允许更改的字段以蓝色字体标识。

属性名

说明

类型

取值

样例

ID

/

只读

/

16373881518720

名称

/

只读

/

Node1

责任人

/

读写

/

admin

备注

/

读写

/

这是一个测试节点123

所属WorkflowID

/

只读

/

16373885761152

所属WorkflowName

/

只读

/

TestWorkflow2

类型

/

读写

/

SQL

相关数据源类型

/

读写

/

MYSQL

相关数据源

/

读写

/

test_mysql_123

调度参数1

工作流级参数

读写

JSON格式;允许修改、增加、删除

{"prop1":"value1","prop2":"value2"}

脚本参数提取1

脚本中的参数引用

读写

JSON格式;允许修改、增加、删除

{"$(param1)":"${Param1}"}

调度信息

Cron表达式

读写

符合Cron表达式规范

00 00 * * * * ?

实例生成方式

/

读写

IMMEDIATELY: 发布后即时生成实例

T_PLUS_1: T+1次日生成实例。

T_PLUS_1

调度类型

/

读写

NORMAL: 正常调度

PAUSE: 暂停调度

SKIP: 空跑调度

NORMAL

重跑类型

/

读写

ALL_ALLOWED: 运行成功或失败后皆可重跑

ALL_DENIED: 运行成功或失败后皆不可重跑

FAILURE_ALLOWED: 运行成功后不可重跑,运行失败后可以重跑

ALL_ALLOWED

调度资源组

DataWorks调度资源组

读写

DataWorks通用/调度资源组ID

Serverless_res_group_580581087550304_692540198941344

计算CU

DataWorks计算CU

读写

Float

0.25

镜像

DataWorks镜像

读写

镜像ID

System_emr_datalake_5151_ 20240731

数据集成资源组(仅DI)

DataWorks集成资源组

读写

DataWorks通用/集成资源组ID

Serverless_res_group_580581087550304_692540198941344

数据集成CU(仅DI)

DataWorks数据集成CU

读写

Float

0.5

源端ID(若任务流由迁移而来)

高级功能

只读

/

/

注脚1: 使用方式详见章节 2.2.1 节点与代码中的变量处理。

2.3.1 节点与代码中的变量处理

2.3.1.1 不同调度引擎在节点变量上的差异

不同调度引擎调度变量的使用方式存在差异,在调度转换中需要进行处理,差异主要有以下三类:

· 调用格式差异

常见的调用格式有${param}、$[param]、$(param)。

DataWorks中节点变量以${}、$[]为主,在转换时,需对节点代码中引用变量的方式进行处理。

· 调度引擎内置变量差异

调度引擎提供了多种内置变量,常见的是时间变量,此外也提供一些诸如${workflowName}、${taskName}的变量。不同调度引擎提供的内置变量存在差异,时间变量的格式也可能存在差异。在转换时需要进行替换处理。

另外,DataWorks的内置变量需要在节点参数表中进行定义后方可使用。而有些调度引擎,如WeData,允许用户在节点代码中直接使用内置变量。在迁移至DataWorks时需要将这些变量添加到节点变量中。

image.png

· 多级参数引用差异

Project级、Workflow级、Node级变量的多级引用规则可能存在差异。

2.3.1.2 利用概览报表改造节点与代码中的变量

在迁移场景中,源端和目标端调度引擎节点变量存在大量差异。工具提供了一项通用能力,允许用户以简单易用的方式完成变量处理。用户需在调度转换完成后、调度导入前进行处理。

· 节点变量补全

工具支持自动识别节点代码中引用的变量,并与节点已有变量进行对比。当节点变量中找不到该变量时,自动在表格参数列中预设该参数。

识别节点代码中变量引用的方式是:搜索代码中被${}、$[]、$()包裹的子串,并进行去重。

以是一个示例:脚本中存在三个疑似变量的子串param1、param2、param3,且节点自定义变量表中不存在相应变量。

image.png

工具自动识别了这些子串,并提示在概览报表中:

image

工具会自动创建变量名,用户可通过编辑表格为这些变量补充值。若存在误识别的变量,删除或放置不管即可。

表格也允许通过编辑额外增加节点参数(即使工具没有预先创建变量名)。

image

· 节点代码中变量调用方式替换

由于调用方式存在差异,需要对节点代码中引用变量的方式进行替换。

以下图为例,节点代码中存在param1、param2、param3三个疑似参数的子串。

工具自动识别了这些子串,并构建了一个Map。用户可以通过更改这个Map,完成节点代码中变量调用方式的替换。

image

Key值(冒号前)是节点代码中的原始串,Value值(冒号后)是待替换的串。

例如,若需要将原先$()和$[]统一替换为${},可将该单元格修改如下:

{"${param1}":"${param1}","$[param2]":"${param2}","$(param3)":"${param3}"}

替换方式是使用String.replace(CharSequence target, CharSequence replacement)方法,正则不会生效。

用户也可以通过编辑改单元格对对代码中的变量名进行替换。注意,修改变量名需同时更改节点调度变量表。例如,可以将param1替换为P1。

image

image

2.4 工作流黑名单

报表允许通过删除工作流子表中的行,使得工具跳过这些工作流的处理(工作流黑名单)。

注意!若工作流存在相互依赖关系,相关联的工作流需要同批次处理,不可通过黑名单进行分割。分割会产生异常!

image