文档首页 > > 开发指南> 导出数据> 使用GDS导出数据到远端服务器> 示例

示例

分享
更新时间: 2019/06/24 GMT+08:00

示例:Remote模式导出

规划数据服务器与集群处于同一内网,数据服务器IP为192.168.0.90,导出数据文件格式为CSV,所以规划的并行导出模式为Remote模式。

Remote模式并行导出数据操作示例如下所示:

  1. 以root用户登录GDS数据服务器,创建数据文件存放目录“/output_data”,启动gds_user用户及所属的用户组。
    mkdir -p /output_data
  2. (可选)创建用户及其所属的用户组。此用户用于启动GDS。若该类用户及所属用户组已存在,可跳过此步骤。
    groupadd gdsgrp
    useradd -g gdsgrp gds_user
  3. 修改数据服务器上数据文件目录“/output_data”的属主为gds_user。
    chown -R gds_user:gdsgrp /output_data 
  4. 以gds_user用户登录数据服务器上分别启动GDS。
    其中GDS安装路径为“ /opt/bin/dws/gds”,导出数据文件存放在“/output_data/”目录下,数据服务器所在IP为192.168.0.90,GDS监听端口为5000,以后台方式运行。
    /opt/bin/dws/gds/gds -d /output_data -p 192.168.0.90:5000 -H 10.10.0.1/24 -D
  5. 在数据库中创建外表foreign_tpcds_reasons用于接收数据服务器上的数据。

    其中设置的导出模式信息如下所示:

    • 由于启动GDS时,设置的导出数据文件存放目录为“/output_data/”,GDS监听端口为5000。创建的导出数据文件存放目录为“/output_data/”。所以设置参数“location”为“gsfs://192.168.0.90:5000/”。

    设置导出的数据文件格式信息如下所示:

    • 数据文件格式(format)为CSV。
    • 编码格式(encoding)为UTF-8。
    • 字段分隔符(delimiter)为E'\x08'。
    • 引号字符(quote)为0x1b。
    • 数据文件中空值(null)为没有引号的空字符串。
    • 逃逸字符(escape)为默认值双引号。
    • 数据文件是否包含标题行(header)为默认值false,即导出时数据文件第一行被识别为数据。

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

    CREATE FOREIGN TABLE foreign_tpcds_reasons
    (
      r_reason_sk    integer        not null,
      r_reason_id    char(16)       not null,
      r_reason_desc  char(100)
    ) SERVER gsmpp_server OPTIONS (LOCATION 'gsfs://192.168.0.90:5000/', FORMAT 'CSV',ENCODING 'utf8',DELIMITER E'\x08', QUOTE E'\x1b', NULL '') WRITE ONLY;
  6. 在数据库上,通过外表foreign_tpcds_reasons,将数据导出到数据文件中。
    INSERT INTO foreign_tpcds_reasons SELECT * FROM reasons;
  7. 待数据导出完成后,以gds_user用户登录数据服务器,停止GDS。
    其中GDS进程号为128954。
    ps -ef|grep gds
    gds_user 128954      1  0 15:03 ?        00:00:00 gds -d /output_data -p 192.168.0.90:5000 -D
    gds_user 129003 118723  0 15:04 pts/0    00:00:00 grep gds
    kill -9 128954

示例:多线程导出

规划数据服务器与集群处于同一内网,数据服务器IP为192.168.0.90,导出的数据文件格式为CSV,同时导出2个目标表,所以规划使用Remote模式进行多线程导处。

Remote模式多线程导出数据操作示例如下所示:

  1. 以root用户登录GDS数据服务器,创建导出数据文件存放目录“/output_data”,数据库用户及所属的用户组。
    mkdir -p /output_data
    groupadd gdsgrp
    useradd -g gdsgrp gds_user
  2. 修改数据服务器上数据文件目录“/output_data”的属主为gds_user。
    chown -R gds_user:gdsgrp /output_data 
  3. 以gds_user用户登录数据服务器上启动GDS。
    其中GDS安装路径为“ /opt/bin/dws/gds”,导出数据文件存放在“/output_data/”目录下,数据服务器所在IP为192.168.0.90,GDS监听端口为5000,以后台方式运行,设定并发度为2。
    /opt/bin/dws/gds/gds -d /output_data -p 192.168.0.90:5000 -H 10.10.0.1/24 -D -t 2 
  4. DWS上,创建外表foreign_tpcds_reasons1和foreign_tpcds_reasons2用于接收数据服务器上的数据。
    • 其中设置的导出模式信息如下所示:
      • 由于启动GDS时,设置的导出数据文件存放目录为“/output_data/”,GDS监听端口为5000。创建的导出数据文件存放目录为“/output_data/”。所以设置参数“location”为“gsfs://192.168.0.90:5000/”。
    • 设置导出的数据文件格式信息如下所示:
      • 数据文件格式(format)为CSV。
      • 编码格式(encoding)为UTF-8。
      • 字段分隔符(delimiter)为E'\x08'。
      • 引号字符(quote)为0x1b。
      • 数据文件中空值(null)为没有引号的空字符串。
      • 逃逸字符(escape)为默认值双引号。
      • 数据文件是否包含标题行(header)为默认值false,即导出时数据文件第一行被识别为数据。

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

    CREATE FOREIGN TABLE foreign_tpcds_reasons1
    (  
      r_reason_sk    integer     not null,
      r_reason_id    char(16)    not null,
      r_reason_desc  char(100)
    ) SERVER gsmpp_server OPTIONS (LOCATION 'gsfs://192.168.0.90:5000/', FORMAT 'CSV',ENCODING 'utf8', DELIMITER E'\x08', QUOTE E'\x1b', NULL '') WRITE ONLY;

    参考以上设置,创建的外表foreign_tpcds_reasons2如下所示:

    CREATE FOREIGN TABLE foreign_tpcds_reasons2
    (  
      r_reason_sk    integer     not null,
      r_reason_id    char(16)    not null,
      r_reason_desc  char(100)
    ) SERVER gsmpp_server OPTIONS (LOCATION 'gsfs://192.168.0.90:5000/', FORMAT 'CSV', DELIMITER E'\x08', QUOTE E'\x1b', NULL '') WRITE ONLY;
  5. 在数据库中通过外表foreign_tpcds_reasons1和foreign_tpcds_reasons2,将表reasons1和reasons2中的数据导出到目录“/output_data”中。
    INSERT INTO foreign_tpcds_reasons1 SELECT * FROM reasons1;
    INSERT INTO foreign_tpcds_reasons2 SELECT * FROM reasons2;
  6. 待数据导出完成后,以gds_user用户登录数据服务器,停止GDS。
    其中GDS进程号为128954。
    ps -ef|grep gds
    gds_user 128954      1  0 15:03 ?        00:00:00 gds -d /output_data -p 192.168.0.90:5000 -D -t 2 
    gds_user 129003 118723  0 15:04 pts/0    00:00:00 grep gds
    kill -9 128954
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区