最近更新时间:2023.06.30 19:40:28
首次发布时间:2022.09.26 20:53:58
通过在开发、生产环境,定义同一项目参数的不同内容值,可轻松实现开发、生产环境不同参数值的替换。
仅项目管理员可以配置项目参数信息。
登录 DataLeap 控制台。
单击左侧导航栏的项目管理,进入项目管理页面。
勾选我管理的选项,显示由您管理的项目列表。
单击项目列表中要管理项目操作列的任一按钮,进入项目控制台。
单击左侧导航栏的参数信息,进入参数信息页面。
按需配置项目级参数。
新建参数
单击新建参数按钮,设置参数信息后,单击确定按钮,完成创建。
相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
参数 | 说明 |
---|---|
*参数名称 | 任务中使用的参数名称。 |
*开发环境参数值 | 任务调试时参数变量传入的值。 |
*生产环境参数值 | 任务上线后参数变量传入的值。 |
描述 | 参数的描述信息,以便后续管理。 |
编辑参数
单击列表中某个参数信息操作列的编辑按钮,在弹出的更新参数内容窗口中,修改参数信息。
单击确定按钮,在弹出的变更影响窗口中,可查看所有引用该参数的离线和实时任务列表。
单击确定按钮,完成修改。
说明
仅当参数存在关联任务且修改其生产环境参数值时,才会弹出变更影响窗口进行确认。
实时任务会自动进行上线前的检查,并可单击任务左侧的折叠按钮查看具体检查项的通过情况。
若检查全部通过,可直接确认修改。
若存在检查未通过项,则勾选“当前存在未通过检查项,我已知晓风险”后,仍可确认修改。
参数更新后,引用该参数的任务将受到影响,其中离线任务即时生效,实时任务需重启后生效。
删除参数
单击列表中某个参数信息操作列的删除按钮,在弹出的确认对话框中,单击是按钮,即可删除该参数信息。
查看关联任务
单击列表中某个参数信息关联任务列的流任务或批任务按钮,可以跳转到相应的任务运维页面,查看该参数关联的实时或离线任务。
用户希望同一套代码能实现在不同执行环境下,自动区分不同的引擎环境参数和时间变量参数。下面以湖仓一体分析服务(LAS)引擎为例,讲解如何利用项目参数,来区分不同环境库和时间格式的查询。
创建开发测试、生产两个环境的 LAS 库。创建 LAS 库的操作说明请参见 DB管理。
测试环境库:test_dev
生产环境库:test_prod
在对应库下,分别创建一个数据表 test_table_1017。创建 LAS 表的操作说明请参见 Table管理。
非分区字段:包含 3 个字段,名称自行设定。
分区字段:名称设置为 datetimes。
打开或创建一个 LAS SQL 任务,运行如下代码示例,向两个数据表中各插入一条数据。配置任务的操作说明请参见 LAS SQL。
insert into test_dev.test_table_1017 partition(datetimes = '20221017') values('1', 'libai', 'shanghai'); insert into test_prod.test_table_1017 partition(datetimes = '2022-10-17') values('1', 'libai', 'shanghai');
请在同一个项目下执行以下参数配置操作。
新建参数
在参数信息页面,新建两个参数。
参数名称分别为 argtest1、pro_env。
开发环境参数值分别为 ${date}、test_dev。
生产环境参数值分别为 ${DATE}、test_prod。
使用参数
选择数据开发 > 任务开发, 创建一个 LAS SQL 任务,名称为项目输入参数。
在调度设置页面,设置好必填参数后,手动添加两个输入参数。
参数名称分别为 arg、env。
类型分别选择项目。
来源分别选择 argtest1、pro_env。
编辑代码
--定义该任务的输入、输出参数,实现上、下游任务之间的内容传递,可通过{{输入参数名}}的方式,在脚本中使用任务的输入参数。 SELECT * from {{env}}.test_table_1017 WHERE datetimes='{{arg}}' ;
调试运行
单击调试图标按钮,在弹出的窗口中,分别设置开发和生产环境的参数值后,单击提交测试按钮。
开发环境:arg 设置为 ${date},env 设置为 test_dev。
生产环境:arg 设置为 ${DATE},env 设置为 test_prod。
查看替换结果
代码运行成功后,在日志页面,可以查看替换结果。
开发环境下的解析执行语句为:
SELECT * from test_dev.test_table_1017 WHERE datetimes='20230309';
生产环境下的解析执行语句为:
SELECT * from test_prod.test_table_1017 WHERE datetimes='2023-03-09';
说明
解析出的时间为获取业务时间日期。欲了解更多时间变量,请参见平台时间变量与常量说明或者页面右上角的参数说明。