FlinkServer变量管理
操作场景
在Flink SQL作业中,建表语句的WITH子句通常包含数据库连接地址、用户名、密码等敏感信息或频繁变更的配置项。如果将这些值直接硬编码在SQL中,不仅存在敏感信息泄露风险,而且当配置变更时需要逐个修改所有SQL作业,维护成本高。FlinkServer支持变量管理功能,可以将这些常量定义为变量,在SQL中通过变量名引用,实现配置与逻辑解耦,同时支持密文类型保护敏感信息。
约束与限制
- 变量只能在SQL作业中使用,且只能在建表语句的WITH属性中使用。
- 变量仅在当前应用生效,不支持跨应用使用。
- 私有变量仅创建者可以查看、编辑、使用和删除。
- 密文变量无法查看原值。
- 本章节适用于MRS 3.6.0-LTS.1及以后版本。
创建变量
- 访问Flink WebUI,请参考访问FlinkServer WebUI界面。
- 选择“系统管理 > 变量管理”,进入变量管理页面。
- 单击“新增变量”,参考表1 新增变量信息填写变量信息,配置完成后,单击“确定”。
表1 新增变量信息 参数名称
参数描述
变量
变量的名称和变量值,变量名称在SQL中通过${变量名}方式引用。
名称只能包含数字、字母、下划线,输入长度不能超过32个字符。
类型
密文或者明文。
- 密文无法查看,显示为******,适用于密码等敏感信息。
- 明文变量值可直接查看,适用于非敏感配置项。
使用范围
设置变量的可见范围,私有或者公开。
- 公开变量其他有权限的用户可以查看编辑使用删除。
- 私有变量只有创建用户可以查看编辑使用删除。
变量的“类型”为“密文”时,建议将密文的使用范围设置为“私有”。
描述
变量的描述信息。
变量创建完成后,在变量管理列表中查看新创建的变量,确认变量名称、类型和使用范围显示正确。密文变量的值应显示为星号。
- 变量创建完成后,可以在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}' );
