
# 管理DLI全局变量
#### 什么是全局变量
DLI支持在管理控制台设置全局变量，将作业开发过程中频繁使用的变量设置为全局变量，可以避免在编辑作业过程中重复定义，减少开发与维护成本。通过使用全局变量可以替换长难复杂变量，简化复杂参数，提升SQL语句可读性。
本节操作为您介绍如何创建全局变量。
#### 创建全局变量
1. 在DLI控制台左侧导航栏中单击"全局配置 \> 全局变量"。
2. 在"全局变量"页面，单击右上角"创建变量"，可创建新的全局变量。
   表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)
   ```
   ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
   不推荐在建表语句的OPTIONS关键字中使用全局变量。
   **相关操作：**
   - **修改全局变量**
     在"全局变量"页面，单击变量"操作"列中的"修改"，可修改对应的变量值。
     ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
     如果同账号同项目下存在多个相同名称的全局变量时，需要将多余相同名称的全局变量删除，保证同账号同项目下唯一，此时具备该全局变量修改权限的用户均可以修改对应的变量值。
     
   
   - **删除全局变量**
     在"全局变量"页面，单击变量"操作"列中的"删除"，可删除对应的变量。
     ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
     - 如果同账号同项目下存在多个相同名称的全局变量，优先删除用户自建的。如果仅存在唯一名称的全局变量，则具备删除权限即的用户均可删除该全局变量。
     
     - 变量删除后，SQL中将无法使用该变量。
       
    
 
#### 全局变量权限管理
针对不同用户，可以通过权限设置分配不同的全局变量，不同用户之间互不影响。管理员用户和全局变量的所有者拥有所有权限，不需要进行权限设置且其他用户无法修改其全局变量权限。
给新用户设置全局变量权限时，该用户所在用户组的所属区域需具有Tenant Guest权限。关于Tenant Guest权限的介绍和开通方法，详细参见《[权限策略](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)》和《统一身份认证服务用户指南》中的[创建用户组](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)。
- **全局变量用户授权**
  1. 单击"全局配置 \> 全局变量"页面，单击全局变量"操作"列中的"权限设置"，进入"用户权限信息"页面，可以对用户进行全局变量的授权、设置权限和回收权限。
  
  2. 单击页面右上角"授权"可对用户进行全局变量授权。
     图1全局变量授权   
     ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000001996928457.png "点击放大")
      表2全局变量参数说明 
     | 参数名称 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
     |:---|:---|
     | 用户名  | 被授权的IAM用户的名称。 说明： 该用户名称是已存在的IAM用户名称。                                                                                                                                                                                                                                                                                                                                                                                           |
     | 权限设置 | - 更新：更新该全局变量。  - 删除：删除该全局变量。  - 赋权：当前用户可将全局变量的权限赋予其他用户。  - 回收：当前用户可回收其他用户具备的该全局变量的权限，但不能回收该全局变量所有者的权限。  - 查看其他用户具备的权限：当前用户可查看其他用户具备的该全局变量的权限。   |
        
     
   
- **设置全局变量权限**
  单击对应子用户"操作"列中的"权限设置"可修改该用户的权限。详细权限描述如[表2]所示。
  当"权限设置"中的选项为灰色时，表示您不具备修改此全局变量的权限。可以向管理员用户、组所有者等具有赋权权限的用户申请"全局变量"权限。
  
- **回收全局变量权限**
  单击对应子用户"操作"列中的"回收"将删除该用户的权限。该子用户将不具备该全局变量的任意权限。
  
 
