配置离线管道运行参数

运行参数配置是对离线管道中所用的变量进行赋值,从而支持节点调度时,参数变量可以自动被替换为相应的变量值。本文为您介绍如何配置离线管道的运行参数。

参数配置入口

  1. 在Dataphin首页,单击顶部菜单栏的研发

  2. 按照下图操作指引,选择您需配置的离线管道任务,并单击属性进入属性面板。

    image.png

  3. 在属性面板中运行参数区域,即可配置任务的参数信息。

配置参数

在离线集成管道中通过表达式${变量名}配置的参数、系统将在运行参数区域进行展示。可以在运行参数列表修改参数类型并对参数赋值。

image.png

说明

参数列表支持批量操作,勾选或全选参数后,可以单击image.png进行批量修改参数类型。

参数

描述

参数名称

离线管道中定义的参数名称。建议变量名称仅包含数字、字母和下划线(_),长度在32位以内。

参数类型

包括全局变量、空间名称变量本地变量跨节点变量、非变量类型更多信息,请参见变量分类

参数值

  • 全局变量:默认为全局变量所定义的变量值,不支持设置。更多信息,请参见新建全局变量

  • 空间名称变量:参数值即为空间名称。

  • 本地变量:最长支持258位字符或设置为空值。

  • 跨节点变量:设置上游依赖后,可以选择上游的跨节点输出参数作为参数值。

  • 非变量:不支持定义。

变量分类

Dataphin中存在以下类型的变量:

变量类型

描述

全局变量

在Dataphin规划-公共定义-全局变量中事先声明定义的变量,可以在租户内任何节点或代码中引用,系统初始内置的全局变量有${bizdate}

image

说明
  • 全局变量暂不支持实时计算和集成同步任务。

  • 全局变量设置。具体操作,请参见新建全局变量

空间名称变量

${生产项目名称}${生产板块名称}。如下图所示:

image.png

说明

空间名称变量不支持转换为其他类型变量。

本地变量

  • 无须事先声明和定义,直接在离线管道中使用${variable_name},即可定义一个名字为variable_name的本地变量。

  • 变量名建议只使用数字、字母和下划线。且不要使用glb开头,此为全局变量保留设置,长度不超过32位字符。

重要
  • 如果variable_name与某个全局变量名称一致, 会被系统优先视作引用了全局变量, 可在参数配置中转换类型为本地变量。

  • 如果variable_name与某个生产项目或者生产板块的名称一致, 会被系统强制视作为空间名称变量。

  • 如果${variable_name}是代码内容的一部分, 而不是变量, 可在参数类型配置中设置该变量为非变量

  • 如果${variable_name}是跨节点变量, 可在参数类型配置中设置该变量为跨节点变量

  • 若需将本地变量的参数值设置为空值。可以单击参数值处的设为空值

跨节点变量

指当前变量为上游节点透传给本对象节点的变量参数。可用于以下场景:

  • 上游节点A将某一个变量${var}传递给下游节点B, ${var}被B的计算逻辑引用。

  • 上游节点A将某一个变量${var}传递给下游节点B,B将根据${var}的取值来决定运行策略。

重要

引入跨节点参数变量后,对当前节点补数据时,建议同时补输出跨节点参数的上游节点和当前节点。

变量赋值

日期时间计算表达式

为本地变量赋值时, 如果需要针对日期时间进行运算,Dataphin支持以下快捷日期计算操作符:

  • Dataphin 提供基于两个日期时间的运算

    • 基于业务日期${bizdate}的方式:${(yyyyMMdd|yyyy/MM/dd|yyyy-MM-dd) (+|-) n}

    • 基于预计执行时间(即节点任务设置的起调时间)的方式:$[(yyyyMMddHHmmss|yyyy/MM/dd HH:mm:ss|yyyy-MM-dd HH:mm:ss) (+|-) n]

  • 日期时间各部分的标识符号

    • :yyyy。

    • :mm(日期时间只到天粒度时可使用)或MM(日期时间到分钟粒度时必须使用大写,以便和分钟mm进行区分)。

    • :dd。

    • 小时:HH。

    • 分钟:mm。

    • :ss。

  • 日期时间运算的单位 (interval) 是天

    • 1 小时使用1/24来表示,5小时为5/24。

    • 1 分钟使用1/24/60来表示,30分钟为30/24/60。

示例参考

当前日期

基于业务日期(T-1)的配置

实际值

基于预计执行时间(T)的配置

实际值

2018-01-10

${yyyymmdd}

20180109

$[yyyymmdd]

20180110

2018-01-10

${yyyyMMdd}

20180109

$[yyyyMMdd]

20180110

2018-01-10

${yyyymmdd -1}

20180108

$[yyyymmdd -1]

20180109

2018-01-10

${yyyymmdd -7}

20180102

$[yyyymmdd -7]

20180103

2018-01-10

${yyyy-mm-dd}

2018-01-09

$[yyyy-mm-dd]

2018-01-10

2018-01-10

${yyyy-mm}

2018-01

$[yyyy-mm]

2018-01

2018-01-10

${yyyy-mm -1}

2017-12

$[yyyy-mm -1]

2017-12

2018-01-10

${yyyy}

2018

$[yyyy]

2018

2018-01-10

${yyyy+1}

2019

$[yyyy + 1]

2019

2018-01-10

${yyyy/MM/dd HH:mm:ss}

2018/01/09 00:00:00

$[yyyy/MM/dd HH:mm:ss]

2018/01/10 00:00:00

2018-01-10

${yyyy/MM/dd HH:mm:ss-1/24}

2018/01/08 23:00:00

$[HH:mm:ss-5/24/60]

23:55:00