0

私の会社は [Greenplum] を使用してデータマートを実装することを決定しました。既存の [DB2] DB から Greenplum DB に転送されるデータ量の概算値は、約 2 TB です。

知りたいこと: 1) Greenplum DB はバニラ [PostgresSQL] と同じですか? (私は Postgres AS 8.3 で作業しました) 2) このタスク (抽出とインポート) に使用できる (無料の) ツールはありますか 3) Python の知識があります。合理的な時間内にこれを行うのは簡単ですか?

これを行う方法がわかりません。アドバイス、ヒント、提案は大歓迎です。

4

4 に答える 4

3

1)Greenplumはバニラポストグレスではありませんが、似ています。いくつかの新しい構文がありますが、一般的に、非常に一貫性があります。

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に送信することで自動化できます。ただし、何をしたいかによって異なります。

于 2011-05-24T18:26:13.850 に答える
0

Greenplum のユーティリティの多くは Python で記述されており、現在の DBMS ディストリビューションには Python 2.6.2 がインストールされており、GPDB 内で作業するために使用できる pygresql モジュールが含まれています。

greenplum へのデータ転送のために、cx_Oracle を使用してソース (Oracle) DB に接続し、その出力をフラット ファイルまたは名前付きパイプにダンプする Python スクリプトを作成しました。gpfdist は、どちらの種類のソースからも読み取り、データをシステムにロードできます。

于 2011-09-26T03:53:37.883 に答える
0

一般に、SQL の挿入またはマージを使用して大量のデータをインポートすると、非常に遅くなります。

推奨される方法は、定義した外部テーブルを使用して、ファイルベース、Web ベース、または gpfdist プロトコルでホストされたファイルを使用することです。

また、greenplum には gpload という名前のユーティリティがあり、ソース、出力、モード (不活性、更新、マージ) などの転送ジョブを定義するために使用できます。

于 2014-05-15T03:53:29.000 に答える
0

1)バニラポストグルではありません

2) pentaho データ統合を使用して、さまざまなタイプのデータ転送プロジェクトで成功を収めました。ステップを慎重に設計すれば、複雑な変換とマルチスレッド、マルチステップのデータの読み込みが可能になります。また、Pentaho は特に Greenplum をサポートしていると思いますが、これについては経験がありません。

于 2011-05-24T14:32:52.973 に答える