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