参数配置

通过参数配置,可对Notebook或SQL查询中的SQL代码中所使用的参数变量进行赋值,在SQL代码运行时,参数变量可以自动被替换为相应的值。本文为您介绍如何配置参数。

操作步骤

  1. 在Dataphin首页,单击顶部菜单栏分析,进入分析平台。

  2. 按照下图操作指引,选择您需配置参数的任务,并单击image..png进入参数配置对话框。

    Notebook和SQL查询任务的参数配置操作路径相同,下文以SQL查询任务为例。

    image.png

  3. 在属性面板的参数配置对话框中,配置任务的参数信息。

    字段

    描述

    数据源模式

    数据源SQL查询支持配置数据源模式。若数据源为Dev-Prod模式,支持选择开发生产;若数据源为Basic模式,仅支持选择生产。

    重要

    请谨慎选择生产,语句执行将改变生产环境数据。

    参数名称

    参数名称为您在SQL代码中定义的变量名称。在SQL中您可以通过表达式方式新增参数、系统将自动加载SQL中已有的参数。表达式格式${变量名}

    参数类型

    Dataphin中存在以下参数类型分为全局变量、空间名称变量、本地变量。

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

      说明

      出于数据安全考虑,账号密码类型的全局变量在此无法使用,将被视作本地变量,需要手动赋值。

      image.png

    • 空间名称变量:${生产项目名称}${生产板块名称}

    • 本地变量:无须事先声明和定义,直接在代码中使用${variable_name},即可定义一个名字为variable_name的本地变量。如下图所示:

      image..png

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

      重要

      分析平台内不支持空间名称变量。如果variable_name与某个生产项目或者生产板块的名称一致,会被视作本地变量。

    参数值

    请输入变量所需替换的参数值。最长支持256位,支持填充空值。您也可以针对日期时间进行运算。具体操作,请参见附录:日期时间计算表达式

    操作

    支持转为本地变量和忽略操作。

    • 转为本地变量:参数配置时如果您的变量与某个全局变量名称一致, 会被系统优先视作引用了全局变量,您可在参数配置中单击image图标按钮,转换类型为本地变量或将本地变量转换为全局变量。

      image..png

    • 忽略:如果您代码中${变量名}是代码内容的一部分, 而不是变量, 可在参数配置中单击image图标按钮忽略该变量。

      image..png

  4. 单击确定

    重要

    单个SQL运行时,仅需配置当前SQL中未配置的参数,且配置的值将在该任务中全局生效。

附录:日期时间计算表达式

为本地变量赋值时, 如果需要针对日期时间进行运算,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