文档首页/ 数据湖探索 DLI/ 用户指南/ 创建DLI全局变量
更新时间:2024-07-27 GMT+08:00

创建DLI全局变量

什么是全局变量

DLI支持在管理控制台设置全局变量,将作业开发过程中频繁使用的变量设置为全局变量,可以避免在编辑作业过程中重复定义,减少开发与维护成本。通过使用全局变量可以替换长难复杂变量,简化复杂参数,提升SQL语句可读性。

本节操作为您介绍如何创建全局变量。

创建全局变量

  1. 在DLI控制台左侧导航栏中单击“全局配置 > 全局变量”。
  2. 在“全局变量”页面,单击右上角“创建变量”,可创建新的全局变量。
    图1 创建全局变量
    表1 全局变量参数说明

    参数名称

    描述

    变量名称

    所创建的全局变量名称。

    变量值

    全局变量的值。

  3. 创建全局变量之后,在SQL语法中使用“{{xxxx}}”代替设置为全局变量的参数值即可,其中“xxxx”为变量名称。例如,在建表语句中,设置表名为全局变量abc,即可用{{abc}}代替实际的表名。
    create table {{table_name}} (String1 String, int4 int, varchar1 varchar(10))
      partitioned by (int1 int,int2 int,int3 int)

    不推荐在建表语句的OPTIONS关键字中使用全局变量。

    相关操作:

    • 修改全局变量
      在“全局变量”页面,单击变量“操作”列中的“修改”,可修改对应的变量值。

      如果同账号同项目下存在多个相同名称的全局变量时,需要将多余相同名称的全局变量删除,保证同账号同项目下唯一,此时具备该全局变量修改权限的用户均可以修改对应的变量值。

    • 删除全局变量

      在“全局变量”页面,单击变量“操作”列中的“删除”,可删除对应的变量。

      • 如果同账号同项目下存在多个相同名称的全局变量,优先删除用户自建的。如果仅存在唯一名称的全局变量,则具备删除权限即的用户均可删除该全局变量。
      • 变量删除后,SQL中将无法使用该变量。

全局变量权限管理

针对不同用户,可以通过权限设置分配不同的全局变量,不同用户之间互不影响。管理员用户和全局变量的所有者拥有所有权限,不需要进行权限设置且其他用户无法修改其全局变量权限。

给新用户设置全局变量权限时,该用户所在用户组的所属区域需具有Tenant Guest权限。关于Tenant Guest权限的介绍和开通方法,详细参见《权限策略》和《统一身份认证服务用户指南》中的创建用户组

  • 全局变量用户授权
    1. 单击“全局配置 > 全局变量”页面,单击全局变量“操作”列中的“权限设置”,进入“用户权限信息”页面,可以对用户进行全局变量的授权、设置权限和回收权限。
    2. 单击页面右上角“授权”可对用户进行全局变量授权。
      图2 全局变量授权
      表2 全局变量参数说明

      参数名称

      描述

      用户名

      被授权的IAM用户的名称。

      说明:

      该用户名称是已存在的IAM用户名称。

      权限设置

      • 更新:更新该全局变量。
      • 删除:删除该全局变量。
      • 赋权:当前用户可将全局变量的权限赋予其他用户。
      • 回收:当前用户可回收其他用户具备的该全局变量的权限,但不能回收该全局变量所有者的权限。
      • 查看其他用户具备的权限:当前用户可查看其他用户具备的该全局变量的权限。
  • 设置全局变量权限

    单击对应子用户“操作”列中的“权限设置”可修改该用户的权限。详细权限描述如表2所示。

    当“权限设置”中的选项为灰色时,表示您不具备修改此全局变量的权限。可以向管理员用户、组所有者等具有赋权权限的用户申请“全局变量”权限。

  • 回收全局变量权限

    单击对应子用户“操作”列中的“回收”将删除该用户的权限。该子用户将不具备该全局变量的任意权限。