通过参数配置,可对Notebook或SQL查询中的SQL代码中所使用的参数变量进行赋值,在SQL代码运行时,参数变量可以自动被替换为相应的值。本文为您介绍如何配置参数。
操作步骤
在Dataphin首页,单击顶部菜单栏分析,进入分析平台。
按照下图操作指引,选择您需配置参数的任务,并单击进入参数配置对话框。
Notebook和SQL查询任务的参数配置操作路径相同,下文以SQL查询任务为例。
在属性面板的参数配置对话框中,配置任务的参数信息。
字段
描述
数据源模式
数据源SQL查询支持配置数据源模式。若数据源为Dev-Prod模式,支持选择开发或生产;若数据源为Basic模式,仅支持选择生产。
重要请谨慎选择生产,语句执行将改变生产环境数据。
参数名称
参数名称为您在SQL代码中定义的变量名称。在SQL中您可以通过表达式方式新增参数、系统将自动加载SQL中已有的参数。表达式格式:
${变量名}
。参数类型
Dataphin中存在以下参数类型分为全局变量、空间名称变量、本地变量。
全局变量:在Dataphin规划->公共定义->全局变量中事先声明定义的变量,可以在租户内任何节点或代码中引用,系统初始内置的全局变量有
${bizdate}
。说明出于数据安全考虑,账号密码类型的全局变量在此无法使用,将被视作本地变量,需要手动赋值。
空间名称变量:即
${生产项目名称}
和${生产板块名称}
。本地变量:无须事先声明和定义,直接在代码中使用
${variable_name}
,即可定义一个名字为variable_name
的本地变量。如下图所示:变量名建议只使用数字、字母和下划线。且不要使用glb开头,此为全局变量保留设置,长度不超过32位字符。
重要分析平台内不支持空间名称变量。如果
variable_name
与某个生产项目或者生产板块的名称一致,会被视作本地变量。
参数值
请输入变量所需替换的参数值。最长支持256位,支持填充空值。您也可以针对日期时间进行运算。具体操作,请参见附录:日期时间计算表达式。
操作
支持转为本地变量和忽略操作。
转为本地变量:参数配置时如果您的变量与某个全局变量名称一致, 会被系统优先视作引用了全局变量,您可在参数配置中单击图标按钮,转换类型为本地变量或将本地变量转换为全局变量。
忽略:如果您代码中
${变量名}
是代码内容的一部分, 而不是变量, 可在参数配置中单击图标按钮忽略该变量。
单击确定。
重要单个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 |