普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
应用集成
FAQ
  • IDE 概览
  • 操作说明
  • 通用配置-数据同步
  • 通用配置-数据加工
  • 通用配置-作业流
  • 通用配置-参数说明
  • 名词解释
  • 上游任务传递给下游任务
  • 参数优先级

# IDE 概览

当平台搭建完毕后,后续的数据开发工作都将在 IDE 中完成。

IDE 是数据开发人员进行日常开发工作的工作台,提供图形化、拖拽式的数据开发体验。

支持对数据同步作业、数据加工作业(转换、作业)、通用模板作业、Shell程序、SQL程序、Spark程序、Flink程序、DI程序、MapReduce程序、Python程序、作业流等任务的在线可视化开发。

# 操作说明

点击项目列表右侧的【项目开发】按钮,进入 DWS IDE 界面。

项目开发

DWS IDE 界面如下图所示,分为三个区域:

  • 资源树:项目的开发资源(数据同步、数据加工、通用模板、程序、作业流、数据源)以树形方式展示。

  • 画布区:可视化开发集成作业/作业流,一个画布就是一个开发资源,可以通时展示多个画布。

    • 通用配置:每个资源可以单独配置通用属性,包括:任务优先级、Worker 分组、任务组、任务组优先级、环境、命名参数、本地参数、超时告警、备注等。数据同步与数据加工的通用配置项有区别,参见后续详细说明。
    • 指标日志:开启日志,记录作业运行后读、写、更新、输入、输出的数据量。数据加工作业及基于 Primeton DI 的通用模板作业需要在 IDE 中开启配置。可以在任务实例中查看任务类型为“PDI-TRANS、PDI-JOB、SEATUNNEL”的数据处理量。其他任务类型不支持查看数据量。
    • 版本:显示版本记录。
    • 草稿:显示草稿记录,最多保留最近 10 个草稿。
    • 数据血缘:查看整个ETL流程的数据走向包括:数据源、表、字段血缘关系,默认不显示。需要在安装部署产品时手工配置开启,具体操作参见:数据血缘
    • 运行:在线运行任务。
    • 停止:停止任务的运行。
    • 保存:保存修改后的草稿。
    • 提交:修改后的资源提交后生成新的版本号。
  • 日志栏:在线调试运行时,可以同步输出执行日志,便于用户查看执行过程。

    • 刷新日志:刷新输出日志,以保持最新日志的输出。
    • 刷新实例:刷新实例的执行状态,有三种状态:执行完毕、执行中、执行错误。
    • 清空:清空当前输出的日志。
    • 下载:当日志太多无法展示全,可以下载日志到本地。遇到异常无法自行解决时,可将此文件发给普元售后进一步分析。

IDE

# 通用配置-数据同步

数据同步和基于 Seatunnel 的通用模板的通用配置项是一样的,有五类配置,包括基础信息、失败重试、超时机制、部署配置、引擎参数。如下图所示:

IDE

配置项 默认值 说明
作业名称 作业名称 当前已经创建/打开的数据加工作业名称。
任务优先级 MEDIUM 执行任务的优先级,共有五级:
- HIGHEST:最高
- HIGH:高
- MEDIUM:中
- LOW:低
- LOWEST:最低
当 master 线程数不足时,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
Worker分组 default 该任务在指定的 worker 机器组里执行。默认是 Default,可以在任一 worker 上执行。
任务组 无 如果项目已经添加了任务组配置,则可以在下拉框中进行选择。
任务组优先级 0 数字越大表明任务执行的优先级越高。
环境名称 无 如果项目已经添加了任务组配置,则可以在下拉框中进行选择,在任务执行时,根据 worker 分组选择对应的环境,最终由该组中的 worker 节点执行环境后执行该任务。
本地参数 无 调度的任务类型中自定义的参数,IN 是输入参数,OUT 是输出参数,需要使用${setValue(key=value)}的方式赋值。
失败重试次数 0 次 作业执行失败的重试次数
失败重试间隔 1 分钟 重试执行时的建个时间,单位为:分钟。
超时告警 不开启 设置是否启用超时告警的功能,开启后需要配置告警策略、超时时间。
告警策略 超时告警 两个选项:
- 超时告警:当任务超过”超时时间”后,会发送告警邮件;
- 超时失败:当任务超过”超时时间”后,任务执行失败。
超时时间 30分钟 设置作业执行的超时时间。
部署方式 cluster 两种选项:
- cluster:适用于生产运行;
- local:适用于开发及测试。
引擎参数 无 用于添加 Seatunnel 执行引擎的参数。可以配置key-value或者直接编写json。
并行度 1 最多并行执行的实例数。
备注 无 该作业的描述。

