GreenPlum数据的装载与卸载之copy命令的使用

Copy是PostgreSql数据库自带的数据工具,它不仅支持表于表之间的数据加载,也支持文件于表之间的数据加载和表对文件的数据卸载。对于Greenplum数据库,使用copy命令进行数据加载,数据需要经过Master节点分发到Segment节点;同样使用copy命令进行数据卸载,数据也需要由Segment发送到Master节点,由Master节点汇总后再写入外部文件,这样就限制了数据加载与卸载的效率,数据量较小的情况下,使用copy命令就非常方便。

1、创建测试表


由于在建表语句中,没有指定具体使用哪个字段进行数据分发,所以系统默认使用package_id进行数据分发。

2、数据的卸载

这里的数据将使用copy命令从PostgreSQL数据库中导出,如下:

如果字段中含有空值,对于txt文件,空值以\N的方式卸载,\N是null的转义。而对于csv格式,使用空值替代。如下:

同样,此方法在greenplum上有效。

3、数据的加载

使用copy命令加载数据,必须使用超级用户操作。

如上图所示,加载完成后,通过查询可见数据分布比较均匀,基本平均分布在3个Segment节点上。

原文地址:https://blog.51cto.com/candon123/2410841

时间: 2024-10-11 21:13:12

GreenPlum数据的装载与卸载之copy命令的使用的相关文章

GreenPlum数据的装载与卸载之外部表以及gpfdist工具的使用

Greenplum的外部表和ORACLE的外部表一样,都是数据存储在数据库之外的表.它的外部表除了可以加载本地的数据,还可以通过gpfdist工具并行加载数据.由于本地方式加载的效率低,已经被gpfdist取代.本文先介绍本地方式加载,后介绍gpfdist方式. 1.本地方式加载 1.1.创建外部表 rhnschema=# CREATE EXTERNAL TABLE ext_rhn1 (package_id numeric, primary_xml bytea, filelist bytea,

GreenPlum数据的装载与卸载之gpload的使用

Greenplum的gpload工具使用可读外部表和Greenplum并行文件服务器(gpfdist或者gpfdists)来装载数据.它处理并行的基于文件的外部表设置并且允许用户在一个单一配置文件中配置他们的数据格式.外部表定义以及gpfdist或者gpfdists设置.使用gpload工具,需要编写gpload的控制文件,这个控制文件是一个yaml格式文件,如下图所示:然后执行gpload进行装载操作,如下:控制文件的说明:1.gpload的控制文件,同级的参数一定要保持一致的缩进:2."-&

GreenPlum数据加载

1. copy命令 对于数据加载,GreenPlum数据库提供copy工具,copy工具源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.使用copy命令进行数据加载,数据需要经过Master节点分发到Segment节点,同样使用copy命令进行数据卸载,数据也需要由Segment发送到Master节点,由Master节点汇总后再写入外部文件,这样就限制了数据加载与卸载的效率,但是数据量较小的情况下,copy命令就非常方便.下面测试通过copy命令实现操

PostgresSQL使用Copy命令能大大提高数据导入速度

最近在做会员系统,其中会员系统有一份企业信息初始化的数据,需要从SQL Server数据库导入到PostgreSQL,单表的数据近30万.最开始的方案是在SQL Server上生成insert into的sql,再把生成的sql在Postgresql上导入.第一次导入时,没有删除索引,用了近2个小时才导完一张单表.后面在网上找到PostgreSQL有一个Copy命令用于大量数据的导入导出(http://www.2cto.com/database/201309/241346.html),于是就用了

使用BBED COPY命令,模拟oracle数据块的损坏

oracle里很多实验都是在特定块的损坏的情况下进行的. 常用的dd命令, 只能指定从1号块到多少个块,并不能指定一个特定的块 类似下面的命令,这是对system01.dbf第一号块作清零操作 dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/system01.dbf bs=8192 count=1 如果只是对第520号块作清除操作,只清除一个特定块的话,就没办法了 这时可以使用bbed的copy命令,如拷贝2号文件的20号块到1号文件的520号块,

Oracle数据库间的数据复制 - SQLPlus中的COPY命令

Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持Copy命令,只是未写入11g的文档里,未来12C不知道还支不支持. Copy也有明显的缺点,Copy只支持五种数据类型,Char,Date,Long,Number,Varchar2,8i之后Oracle数据库新增的数据类型都不支持. 使用方法: 1.首先确保TNS里记录了源Instance和目标I

7. Oracle数据加载和卸载

在日常工作中:经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互:即将指定文件内容导入对应的 Oracle 数据表中:或者从 Oracle 数据表导出. 其他数据库中的表跟Oracle数据库进行交互. 若是少量数据:可选择的解决方案有很多.常用的用 Pl/SQL developer工具,或者手动转换为 INSERT 语句,或者通过API.但数据量大:用上面的方法效率太烂了.本文来说说 Oracle 数据的加载和卸载. Oracle中的DBLINK Oracle加载数据-外部表

Postgres copy命令导入导出数据

最近有需要对数据进行迁移的需求,由于postgres性能的关系,单表3000W的数据量查询起来有一些慢,需要对大表进行切割,拆成若干个子表,涉及到原有数据要迁移到子表的需求.起初的想法是使用存储过程,使用select insert方式进行,但是数据量大的时候耗时有点久,于是需要想别的办法,就发现了postgres本身支持的copy命令. copy命令 COPY在PostgreSQL表和文件之间交换数据. COPY TO把一个表的所有内容都拷贝到一个文件,而COPY FROM从一个文件里拷贝数据到

使用copy命令把csv文件导入postgres数据库

1. 把excel另存为csv 2. 使用txt打开csv格式 3. 以UTF-8格式编码,另存为blacklist20141231.csv 4. 创建一个表 Create table backlist_20141231(日期 varchar(20),手机号码 nvarchar(20),渠道 nvarchar(50)); 5. 使用copy命令,copy backlist_20141231 from 'd:/blacklist20141231.csv' delimiter as ',' csv