数据湖探索 DLI-Flink Opensource SQL使用DEW管理访问凭据:示例

时间:2024-04-18 20:33:15

示例

本例以通过DataGen表产生随机数据并输出到Mysql结果表中为例,介绍Flink Opensource SQL使用DEW管理访问凭据的配置方法。

  1. 创建DLI与Mysql的增强型跨源连接。详细步骤请参考创建增强型跨源连接
  2. 创建DLI访问DEW的委托并完成委托授权。详细步骤请参考自定义DLI委托权限
  3. 在DEW创建通用凭证。详细操作请参考创建通用凭据
    1. 登录DEW管理控制台
    2. 选择“凭据管理”,进入“凭据管理”页面。
    3. 单击“创建凭据”。配置凭据基本信息
    4. 本例配置Mysql的凭据值:
      • "MySQLUsername":"demo"
      • "MySQLPassword":"*******",其中"*******"为Mysql的访问密码
  4. Flink作业编辑框中输入具体的作业SQL,本示例作业参考如下。
    create table dataGenSource(
      user_id string,
      amount int
    ) with (
      'connector' = 'datagen',
      'rows-per-second' = '1', --每秒生成一条数据
      'fields.user_id.kind' = 'random', --为字段user_id指定random生成器
      'fields.user_id.length' = '3' --限制user_id长度为3
    );
    
    CREATE TABLE jdbcSink ( 
      user_id string,
      amount int
     ) 
    WITH (  
     'connector' = 'jdbc',  
     'url' = 'jdbc:mysql://MySQLAddress:MySQLPort/flink',--其中url中的flink表示MySQL中orders表所在的数据库名  
     'table-name' = 'orders',  
     'username' = 'MySQLUsername',  -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLUsername,它的值为用户的敏感信息。
     'password' = 'MySQLPassword',  -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLPassword,它的值为用户的敏感信息。
     'sink.buffer-flush.max-rows' = '1',
     'dew.endpoint'='kms.cn-xxxx.myhuaweicloud.com', --使用的DEW服务所在的endpoint信息
     'dew.csms.secretName'='secretInfo', --DEW服务通用凭据的凭据名称
     'dew.csms.decrypt.fields'='username,password', --其中username,password字段值,需要利用DEW凭证管理,进行解密替换。
     'dew.csms.version'='v1'
    );
    
    insert into jdbcSink select * from dataGenSOurce;
support.huaweicloud.com/devg-dli/dli_09_0210.html