# 通用配置-数据加工

数据加工和基于 Primeton DI 的通用模板的通用配置项是一样的,有三类配置,包括基础信息、失败重试、超时机制。如下图所示:

IDE

配置项 默认值 说明
作业名称 作业名称 当前已经创建/打开的数据加工作业名称。
任务优先级 MEDIUM 执行任务的优先级,共有五级:
- HIGHEST:最高
- HIGH:高
- MEDIUM:中
- LOW:低
- LOWEST:最低
当 master 线程数不足时,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
Worker分组 default 该任务在指定的 worker 机器组里执行。默认是 Default,可以在任一 worker 上执行。
任务组 无 如果项目已经添加了任务组配置,则可以在下拉框中进行选择。
任务组优先级 0 数字越大表明任务执行的优先级越高。
环境名称 无 如果项目已经添加了任务组配置,则可以在下拉框中进行选择,在任务执行时,根据 worker 分组选择对应的环境,最终由该组中的 worker 节点执行环境后执行该任务。
命名参数 无 声明 key 和 default value。实际使用过程需要通过全局参数进行传参。
本地参数 无 调度的任务类型中自定义的参数,IN 是输入参数,OUT 是输出参数,需要使用${setValue(key=value)}的方式赋值。
处理集大小 10000 在进行ETL处理时,每次处理的数据量大小。增加数量可以减少事务次数,提高处理效率,但需要确保系统有足够的内存和处理能力‌。
失败重试次数 0 次 作业执行失败的重试次数
失败重试间隔 1 分钟 重试执行时的建个时间,单位为:分钟。
超时告警 不开启 设置是否启用超时告警的功能,开启后需要配置告警策略、超时时间。
告警策略 超时告警 两个选项:
- 超时告警:当任务超过”超时时间”后,会发送告警邮件;
- 超时失败:当任务超过”超时时间”后,任务执行失败。
超时时间 30分钟 设置作业执行的超时时间。
备注 无 该作业的描述。

# 通用配置-作业流

IDE

配置项 默认值 说明
作业名称 作业名称 当前已经创建/打开的数据加工作业名称。
执行策略 串行优先 当对于同一个作业流定义,同时有多个作业流实例时,共有四种执行策略:
- 串行优先:停止先生成的作业流实例,执行后生成的作业流实例;
- 串行等待:串行执行作业流实例,后生成的作业流实例状态为串行等待;
- 串行抛弃:抛弃后生成的作业流实例,后生成的作业流实例状态为停止;
- 并行:并行执行作业流实例。
全局参数 无 作业流中定义的参数。整个作业流的所有任务节点都可使用全局参数
超时告警 不开启 设置是否启用超时告警的功能,开启后需要配置超时时间。
超时时间 30分钟 设置作业执行的超时时间。
备注 无 该作业流的描述。

# 通用配置-参数说明

DWS 共有以下六类参数:命名参数、本地参数、全局参数、启动参数、上游任务传递的参数、内置参数。

# 名词解释

  • 命名参数:只存在【数据加工】类型及【通用模板】模型中处理引擎为Primeton DI的模型中。声明 key 和 default value。实际使用过程需要通过全局参数进行传参。

  • 本地参数:dolphinscheduler 的任务类型中自定义的参数,IN 是输入参数,OUT 是输出参数,需要使用${setValue(key=value)}的方式赋值。

  • 全局参数:dolphinscheduler的作业流中定义的参数。整个作业流的所有任务节点都可使用全局参数;

  • 启动参数:作业流或任务试运行页面定义的变量。默认是将作业流的全局参数直接带出来,可修改。任务试运行时将命名参数默认带出来,可修改。

  • 上游任务传递的参数:上游任务节点通过本地参数设置OUT输出传递过来的参数。

  • 内置参数:系统内置的参数,可以在所有作业流及任务节点中直接使用的参数。

# 基础内置参数:

