GaussDB 200支持将存在远端服务器上的TEXT、CSV和FIXED格式的数据导入到集群中。本文介绍使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB 200。环境以下表:数据库
这里从PostgreSQL数据库中,使用copy命令导出一个csv格式的文件,以下:json
rhnschema=> copy rhnpackagefile to '/tmp/rhnpackagefile.csv' with csv;
[root@hd04 bin]# groupadd gdsgrp [root@hd04 bin]# useradd -g gdsgrp gds_user
[root@hd04 ~]# mkdir /opt/bin --GDS安装目录 [root@hd04 ~]# mkdir /opt/data --源数据存放目录 [root@hd04 ~]# chown -R gds_user:gdsgrp /opt/bin/gds [root@hd04 ~]# chown -R gds_user:gdsgrp /opt/data
[root@hd04 ~]# su - gds_user [gds_user@hd04 ~]$ scp root@hd01:/tmp/rhnpackagefile.csv /opt/data
[root@hd04 ~]# tar -xzf GaussDB_200_6.5.1_RHEL.tar.gz
解压后找到GaussDB-Kernel-V300R002C00-REDHAT-64bit-Gds.tar.gz压缩包,并解压至GDS安装目录。服务器
[gds_user@hd04 ~]$ cd /opt/bin [gds_user@hd04 bin]$ tar -xzf /tmp/GaussDB-Kernel-V300R002C00-REDHAT-64bit-Gds.tar.gz
而后以root用户修改/etc/profile,加入如下内容:网络
[root@hd04 ~]# vi /etc/profile export LD_LIBRARY_PATH="/opt/bin/lib:$LD_LIBRARY_PATH"
此处主要是配置GDS库路径,由于它依赖了Cjson动态库。并发
[root@hd04 ~]# su - gds_user [gds_user@hd04 ~]$ /opt/bin/gds/gds -d /opt/data -p 192.168.120.25:5000 -H 192.168.110.1/24,192.168.120.1/24 -l /opt/bin/gds/gds_log.txt -D
GDS的启动模式有两种:非ssl传输数据模式和ssl加密方式传输数据模式。上面使用的是非ssl传输数据模式。
对于ssl模式,须要将GaussDB建立的GDS证书拷贝到GDS的安装目录里,以下:ide
[gds_user@hd04 ~]$ cd /opt/bin/ [gds_user@hd04 bin]$ scp -r root@hd01:/opt/huawei/Bigdata/mppdb/core/share/sslcert/gds ./
以ssl模式启动GDS服务以下:高并发
[gds_user@hd04 ~]$ /opt/bin/gds/gds -d /opt/data -p 192.168.120.25:5000 -H 192.168.110.1/24 -l /opt/bin/gds/gds_log.txt -D --enable-ssl --ssl-dir /opt/bin/gds
参数说明以下图所示:工具
这里须要建立外表以及目标表,语句以下:
外表参数以下图所示:
建立目标表,以下:
使用以下命令导入数据:性能
rhnschema=# INSERT INTO rhnpackagefile2 SELECT * FROM f_rhnpackagefile; INSERT 0 27942567
在导入过程当中,若是出现数据格式错误,系统会记录到一张error表里(建立外表时指定的表)。优化
在数据导入完成后,执行ANALYZE语句生成表统计信息。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。
若是导入过程当中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,而后运行ANALYZE命令。大量的更新和删除操做,会产生大量的磁盘页面碎片,从而逐渐下降查询的效率。VACUUM FULL能够将磁盘页面碎片恢复并交还操做系统。
rhnschema=# VACUUM FULL rhnpackagefile2; VACUUM rhnschema=# ANALYZE rhnpackagefile2; ANALYZE
导入完成后,若是不须要GDS服务,能够将其中止。以gds_user用户,查询出GDS服务的进程号将其kill掉便可。
使用GDS工具将数据从数据库导出到普通文件系统中,适用于高并发、大量数据导出的场景。经过外表设置的导出模式、导出数据格式等信息来指定待导出的数据文件,利用多DN并行的方式,将数据从数据库导出到数据文件中,从而提升总体导出性能。不支持直接导出文件到HDFS文件系统。
GaussDB 200支持的导出模式有Local和Remote模式。
rhnschema=# insert into f_rhnpackagerepodata select *from rhnpackagerepodata; INSERT 0 94519