【问题标题】:Transferring data from a DB2 DB to a greenplum DB将数据从 DB2 DB 传输到 greenplum DB
【发布时间】:2011-05-24 12:28:24
【问题描述】:

我的公司决定使用 [Greenplum] 实施数据集市,我的任务是弄清楚如何继续进行。从现有 [DB2] DB 传输到 Greenplum DB 的数据量大概是 2 TB。

我想知道: 1) Greenplum DB 是否与 vanilla [PostgresSQL] 相同? (我在 Postgres AS 8.3 上工作过) 2)是否有任何(免费)工具可用于此任务(提取和导入) 3) 我对 Python 有一定的了解。在合理的时间内做到这一点是否可行,甚至容易?

我不知道该怎么做。非常欢迎任何建议、提示和建议。

【问题讨论】:

    标签: python postgresql db2 datamart greenplum


    【解决方案1】:

    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 发送一个创建外部表并加载数据的命令。不过,这取决于你想做什么。

    【讨论】:

    • 感谢 cmets 的帮助。 Greenplum 是否有任何在线文档?我肯定在他们的网站上找不到任何东西。
    • 您需要管理员指南,可以在此处找到。 gpn.greenplum.com/download.php 还有一个论坛不是很活跃,但是很多Greenplum 工程师都看过。如果您喜欢我的回答,请投票 :)
    【解决方案2】:

    Greenplum 的许多实用程序都是用 python 编写的,当前的 DBMS 发行版附带安装了 python 2.6.2,包括可用于在 GPDB 中工作的 pygresql 模块。

    为了将数据传输到 greenplum,我编写了 python 脚本,使用 cx_Oracle 连接到源 (Oracle) DB,然后将该输出转储到平面文件或命名管道。 gpfdist 可以从任何一种源中读取数据并将数据加载到系统中。

    【讨论】:

      【解决方案3】:

      一般情况下,使用SQL插入或合并导入大批量数据确实很慢。

      推荐的方法是使用您定义的外部表来使用基于文件、基于 Web 或 gpfdist 协议托管的文件。

      此外,greenplum 有一个名为 gpload 的实用程序,可用于定义您的传输作业,如源、输出、模式(惰性、更新或合并)。

      【讨论】:

        【解决方案4】:

        1) 这不是普通的 postgres

        2) 我在各种类型的数据传输项目中使用pentaho data integration 并取得了很好的成功。 如果您仔细设计步骤,它允许复杂的转换和多线程、多步骤的数据加载。 我也相信 Pentaho 特别支持 Greenplum,虽然我没有这方面的经验。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-06
          • 2018-01-06
          相关资源
          最近更新 更多