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

时间:2024-07-01 14:34:02

示例

GaussDB (DWS)数据库中,创建一个外表。参数信息如下所示:

  • 数据格式参数访问密钥(AK和SK)
    • 用户获取OBS访问协议对应的AK值(access_key)。
    • 用户获取OBS访问协议对应的SK值 (secret_access_key)。

    请根据用户实际获取的access_key和secret_access_key的密钥替换示例中的对应内容。

  • 设置数据格式参数
    • 数据源文件格式(format)为“ CS V”。
    • 编码格式(encoding)为“UTF-8”。
    • 是否使用加密(encrypt),默认为 “off”。
    • 字段分隔符(delimiter)为“,”。
    • 引号字符(quote)使用默认值双引号。
    • null(数据文件中空值的表示)为“一个没有引号的空字符串”。
    • header(指定导出数据文件是否包含标题行)为“false”,当数据文件第一行不是标题行(即表头),不需要设置。

      OBS导出数据时不支持该参数为true,使用缺省值false。

  • 设置导入时的容错性参数
    • PER NODE REJECT LIMIT 'value' 为“unlimited”,即接受导入过程中所有数据格式错误。
    • LOG INTO error_table_name指定为“product_info_err”,将数据导入过程中出现的数据格式错误信息写入表“product_info_err”。
    • fill_missing_fields为“true”,即当数据加载时,若数据源文件中一行数据的最后一个字段缺失,则把最后一个字段的值设置为NULL,不报错。
    • ignore_extra_data为“true”,当数据加载时,若数据源文件比外表定义列数多,则忽略行尾多出来的列,不报错。

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
DROP FOREIGN TABLE product_info_ext;

CREATE FOREIGN TABLE product_info_ext
(
    product_price                integer        not null,
    product_id                   char(30)       not null,
    product_time                 date           ,
    product_level                char(10)       ,
    product_name                 varchar(200)   ,
    product_type1                varchar(20)    ,
    product_type2                char(10)       ,
    product_monthly_sales_cnt    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)                   
) 
SERVER gsmpp_server 
OPTIONS(

LOCATION 'obs://mybucket/input_data/product_info | obs://mybucket02/input_data/product_info',
FORMAT 'CSV' ,
DELIMITER ',',
encoding 'utf8',
header 'false',
AC CES S_KEY 'access_key_value_to_be_replaced',
SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',
fill_missing_fields 'true',
ignore_extra_data 'true'
)
READ ONLY 
LOG INTO product_info_err 
PER NODE REJECT LIMIT 'unlimited';

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

1
CREATE FOREIGN TABLE
support.huaweicloud.com/migration-dws/dws_15_0009.html