2011-05-24 92 views
0

我公司已決定使用[Greenplum的]實現一個數據集市,我必須搞清楚如何去它的任務。從現有的[DB2] DB傳輸到Greenplum DB的數據量的大概數字是大約2 TB。傳輸數據DB

我想知道: 1)是Greenplum的數據庫一樣香草[PostgreSQL的]? (我已經在Postgres AS 8.3上工作) 2)是否有任何(免費)工具可用於此任務(提取和導入) 3)我對Python有一些瞭解。這是否可行,甚至容易在合理的時間內做到這一點?

我不知道如何做到這一點。任何建議,提示和建議將非常受歡迎。

回答

0

1)這不是香草的Postgres

2)我已經使用pentaho data integration在各種類型的數據轉移項目的良好的成功。 如果您仔細設計步驟,它允許進行復雜的轉換和多線程,多步加載數據。 我也相信Pentaho支持Greenplum,雖然我沒有這方面的經驗。

3

1)Greenplum不是香草postgres,但它是相似的。它有一些新的語法,但總的來說,高度一致。

2)的Greenplum本身提供了一些所謂的「gpfdist」,它可以讓你聽,你要想在一個文件中把指定端口上(但該文件已被分裂)。你想要可讀的外部表。它們非常快。語法是這樣的:

CREATE READABLE EXTERNAL TABLE schema.ext_table 
(thing int, thing2 int) 
LOCATION (
    'gpfdist://server:port1/path/to/filep1.txt', 
    'gpfdist://server:port2/path/to/filep2.txt', 
    'gpfdist://server:port3/path/to/filep3.txt' 
) FORMAT 'text' (delimiter E'\t' null 'null' escape 'off') ENCODING 'UTF8'; 

CREATE TEMP TABLE import AS SELECT * FROM schema.ext_table DISTRIBUTED RANDOMLY; 

如果你發揮自己的規則,你的數據是乾淨的,加載可極快。

3)你不需要python來做到這一點,儘管你可以通過使用python來啓動gpfdist進程,然後發送一個命令到psql來創建外部表並加載數據,從而實現自動化。取決於你想要做什麼。

+0

感謝您的有用評論。有沒有Greenplum的在線文檔?我確定在他們的網站上找不到任何東西。 – bijeshn 2011-05-27 04:46:27

+0

你想要的管理員指南,可以在這裏找到。 http://gpn.greenplum.com/download.php還有一個論壇不是非常活躍,但許多Greenplum工程師閱讀。如果你喜歡我的回答,請將它投票:) – 2011-06-01 18:43:18

0

許多Greenplum的公用事業用Python編寫的當前DBMS分佈預裝有蟒蛇2.6.2,其中包括可以使用到GPDB內部工作pygresql模塊。

對於將數據傳輸到greenplum,我編寫了使用cx_Oracle連接到源(Oracle)數據庫的Python腳本,然後將該輸出轉儲到平面文件或命名管道。 gpfdist可以從任何一種來源讀取並將數據加載到系統中。

0

通常,如果您使用SQL插入或合併導入大批量數據,速度非常慢。

推薦的方法是使用你定義使用基於文件的外部表,基於網絡或gpfdist協議承載的文件。

而且也是Greenplum的有一個名爲gpload實用程序,它可以用來定義轉移就業,像源,輸出模式(惰性,更新或合併)。