GaussDB 200使用GDS从远端服务器导入数据

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

时间: 2024-10-09 22:57:27

GaussDB 200使用GDS从远端服务器导入数据的相关文章

跨服务器导入数据SQL语句及其问题解决方案

--跨服务器导入数据SQL语句: insert into [shsw_manager].[dbo].[Station_List]select * from OPENROWSET('SQLOLEDB','SERVER=31.16.1.130;uid=sa;pwd=shswhotline;Database=shsw_manager','select * from Station_List') --跨服务器查询示例 SELECT * FROM OPENROWSET('SQLOLEDB','192.16

Jmeter使用插件监控远端服务器性能数据

下载地址自己可以到官网去下:https://jmeter-plugins.org/downloads/all/ 三个插件: JMeterPlugins-Standard-1.4.0(1).zip ServerAgent-2.2.1.zip JMeterPlugins-Extras-1.4.0.zip 解压1和3两个文件 进入到路径JMeterPlugins-Extras-1.4.0\lib\ext,将文件JMeterPlugins-Extras.jar复制 到jmeter安装目录lib\ext下

SQL Server从远程服务器导入数据

语法 insert inot user select * from opendatasource('sqloledb','server=192.168.0.1;uid=sa;pwd=dbpasswords;database=dbname').dbname.dbo.user_copy

ssh -t命令对远端服务器进行sed

本地机器IP 172.16.20.222 对远端服务器172.16.200.170进行sed 操作.不好的地方是sed文件和 被修改文件必须要在同一台机器上 ssh -t [email protected] sed -i.bbb -f /root/jin.sed  /root/tmp.txt [[email protected] ~]# cat tmp.txt aaaa aaaa bbbb cccc ccccdddd[[email protected] ~]# cat tmp.txt.bbb s

GaussDB 200跨集群访问HDFS

当需要从Hive等Hadoop集群迁移数据到GaussDB 200集群时,因为数据量太大,可能无法导出到本地.此时需要GaussDB 200跨集群读取HDFS上的数据,并写入GaussDB 200集群. 目前GaussDB 200只支持跨集群访问FusionInsight HD中的HDFS. 前提条件 FusionInsight HD和GaussDB 200两个集群状态正常并且可以互相通信. 远端FusionInsight HD集群被访问的表为ORC格式. 远端FusionInsight HD集

SQL从其他服务器数据库导入数据到本地数据库中

EXEC sp_dropserver 'ITSV2', 'droplogins' exec sp_addlinkedserver 'ITSV2' , '' , 'SQLOLEDB' , '168.9.123.123' exec sp_addlinkedsrvlogin 'ITSV2' , 'false' , null , 'sa' , 'sa' drop table test2; select top 12 * into test2 from ITSV2.InfoDB.dbo.city sele

通过psping测试结果,初步判断远端服务器的状态

1.psping的输出结果为如下正常显示时,说明远端服务器的IP及端口可用 C:\Users\he.liming>psping 139.219.66.205:4352 PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility Copyright (C) 2012-2016 Mark Russinovich Sysinternals - www.sysinternals.com TCP connect to 139.2

GaussDB 200集群容灾管理

GaussDB 200的高可用容灾目标是在任何故障场景,数据不丢失,业务不停机.为达到这样的目标,GaussDB 200设计了双集群容灾的方案:分别部署两套同构的集群,集群间通过容灾任务进行周期性的物理数据同步.其中主集群提供正常的业务,灾备集群(亦称"备集群")在恢复期间不可用,非恢复期间提供只读服务.当主集群不可用时,灾备集群可以代替主集群正常提供业务,从而实现数据库的高可用.双集群容灾的约束限制见下图: 1.环境信息 如下图所示,两个同构集群环境(Gauss1和Gauss2)都是

Sqoop导入数据到Hadoop代理执行

最近在做执行服务器,它根据用户输入的sqoop命令代理向hadoop提交任务执行,目前需要支持的数据源包括mysql.oracle以及公司自己的分布式数据库DDB,数据导入的目的地可以是HDFS或者hive表. 首先来讨论一下对hive的支持,hive是作为一个支持JDBC的数据库,它的数据分成两部分,元数据和数据,元数据保存在一个本地的数据库,例如嵌入式数据库derby或者mysql,主要是存储一些关于hive的数据库和表定义的一些信息(关于元数据库表需要补充一下,这些表的创建都是hive完成