变量名 声明方式 含义
system.biz.date ${system.biz.date} 日常调度实例定时的定时时间前一天,格式为 yyyyMMdd
system.biz.curdate ${system.biz.curdate} 日常调度实例定时的定时时间,格式为 yyyyMMdd
system.datetime ${system.datetime} 日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss
system.task.execute.path ${system.task.execute.path} 当前任务执行的绝对路径
system.task.instance.id ${system.task.instance.id} 当前任务实例的ID
system.task.definition.name ${system.task.definition.name} 当前任务所属任务定义的名称
system.task.definition.code ${system.task.definition.code} 当前任务所属任务定义的code
system.workflow.instance.id ${system.workflow.instance.id} 当前任务所属工作流实例ID
system.workflow.definition.name ${system.workflow.definition.name} 当前任务所属工作流定义的名称
system.workflow.definition.code ${system.workflow.definition.code} 当前任务所属工作流定义的code
system.project.name ${system.project.name} 当前任务所在项目的名称
system.project.code ${system.project.code} 当前任务所在项目的code

# 衍生内置参数:

  • 支持代码中自定义变量名,声明方式:${变量名}。可以是引用 "系统参数"。

  • 这种基准变量为 $[...] 格式的,$[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[yyyyMM],$[HHmmss], $[yyyy-MM-dd],$[yyyyMMdd-1]等。

  • 也可以通过以下方式:

    1. 使用add_months()函数,该函数用于加减月份, 第一个入口参数为[yyyyMMdd],表示返回时间的格式 第二个入口参数为月份偏移量,表示加减多少个月

      • 后 N 年:$[add_months(yyyyMMdd,12*N)]
      • 前 N 年:$[add_months(yyyyMMdd,-12*N)]
      • 后 N 月:$[add_months(yyyyMMdd,N)]
      • 前 N 月:$[add_months(yyyyMMdd,-N)]
    2. 直接加减数字 在自定义格式后直接“+/-”数字

      • 后 N 周:$[yyyyMMdd+7*N]
      • 前 N 周:$[yyyyMMdd-7*N]
      • 后 N 天:$[yyyyMMdd+N]
      • 前 N 天:$[yyyyMMdd-N]
      • 后 N 小时:$[HHmmss+N/24]
      • 前 N 小时:$[HHmmss-N/24]
      • 后 N 分钟:$[HHmmss+N/24/60]
      • 前 N 分钟:$[HHmmss-N/24/60]
    3. 业务属性方式在自定义格式后直接“+/-”数字 支持日志格式:所有日期表达式,例如:yyyy-MM-dd/yyyyMMddHHmmss

      • 当天:$[this_day(yyyy-MM-dd)],如:2022-08-26 => 2022-08-26
      • 昨天:$[last_day(yyyy-MM-dd)],如:2022-08-26 => 2022-08-25
      • 前(-)/后(+) N 月第一天:$[month_first_day(yyyy-MM-dd,-N)],如:N=1时 2022-08-26 => 2022-07-01
      • 前(-)/后(+) N 月最后一天:$[month_last_day(yyyy-MM-dd,-N)],如:N=1时 2022-08-28 => 2022-07-31
      • 前(-)/后(+) N 周的周一:$[week_first_day(yyyy-MM-dd,-N)],如:N=1 2022-08-26 => 2022-08-15
      • 前(-)/后(+) N 周的周日:$[week_last_day(yyyy-MM-dd,-N)],如:N=1 2022-08-26 => 2022-08-21

# 上游任务传递给下游任务

DolphinScheduler 允许在任务间进行参数传递,目前传递方向仅支持上游单向传递给下游。目前支持这个特性的任务类型有:Shell、SQL、Python。

当定义上游节点时,如果有需要将该节点的结果传递给有依赖关系的下游节点,需要在【当前节点设置】的【本地参数】设置一个方向是 OUT 的变量。

上游传递的参数可以在下游节点中被更新,更新方法与“设置参数”相同。

如果定义了同名的传递参数,上游节点的参数将被覆盖。

注:若节点之间没有依赖关系,则局部参数无法通过上游传递。

# 参数优先级

当参数名相同时参数的优先级从高到低为:启动参数 > 本地参数 > 上游任务传递的参数 > 全局参数 > 命名参数。

← 数据建模 Access输入 →