数据仓库服务 GAUSSDB(DWS)-创建OBS外表:示例一

时间:2023-11-22 14:18:15

示例一

例如,在GaussDB(DWS)数据库中,创建一个format参数为text的只写外表,用于导出text文件。设置的参数信息如下所示:

  • location

    规划导出数据中,通过获取数据源文件的OBS路径已经获取到数据源文件的OBS路径。

    因此,设置参数“location”为:

    location 'obs://mybucket/output_data/',
  • 访问密钥(AK和SK)
    • 用户获取OBS访问协议对应的AK值(access_key)。
    • 用户获取OBS访问协议对应的SK值 (secret_access_key)。

    用户在创建用户时已经获取了access_key和secret_access_key的密钥,请根据实际密钥替换示例中的内容。

  • 设置数据格式参数
    • 数据源文件格式(format)为TEXT。
    • 编码格式(encoding)为UTF-8。
    • 是否使用加密(encrypt),默认为“off”。
    • 字段分隔符(delimiter)为“|”。

根据以上信息,创建的外表如下所示:

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
DROP FOREIGN TABLE IF EXISTS product_info_output_ext1;
CREATE FOREIGN TABLE product_info_output_ext1
(
 c_bigint bigint,
 c_char char(30),
 c_varchar varchar(30),
 c_nvarchar2 nvarchar2(30) ,
 c_data date,
 c_time time ,
 c_test varchar(30)) 
 server gsmpp_server 
 options (
 LOCATION 'obs://mybucket/output_data/', 
 ACCESS_KEY 'access_key_value_to_be_replaced',
 SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced'
 format 'text',
 delimiter '|',
 encoding 'utf-8',
 encrypt 'on' 
  )
 WRITE ONLY;

返回如下信息表示创建成功:

CREATE FOREIGN TABLE
support.huaweicloud.com/devg-820-dws/dws_04_0253.html