数据仓库服务 GAUSSDB(DWS)-示例:多表并发导出操作步骤

时间:2024-11-05 19:20:00

多表并发导出操作步骤

通过创建的两个外表,将数据库中的两个表分别导出至OBS的桶中。

  1. 用户通过管理控制台登录到OBS数据服务器。在OBS数据服务器上,分别创建数据文件存放的两个桶“/input-data1”“/input-data2”,并创建每个桶下面的data目录“/input-data1/data”“/input-data2/data”。
  2. GaussDB (DWS)数据库上,创建外表tpcds.customer_address_ext1和tpcds.customer_address_ext2分别用于OBS服务器接收导出的数据。

    规划OBS与集群处于同一区域,需要导出的表为已存在的表tpcds.customer_address和tpcds.customer_demographics。

    其中设置的导出信息如下所示:
    • 由于OBS服务器上的数据源文件存放目录为“/input-data1/data/ ”和/input-data2/data/ ,所以设置tpcds.customer_address_ext1参数“location”为“obs://input-data1/data/ ”,设置tpcds.customer_address_ext2参数“location”为“ obs://input-data2/data/”。

    设置的数据格式信息是根据表从GaussDB(DWS)中导出时需要的详细数据格式参数信息指定的,参数设置如下所示:

    • 数据源文件格式(format)为“ CS V”。
    • 编码格式(encoding)为“UTF-8”。
    • 字段分隔符(delimiter)为“E'\x08'”。
    • 是否使用加密(encrypt),默认为“off”。
    • (必选)用户获取OBS访问协议对应的AK值(access_key )。
    • (必选)用户获取OBS访问协议对应的SK值(secret_access_key)。

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

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

    认证用的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
    CREATE FOREIGN TABLE tpcds.customer_address_ext1
    (
    ca_address_sk             integer               ,
    ca_address_id             char(16)              ,
    ca_street_number          char(10)                      ,
    ca_street_name            varchar(60)                   ,
    ca_street_type            char(15)                      ,
    ca_suite_number           char(10)                      ,
    ca_city                   varchar(60)                   ,
    ca_county                 varchar(30)                   ,
    ca_state                  char(2)                       ,
    ca_zip                    char(10)                      ,
    ca_country                varchar(20)                   ,
    ca_gmt_offset             decimal(5,2)                  ,
    ca_location_type          char(20)
    )
    SERVER gsmpp_server
    OPTIONS(LOCATION 'obs://input-data1/data/',
    FORMAT 'CSV',
    ENCODING 'utf8', 
    DELIMITER E'\x08',
    ENCRYPT 'off',
    AC CES S_KEY 'access_key_value_to_be_replaced',
    SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced' 
    )Write Only;
    
     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
    CREATE FOREIGN TABLE tpcds.customer_address_ext2
    (
    ca_address_sk             integer               ,
    ca_address_id             char(16)              ,
    ca_address_name           varchar(20)           ,
    ca_address_code           integer               ,
    ca_street_number          char(10)                      ,
    ca_street_name            varchar(60)                   ,
    ca_street_type            char(15)                      ,
    ca_suite_number           char(10)                      ,
    ca_city                   varchar(60)                   ,
    ca_county                 varchar(30)                   ,
    ca_state                  char(2)                       ,
    ca_zip                    char(10)                      ,
    ca_country                varchar(20)                   ,
    ca_gmt_offset             decimal(5,2)                  
    )
    SERVER gsmpp_server
    OPTIONS(LOCATION 'obs://input_data2/data/',
    FORMAT 'CSV',
    ENCODING 'utf8', 
    DELIMITER E'\x08', 
    QUOTE E'\x1b',
    ENCRYPT 'off',
    ACCESS_KEY 'access_key_value_to_be_replaced',
    SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced'
    )Write Only;
    

  3. GaussDB(DWS)数据库上,将数据表tpcds.customer_address和tpcds.warehouse并发导出到外表tpcds.customer_address_ext1和tpcds.customer_address_ext2中。

    1
    INSERT INTO tpcds.customer_address_ext1 SELECT * FROM tpcds.customer_address;
    
    1
    INSERT INTO tpcds.customer_address_ext2 SELECT * FROM tpcds.warehouse;
    

support.huaweicloud.com/migration-dws/dws_15_0071.html