2016-08-03 98 views
1

我有一個位於遠程unix服務器上的csv文件。我需要將該數據加載到當前位於另一個遠程服務器上的postgres數據庫(greenplum)中。csv數據從遠程unix服務器加載到另一個遠程服務器postgres

目前,我正在使用winscp將csv拖入本地驅動器,然後使用本地副本將其加載到greenplum遠程使用pgadmin。

這似乎是一種將數據拉入本地機器然後將其放入greenplum的迂迴方法。這需要很長時間(> 100小時)

我認爲必須有一種方法來將遠程csv批量加載到遠程greenplum db,而無需本地干預。有沒有人有這種數據遷移的經驗?我正在使用ETL的talend。

謝謝!

回答

1

是的,有一種批量加載方式可以將數據從遠程服務器加載到Greenplum。它也快得多。

您的Talend服務器需要聯網,以便它可以與集羣中的網段主機進行通信。這裏是如何配置網絡的指南: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一樣。

+0

謝謝Jon!這是非常有用的知道。我已經能夠使用此功能進行基本插入。如果我可以用gpload做一個upsert(如果記錄存在,更新,如果記錄不存在),你介意給我一些指針嗎?合併做我正在尋找什麼?簡單的插入基本表格加載非常快。從Y的INSERT到X SELECT where條件下,我不確定如何踩在地上。欣賞您可以提供的任何指導。 – wizengeeky

+0

gpload有一個合併選項,但它不會處理重複。因爲這個,我不是合併迷。這是另一種處理合並的方法:http://www.pivotalguru.com/?p=104最後,你提到了在外部表上添加條件。您當然可以做到這一點,並使用Greenplum提供的各種SQL函數來轉換列。 –