我有一个 csv 文件,位于远程 UNIX 服务器上。我需要将该数据加载到当前位于另一台远程服务器上的 postgres 数据库(greenplum)中。
目前,我正在使用 Winscp 将 csv 拉入本地驱动器,然后使用 pgadmin 和本地副本将其加载到 greenplum 远程。
这似乎是一种将数据拉入本地计算机然后将其放入 greenplum 的迂回方法。需要很长时间(>100 小时)
我认为必须有一种方法可以将远程 csv 批量加载到远程 greenplum 数据库,而无需本地干预。有人有这种数据迁移的经验吗?我正在使用 talend 进行 ETL。
谢谢!
最佳答案
是的,有一种批量加载方式可以将数据从远程服务器加载到 Greenplum。它也明显更快。
您的 Talend 服务器需要联网,以便能够与集群中的 Segment 主机进行通信。以下是有关如何配置网络的指南:http://gpdb.docs.pivotal.io/4380/admin_guide/intro/about_loading.html
然后您可以使用“gpload”加载数据。这是一个实用程序,可以自动执行启动 gpfdist 进程、创建外部表和执行 INSERT 语句的任务。 gpload 文档:http://gpdb.docs.pivotal.io/4380/utility_guide/admin_utilities/gpload.html#topic1
最后,Talend 是 Pivotal 合作伙伴,他们拥有大量有关如何使用其工具将数据加载到 Greenplum 的文档。它利用 gpfdist 将数据并行加载到数据库,就像 gpload 一样。
关于csv数据从远程unix服务器加载到另一个远程服务器postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38745777/