gds实践指南

举报
dgt 发表于 2025/03/31 14:34:06 2025/03/31
【摘要】 文章主要分为4个部分: 1、gds的安装;2、gds的实践指南;3、gds数据迁移示例;4、gds

一    gds安装

1、以root用户登录待安装GDS的数据服务器,创建存放GDS工具包的目录。

mkdir -p /opt/gds_server

2、将GDS工具包上传至上一步所创建的目录中。

将软件安装包中的GDS工具包“GaussDB-8.1.3-REDHAT-64bit-Gds.tar.gz”上传至上一步所创建的目录中。

3、在工具包所在目录下,解压工具包。

cd /opt/gds_server

tar -zxvf GaussDB-8.1.3-SUSE11-64bit-Gds.tar.gz

4、创建GDS专有用户及其所属的用户组。此用户用于启动GDS及读取源数据。

groupadd gdsgrp

useradd -g gdsgrp gds_user

5、分别修改工具包和数据源文件目录属主为GDS专有用户。

chown -R gds_user:gdsgrp /opt/gds_server

chown -R gds_user:gdsgrp /input_data

6、切换到gds_user用户。

su - gds_user

7、执行环境依赖脚本

cd /opt/gds_server/bin

source gds_env

8、启动GDS服务。

gds -d dir -p ip:port -H address_string -l log_file -D -t worker_num -S file_size -r

-d dir:保存有待导入数据的数据文件所在目录。

-p ip:portGDS监听IP和监听端口。

-H address_string:允许哪些主机连接和使用GDS服务,根据需要调整,建议使用0.0.0.0/0不限制。

-l log_file:存放GDS的日志文件路径及文件名。

-D:后台运行GDS

-t worker_num:设置GDS并发线程数。GaussDB(DWS)及数据服务器上的I/O资源均充足时,可以加大并发线程数。

GDS是根据导入事务并发数来决定服务运行线程数的。也就是说即使启动GDS时设置了多线程,也并不会加速单个导入事务。未做过人为事务处理时,一条INSERT语句就是一个导入事务。

 

二        gds实践指南

1、GDSGaussDB(DWS)通信要求物理网络畅通,尽量使用万兆网。

2、GDS单核处理能力上限(约400MB/s),才能保证单文件导入速率最大化。

3、建议一个Raid只布1~2GDS。一台加载机的GDS进程不宜部署太多,千兆网卡部署1GDS进程即可,万兆网卡机器建议部署不大于4个进程。

4、提前对GDS导入导出的数据目录做好层次划分,避免一个数据目录包含过多的文件,并及时清理过期文件。

5、GDS导出时保证外表的字符集和客户端字符集一致即可,导入时保证客户端编码,数据文件内容编码和客户端一致。

6、合理规划数据目录,不要在同一目录并发写入相同文件,避免数据被覆盖。

三       数据导入与导出示例

1、以reasons表为例

CREATE TABLE reasons

(

  r_reason_sk integer not null,

  r_reason_id char(16) not null,

  r_reason_desc char(100)

);

 

2、源库导出数据到文件

2.1创建只写外表

CREATE FOREIGN TABLE fw_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;

 

2.2 导出目标表数据写入文件

INSERT INTO fw_tpcds_reasons SELECT * FROM reason;

注:可以根据需要增加where过滤数据,按时间切片

 

3、目标库库导入数据到文件

3.1创建只读外表

CREATE FOREIGN TABLE fr_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://199.1.1.1:5000/*',

FORMAT 'CSV',

ENCODING 'utf8',

DELIMITER E'\x08',

QUOTE E'\x1b',

NULL ''

)

注:LOCATION为需要导入的文件,可按正则表达式匹配,gsfs://199.1.1.1:5000/*

4、从文件导入数据到目标表

INSERT INTO reasons SELECT * FROM fr_tpcds_reasons;

四       GDS FAQ

见附件

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。