
# FlinkServer变量管理
#### 操作场景
在Flink SQL作业中，建表语句的WITH子句通常包含数据库连接地址、用户名、密码等敏感信息或频繁变更的配置项。如果将这些值直接硬编码在SQL中，不仅存在敏感信息泄露风险，而且当配置变更时需要逐个修改所有SQL作业，维护成本高。FlinkServer支持变量管理功能，可以将这些配置值定义为变量，在SQL中通过变量名引用，实现配置与逻辑解耦，同时支持密文类型保护敏感信息。
#### 约束与限制
- 变量只能在SQL作业中使用，且只能在建表语句的WITH属性中使用。
- 变量仅在当前应用生效，不支持跨应用使用。
- 私有变量仅创建者可以查看、编辑、使用和删除。
- 密文变量无法查看原值。
- 本章节适用于MRS 3.6.0-LTS.1及之后版本。
 
#### 创建变量
1. 访问Flink WebUI，请参考[访问FlinkServer WebUI界面](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24019.html)。
2. 选择"系统管理 \> 变量管理"，进入变量管理页面。
3. 单击"新增变量"，参考[表1 新增变量信息]填写变量信息，配置完成后，单击"确定"。
   
    表1新增变量信息 
   | 参数名称 | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 变量   | 变量的名称和变量值，变量名称在SQL中通过${变量名}方式引用。 名称只能包含数字、字母、下划线，输入长度不能超过32个字符。                                                                                                                                                                                                                                                                                                                                                            |
   | 类型   | 密文或者明文。 - 密文无法查看，显示为\*\*\*\*\*\*，适用于密码等敏感信息。  - 明文变量值可直接查看，适用于非敏感配置项。                             |
   | 使用范围 | 设置变量的可见范围，私有或者公开。 - 公开变量其他有权限的用户可以查看编辑使用删除。  - 私有变量只有创建用户可以查看编辑使用删除。   变量的"类型"为"密文"时，建议将密文的使用范围设置为"私有"。 |
   | 描述   | 变量的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      
   变量创建完成后，在变量管理列表中查看新创建的变量，确认变量名称、类型和使用范围显示正确。密文变量的值应显示为\*号。
   
   
4. 变量创建完成后，可以在SQL作业中建表的WITH属性中使用已创建的变量，示例如下： 
   ```
   CREATE TABLE MyUserTable(
     c_customer_sk INTEGER,
     c_customer_name VARCHAR(32)
   ) WITH(
     'connector' = 'jdbc',
     'url' = '${url}',
     'table-name' = 'customer_t1',
     'username' = '${user}',
     'password' = '${password}'
   );
   ```
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   "url"、"user"和"password"是[3]创建的变量的变量名。
   
   
 
