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