2011-05-24 90 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实用程序,它可以用来定义转移就业,像源,输出模式(惰性,更新或合并)。