Table of Contents
任务总体存储
Shell节点
SQL节点
存储过程节点
SPARK节点
MapReduce(MR)节点
Python节点
Flink节点
HTTP节点
子流程节点
依赖(DEPENDENT)节点
任务总体存储
在调度平台所创建的所有任务都保存在t_ds_process_definition 表中.
该数据库表结构如下表所示:
序号 | 字段 | 类型 | 注释 |
1 | id | int | 主键 |
2 | name | varchar | 流程定义名称 |
3 | version | int | 流程定义版本 |
4 | release_state | tinyint | 流程定义的发布状态:0 未上线 1已上线 |
5 | project_id | int | 项目id |
6 | user_id | int | 流程定义所属用户id |
7 | process_definition_json | longtext | 流程定义json串 |
8 | description | text | 流程定义描述 |
9 | global_params | text | 全局参数 |
10 | flag | tinyint | 流程是否可用:0 不可用,1 可用 |
11 | locations | text | 节点坐标信息 |
12 | connects | text | 节点连线信息 |
13 | receivers | text | 收件人 |
14 | receivers_cc | text | 抄送人 |
15 | create_time | datetime | 创建时间 |
16 | timeout | int | 超时时间 |
17 | tenant_id | int | 租户id |
18 | update_time | datetime | 更新时间 |
其中process_definition_json 字段为核心字段, 定义了 DAG 图中的任务信息.该数据以JSON 的方式进行存储.
公共的数据结构如下表.
序号 | 字段 | 类型 | 注释 |
1 | globalParams | Array | 全局参数 |
2 | tasks | Array | 流程中的任务集合 [各个类型的结构请参考如下章节] |
3 | tenantId | int | 租户id |
4 | timeout | int | 超时时间 |
数据示例
|
Shell节点
Shell节点,在worker执行的时候,会生成一个临时Shell脚本,使用租户同名的linux用户执行这个脚本.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: SHELL |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| resourceList | 引用资源文件 |
|
6 |
| localParams | 本地变量 |
|
7 |
| rawScript | Shell脚本 |
|
8 | description |
| 描述 |
|
9 | runFlag |
| 运行标识 |
|
10 | dependence |
| 任务依赖 | 与params互斥 |
11 | maxRetryTimes |
| 最大重试次数 |
|
12 | retryInterval |
| 重试间隔 |
|
13 | timeout |
| 超时控制 |
|
14 | taskInstancePriority |
| 任务优先级 |
|
15 | workerGroupId |
| Worker 分组 |
|
16 | preTasks |
| 前置任务 |
|
数据示例:
|
SQL节点
通过 SQL对指定的数据源进行数据查询、更新操作.
节点定义结构如下。
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: SQL |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| type | 数据库类型 |
|
6 |
| datasource | 数据源 |
|
7 |
| sql | Sql脚本 |
|
8 |
| udfs | Udf 函数 |
|
9 |
| sqlType | SQL 类型 | 0 查询 1 非查询 |
10 |
| title | 邮件标题 |
|
11 |
| receivers | 邮件接收人 |
|
12 |
| receiversCc | 邮件抄送人 |
|
13 |
| showType | 接收类型 | TABLE 表格 ATTACHMENT附件 |
14 |
| localParams | 本地变量 |
|
15 |
| connParams | 连接参数 |
|
16 |
| preStatements | 前置 SQL |
|
17 |
| postStatements | 后置 SQL |
|
18 | description |
| 描述 |
|
19 | runFlag |
| 运行标识 |
|
20 | dependence |
| 任务依赖 | 与params互斥 |
21 | maxRetryTimes |
| 最大重试次数 |
|
22 | retryInterval |
| 重试间隔 |
|
23 | timeout |
| 超时控制 |
|
24 | taskInstancePriority |
| 任务优先级 |
|
25 | workerGroupId |
| Worker 分组 |
|
26 | preTasks |
| 前置任务 |
|
数据示例:
|
存储过程节点
根据选择的数据源,执行存储过程.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: PROCEDURE |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| type | 数据库类型 |
|
6 |
| datasource | 数据源 ID |
|
7 |
| method | 方法名 |
|
8 |
| localParams | 存储过程参数 |
|
9 | description |
| 描述 |
|
10 | runFlag |
| 运行标识 |
|
11 | dependence |
| 任务依赖 | 与params互斥 |
12 | maxRetryTimes |
| 最大重试次数 |
|
13 | retryInterval |
| 重试间隔 |
|
14 | timeout |
| 超时控制 |
|
15 | taskInstancePriority |
| 任务优先级 |
|
16 | workerGroupId |
| Worker 分组 |
|
17 | preTasks |
| 前置任务 |
|
数据示例:
"type":"PROCEDURE", "id":"tasks-33589", "name":"存储过程节点", "params":{ "type":"MYSQL", "datasource":2, "method":"add", "localParams":[ { "prop":"in_paramer", "direct":"IN", "type":"VARCHAR", "value":"" }, { "prop":"out_paramer", "direct":"OUT", "type":"VARCHAR", "value":"" } ] }, "description":"", "runFlag":"NORMAL", "dependence":{
}, "maxRetryTimes":"0", "retryInterval":"1", "timeout":{ "strategy":"", "interval":null, "enable":false }, "taskInstancePriority":"MEDIUM", "workerGroupId":-1, "preTasks":[
] } |
SPARK节点
通过SPARK节点,可以直接直接执行SPARK程序,对于spark节点,worker会使用spark-submit方式提交任务.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: SPARK |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| mainClass | 运行主类 |
|
6 |
| mainJar | 程序 jar 包 |
|
7 |
| deployMode | 部署模式 |
|
8 |
| resourceList | 引用资源文件 |
|
9 |
| localParams | 本地变量 |
|
10 |
| driverCores | driver核数 |
|
11 |
| driverMemory | driver 内存数 |
|
12 |
| numExecutors | executor数量 |
|
13 |
| executorMemory | executor内存 |
|
14 |
| executorCores | executor核数 |
|
15 |
| mainArgs | 主参数 |
|
16 |
| others | 其他参数 |
|
17 |
| programType | 程序类型 |
|
18 |
| sparkVersion | Spark 版本 |
|
19 | description |
| 描述 |
|
20 | runFlag |
| 运行标识 |
|
21 | dependence |
| 任务依赖 | 与params互斥 |
22 | maxRetryTimes |
| 最大重试次数 |
|
23 | retryInterval |
| 重试间隔 |
|
24 | timeout |
| 超时控制 |
|
25 | taskInstancePriority |
| 任务优先级 |
|
26 | workerGroupId |
| Worker 分组 |
|
27 | preTasks |
| 前置任务 |
|
数据示例:
|
MapReduce(MR)节点
使用MR节点,可以直接执行MR程序。对于mr节点,worker会使用hadoop jar方式提交任务.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: MR |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| mainClass | 运行主类 |
|
6 |
| mainJar | 程序 jar 包 |
|
7 |
| resourceList | 引用资源文件 |
|
8 |
| mainArgs | 主参数 |
|
9 |
| others | 其他参数 |
|
10 |
| programType | 程序类型 |
|
11 | description |
| 描述 |
|
12 | runFlag |
| 运行标识 |
|
13 | dependence |
| 任务依赖 | 与params互斥 |
14 | maxRetryTimes |
| 最大重试次数 |
|
15 | retryInterval |
| 重试间隔 |
|
16 | timeout |
| 超时控制 |
|
17 | taskInstancePriority |
| 任务优先级 |
|
18 | workerGroupId |
| Worker 分组 |
|
19 | preTasks |
| 前置任务 |
|
数据示例:
{ "type":"MR", "id":"tasks-70322", "name":"MapReduce(MR)节点", "params":{ "mainClass":"wordcount", "mainJar":{ "res":"hadoop-mapreduce-examples-2.7.4.jar" }, "resourceList":[ { "res":"hadoop-mapreduce-examples-2.7.4.jar" } ], "localParams":[
], "mainArgs":"/wordcount/input /wordcount/output/result", "others":"", "programType":"JAVA" }, "description":"", "runFlag":"NORMAL", "dependence":{
}, "maxRetryTimes":"0", "retryInterval":"1", "timeout":{ "strategy":"", "interval":null, "enable":false }, "taskInstancePriority":"MEDIUM", "workerGroupId":-1, "preTasks":[
] } |
Python节点
使用Python节点,可以直接执行python脚本,对于python节点,worker会使用python **方式提交任务.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: PYTHON |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| resourceList | 引用资源文件 |
|
6 |
| localParams | 本地变量 |
|
7 |
| rawScript | Python脚本 |
|
8 | description |
| 描述 |
|
9 | runFlag |
| 运行标识 |
|
10 | dependence |
| 任务依赖 | 与params互斥 |
11 | maxRetryTimes |
| 最大重试次数 |
|
12 | retryInterval |
| 重试间隔 |
|
13 | timeout |
| 超时控制 |
|
14 | taskInstancePriority |
| 任务优先级 |
|
15 | workerGroupId |
| Worker 分组 |
|
16 | preTasks |
| 前置任务 |
|
数据示例:
|
Flink节点
根据配置调用 Flink 请求.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: FLINK |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| mainClass | 运行主类 |
|
6 |
| mainJar | 程序 jar 包 |
|
7 |
| deployMode | 部署模式 |
|
8 |
| resourceList | 引用资源文件 |
|
9 |
| localParams | 本地变量 |
|
10 |
| slot | Slot数量 |
|
11 |
| taskManager | taskManager数量 |
|
12 |
| taskManagerMemory | taskManager内存 |
|
13 |
| jobManagerMemory | jobManager内存 |
|
14 |
| executorCores | executor核数 |
|
15 |
| mainArgs | 主参数 |
|
16 |
| others | 其他参数 |
|
17 |
| programType | 程序类型 |
|
18 |
| sparkVersion | Spark 版本 |
|
19 | description |
| 描述 |
|
20 | runFlag |
| 运行标识 |
|
21 | dependence |
| 任务依赖 | 与params互斥 |
22 | maxRetryTimes |
| 最大重试次数 |
|
23 | retryInterval |
| 重试间隔 |
|
24 | timeout |
| 超时控制 |
|
25 | taskInstancePriority |
| 任务优先级 |
|
26 | workerGroupId |
| Worker 分组 |
|
27 | preTasks |
| 前置任务 |
|
数据示例:
|
HTTP节点
根据配置调用 HTTP 请求.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: HTTP |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| localParams | 本地变量 |
|
6 |
| httpParams | 请求参数 |
|
7 |
| url | url 地址 |
|
8 |
| httpMethod | 请求方式 |
|
9 |
| httpCheckCondition | 检查条件 |
|
10 |
| condition | 检查内容 |
|
11 | description |
| 描述 |
|
12 | runFlag |
| 运行标识 |
|
13 | dependence |
| 任务依赖 | 与params互斥 |
14 | maxRetryTimes |
| 最大重试次数 |
|
15 | retryInterval |
| 重试间隔 |
|
16 | timeout |
| 超时控制 |
|
17 | taskInstancePriority |
| 任务优先级 |
|
18 | workerGroupId |
| Worker 分组 |
|
19 | preTasks |
| 前置任务 |
|
数据示例:
|
子流程节点
子流程节点,就是把外部的某个工作流定义当做一个任务节点去执行.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: SUB_PROCESS |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 | Json 格式 |
5 |
| processDefinitionId | 流程定义 ID |
|
6 | description |
| 描述 |
|
7 | runFlag |
| 运行标识 |
|
8 | dependence |
| 任务依赖 | 与params互斥 |
9 | maxRetryTimes |
| 最大重试次数 |
|
10 | retryInterval |
| 重试间隔 |
|
11 | timeout |
| 超时控制 |
|
12 | taskInstancePriority |
| 任务优先级 |
|
13 | workerGroupId |
| Worker 分组 |
|
14 | preTasks |
| 前置任务 |
|
15 | | | | |
16 | | | | |
数据示例:
|
依赖(DEPENDENT)节点
依赖节点,就是依赖检查节点。比如A流程依赖昨天的B流程执行成功,依赖节点会去检查B流程在昨天是否有执行成功的实例.
节点定义结构如下:
序号 | 参数名 | 描述 | 备注 | |
1 | type |
| 类型 | 值: DEPENDENT |
2 | id |
| 任务编码 |
|
3 | name |
| 名称 |
|
4 | params |
| 自定义参数 |
|
5 | description |
| 描述 |
|
6 | runFlag |
| 运行标识 |
|
7 | dependence |
| 任务依赖 | 与params互斥 |
8 |
| relation | 关系 |
|
9 |
| dependTaskList | 依赖任务清单 |
|
10 | maxRetryTimes |
| 最大重试次数 |
|
11 | retryInterval |
| 重试间隔 |
|
12 | timeout |
| 超时控制 |
|
13 | taskInstancePriority |
| 任务优先级 |
|
14 | workerGroupId |
| Worker 分组 |
|
15 | preTasks |
| 前置任务 |
|
数据示例:
|