2

何百万ものレコードを含む巨大なcsvファイルがあり、Pythonスクリプトを使用してNetezza DBにロードしたいのですが、単純な挿入クエリを試しましたが、非常に低速です。いくつかの例のPythonスクリプトまたはいくつかのアイデアを教えてもらえますか?

ありがとうございました

4

3 に答える 3

3

If you have the Netezza Admin Tools installed, you can make a shell call to nzload.

Something like this:

os.system("nzload -host myhost -u myuser -pw mypassword -db MYDB -t MYTABLE -skipRows 1 -nullValue NULL -quotedValue DOUBLE -df \"C:\\myinputfile.txt\" -delim \"|\" -dateDelim \"-\" -lf c:\\logs\\nzload.log -bf c:\\logs\\nzloadbad.log")

See also: Calling an external command in Python

于 2013-06-28T13:53:07.567 に答える
1

nz_load4 を使用してデータをロードできます。これはサポート ユーティリティです /nz/support/contrib/bin

構文は nzload と同じです。デフォルトでは、nz_load4 は 4 つのスレッドを使用してデータをロードします。詳細については、-tread オプションを使用して最大 32 スレッドにできます。nz_load4 -h を使用してください。

これにより、次のように、スレッドの数に基づいてログ ファイルが作成されます。

于 2013-07-08T08:44:50.297 に答える
0

nzload を実行するマシンに nzcli をインストールする必要があります。システム管理者は、それを unix/linux アプリケーション サーバーに配置できるはずです。すべての設定、パスワードのキャッシュなどの詳細なプロセスがあります-システム管理者はそれを実行できるはずです。

セットアップが完了したら、NZ 制御ファイルを作成してデータ ファイルをポイントし、ロードを実行できます。Netezza Data Loading ガイドには、これらすべてを行う方法に関する詳細な手順が記載されています (IBM から入手できます)。

CREATE EXTERNAL TABLE 特権を持っている場合は、アジリティを介して行うこともできます。ODBCINSERT INTO FROM EXTERNAL ... REMOTESOURCE ODBC接続からファイルをロードすることができます。

于 2013-03-26T17:19:06.757 に答える