GaussDB 200支持将存在远端服务器上的TEXT、CSV和FIXED格式的数据导入到集群中。本文介绍使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB 200。环境如下表:
1、准备源数据
这里从PostgreSQL数据库中,使用copy命令导出一个csv格式的文件,如下:
rhnschema=> copy rhnpackagefile to ‘/tmp/rhnpackagefile.csv‘ with csv;
2、安装并启动GDS
- 创建用户以及用户组
[[email protected] bin]# groupadd gdsgrp
[[email protected] bin]# useradd -g gdsgrp gds_user
- 创建相关目录
分别创建存放源数据以及GDS安装目录(自定义)。[[email protected] ~]# mkdir /opt/bin --GDS安装目录 [[email protected] ~]# mkdir /opt/data --源数据存放目录 [[email protected] ~]# chown -R gds_user:gdsgrp /opt/bin/gds [[email protected] ~]# chown -R gds_user:gdsgrp /opt/data
- 拷贝源数据到数据目录
[[email protected] ~]# su - gds_user [[email protected] ~]$ scp [email protected]:/tmp/rhnpackagefile.csv /opt/data
- 安装GDS服务
GDS工具位于GassDB安装包里,需要单独解压出来,以redhat的安装包为例,如下:[[email protected] ~]# tar -xzf GaussDB_200_6.5.1_RHEL.tar.gz
解压后找到GaussDB-Kernel-V300R002C00-REDHAT-64bit-Gds.tar.gz压缩包,并解压至GDS安装目录。
[[email protected] ~]$ cd /opt/bin [[email protected] bin]$ tar -xzf /tmp/GaussDB-Kernel-V300R002C00-REDHAT-64bit-Gds.tar.gz
然后以root用户修改/etc/profile,加入以下内容:
[[email protected] ~]# vi /etc/profile export LD_LIBRARY_PATH="/opt/bin/lib:$LD_LIBRARY_PATH"
此处主要是配置GDS库路径,因为它依赖了Cjson动态库。
- 启动GDS服务
[[email protected] ~]# su - gds_user [[email protected] ~]$ /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的安装目录里,如下:[[email protected] ~]$ cd /opt/bin/ [[email protected] bin]$ scp -r [email protected]:/opt/huawei/Bigdata/mppdb/core/share/sslcert/gds ./
以ssl模式启动GDS服务如下:
[[email protected] ~]$ /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
参数说明如下图所示:
3、创建表并导入数据
这里需要创建外表以及目标表,语句如下:
外表参数如下图所示:
创建目标表,如下:
使用如下命令导入数据:rhnschema=# INSERT INTO rhnpackagefile2 SELECT * FROM f_rhnpackagefile; INSERT 0 27942567
在导入过程中,如果出现数据格式错误,系统会记录到一张error表里(系统自动创建,默认名称格式为表名err),例如:rhnpackagefile_err。4、优化导入数据的查询性能
在数据导入完成后,执行ANALYZE语句生成表统计信息。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。
如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运行ANALYZE命令。大量的更新和删除操作,会产生大量的磁盘页面碎片,从而逐渐降低查询的效率。VACUUM FULL可以将磁盘页面碎片恢复并交还操作系统。
rhnschema=# VACUUM FULL rhnpackagefile2;
VACUUM
rhnschema=# ANALYZE rhnpackagefile2;
ANALYZE
5、停止GDS服务
导入完成后,如果不需要GDS服务,可以将其停止。以gds_user用户,查询出GDS服务的进程号将其kill掉即可。
原文地址:https://blog.51cto.com/candon123/2447575