数据仓库服务 GAUSSDB(DWS)-CREATE FOREIGN TABLE (SQL on OBS or Hadoop):示例4(仅云原生3.0版本支持)

时间:2024-04-25 14:28:58

示例4(仅云原生3.0版本支持)

通过partsupp外表往obs文件系统读取数据。

  1. 创建obs server。

    认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。

    1
    2
    3
    4
    5
    6
    CREATE SERVER obs_srv FOREIGN DATA WRAPPER dfs_fdw OPTIONS (
        address 'xxx',
        type 'obs',
        access_key 'xxx',
        secret_access_key 'xxx'
    );
    
  2. 创建obs外表partsupp,使用disk cache中的冷缓存。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    CREATE FOREIGN TABLE PARTSUPP
    (
       PS_PARTKEY     BIGINT NOT NULL,
       PS_SUPPKEY     BIGINT NOT NULL,
       PS_AVAILQTY    BIGINT NOT NULL,
       PS_SUPPLYCOST  DECIMAL(15,2)  NOT NULL,
       PS_COMMENT     VARCHAR(199) NOT NULL
    ) SERVER obs_srv options (
        encoding     'utf-8',
        format       'parquet',
        foldername   'xxx',
        cache_policy 'NONE'
    ) READ ONLY DISTRIBUTE BY ROUNDROBIN;
    
  3. 通过外表partsupp往obs上读取数据。
    1
    SELECT * FROM PARTSUPP;
    
support.huaweicloud.com/sqlreference-820-dws/dws_06_0161.html