# IDE 概览
当平台搭建完毕后,后续的数据开发工作都将在 IDE 中完成。
IDE 是数据开发人员进行日常开发工作的工作台,提供图形化、拖拽式的数据开发体验。
支持对数据同步作业、数据加工作业(转换、作业)、通用模板作业、Shell程序、SQL程序、Spark程序、Flink程序、DI程序、MapReduce程序、Python程序、作业流等任务的在线可视化开发。
# 名词解释
命名参数:针对 Kettle 的转换、编排中使用的参数。这里的参数只是定义作用,声明 key 和 default value。实际使用过程需要通过全局参数进行传参。
本地参数:指 dolphinscheduler 的任务类型中自定义的参数,在存在同名参数下优先级最高;IN 是输入参数,OUT 是输出参数,需要使用${setValue(key=value)}的方式赋值。
全局参数:作业流中定义的全局参数。
# 操作说明
点击项目列表右侧的【项目开发】按钮,进入 DWS IDE 界面,如果项目有多个数据层,在弹框中选择一个数据层。
DWS IDE 界面如下图所示,分为三个区域:
资源树:项目的开发资源(数据同步、数据加工、通用模板、程序、作业流、数据源)以树形方式展示。
画布区:可视化开发集成作业/作业流,一个画布就是一个开发资源,可以通时展示多个画布。
- 通用配置:每个资源可以单独配置通用属性,包括:任务优先级、Worker 分组、命名参数、本地参数、超时告警、备注。
- 指标日志:开启日志,记录作业运行后读、写、更新、输入、输出的数据量。
- 版本:显示版本记录。
- 草稿:显示草稿记录,最多保留最近 10 个草稿。
- 运行:在线运行任务。
- 停止:停止任务的运行。
- 保存:保存修改后的草稿。
- 提交:修改后的资源提交后生成新的版本号。
日志栏:在线调试运行时,可以同步输出执行日志,便于用户查看执行过程。
- 刷新日志:刷新输出日志,以保持最新日志的输出。
- 刷新实例:刷新实例的执行状态,有三种状态:执行完毕、执行中、执行错误。
- 清空:清空当前输出的日志。
- 换行:可以对日志输出进行换行显示。
- 下载:当日志太多无法展示全,可以下载日志到本地。
# 通用配置-参数说明
DWS中共有以下几类参数:命名参数、本地参数、全局参数、启动参数、上游任务传递的参数、内置参数。
# 名词解释
命名参数:只存在【数据加工】类型及【通用模板】模型中处理引擎为Primeton DI的模型中。声明 key 和 default value。实际使用过程需要通过全局参数进行传参。
本地参数:dolphinscheduler 的任务类型中自定义的参数,IN 是输入参数,OUT 是输出参数,需要使用${setValue(key=value)}的方式赋值。
全局参数:dolphinscheduler的作业流中定义的参数。整个作业流的所有任务节点都可使用全局参数;
启动参数:作业流或任务试运行页面定义的变量。默认是将作业流的全局参数直接带出来,可修改。任务试运行时将命名参数默认带出来,可修改。
上游任务传递的参数:上游任务节点通过本地参数设置OUT输出传递过来的参数。
内置参数:系统内置的参数,可以在所有作业流及任务节点中直接使用的参数。
我们定义这种基准变量为 $[...] 格式的,$[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 的变量。
# 参数优先级
当参数名相同时参数的优先级从高到低为: 启动参数 > 本地参数 > 上游任务传递的参数 > 全局参数 >命名参数。