如何从Postgres导出包括大对象在内的数据,然后将导出的数据导入Greenplum

时间:2016-12-03 19:06:47

标签: postgresql greenplum

我不想使用%s将数据导出到sql脚本中,因为当我要导入大量数据时,将其提供给greenplum群集太慢了。所以似乎使用greenplum pg_dump是首选。我有什么方法可以做到这一点吗?

或者作为替代方案,我可以将特定Postgres表的数据导出到包含该表的大型或对象的CSV格式文件中吗?

1 个答案:

答案 0 :(得分:0)

Accoridng to greenplum reference:

  

最简单的数据加载方法是SQL INSERT语句......

     

您可以使用COPY命令在数据时将数据加载到表中   在外部文本文件...

     

您可以使用一对Greenplum实用程序gpfdist和gpload将外部数据加载到表格中......

然而,如果你想使用csv导入数据,你可以用大对象生成csv" filename"将您与pg_largeobject联系起来。例如:

b=# create table lo (n text,p oid);
CREATE TABLE
b=# insert into lo values('wheel',lo_import ('/tmp/wheel.PNG'));
INSERT 0 1
b=#  copy (select lo.*, pg_largeobject.pageno, pg_largeobject.data from lo join pg_largeobject on lo.p = loid) to '/tmp/lo.csv' WITH (format csv, header);
COPY 20

生成的/tmp/lo.csv将以csv格式包含名称,oid和数据bytea。