AE環境変数と'register_ae
指定された引数に基づいて、「register_aeいくつかのシステムAE環境変数を設定する。
AEプロセスの動作は、これらの変数によって制御される。これらの変数には、実行可能パス、コマンドライン引数、ロギングオプション、パスなどが含まれる。 register_ae呼び出しによって設定される変数を確認するには、「--echoオプションを使用する。
- --echo
- コンパイルテンプレートの展開方法を表示します。
--echo結果の例については、'--environment説明にあるnzsqlの'show出力を参照のこと。 - ---environment<変数
- AE システムまたはユーザー固有の環境変数を設定する。 register_ae設定した環境変数を上書きしたり、「register_ae」がサポートしていない高度なAE登録変数を使用したり、ユーザー固有の環境変数を設定したりすることができる。注:開始部分文字列「NZAE」はAEシステム環境変数用に予約されており、ユーザー固有の変数には使用しないこと。ユーザー固有変数の例:
--environment "'APPLY_INFO'='true'"AEのフルパワーは、AEシステム環境変数を通じて利用できる。 詳細については、AE環境変数の紹介を参照してください。
関数が登録されると、SQL show コマンドを使用して、-environmentオプション(およびその他多くの NPS システム SQL 関数設定)の効果を表示することができます。 次の例では、Java AEを呼び出すテーブル関数が登録されている:register_ae --language java --template udtf --version 3 --sig "applyOperationV2Tf(varargs)" --return "table(result double)" --define java_class=org.netezza.education.ApplyDriverV2 -- level 1 --environment "'APPLY_FUNCTION'='OPERATION'"nzsqlで'show実行すると、次のような例が得られる:
追加情報を表示するにはverboseオプションを使用する。 showコマンドを使うだけでなく、「register_ae」に「SHOW FUNCTION applyOperationV2Tf; RESULT | FUNCTION | BUILTIN | ARGUMENTS --------------------------------+--------------------+---------+--- TABLE(RESULT DOUBLE PRECISION) | APPLYOPERATIONV2TF | f | ()--echoオプションを付けて実行すれば、この出力を表示することができる。 出力を完全に理解するには、AE環境変数の紹介を参照してください。 以下は、「applyOperationV2Tf例で使用したAE環境変数である:SHOW FUNCTION applyoperationV2TF VERBOSE; APPLY_FUNCTION=OPERATION NZAE_REGISTER_NZAE_DYNAMIC_ENVIRONMENT=0 NZAE_REGISTER_NZAE_EXECUTABLE_PATH= /nz/export/ae/languages/java/6.13.0/jdk1.6.0_13/bin/java NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_DEBUG=1 NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_PREPEND_LD_LIBRARY_PATH= /nz/export/ae/adapters/java/3/sys/nz/lib/host NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE =0 NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE_LAUNCH_VERBOSE=0 NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE_NAME= NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE_NAME_DATA_SLICE=0 NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE_NAME_SESSION=0 NZAE_REGISTER_NZAE_HOST_ONLY_NZAE_REMOTE_NAME_TRANSACTION=0 NZAE_REGISTER_NZAE_LOG_IDENTIFIER=applyOperationV2Tf(varargs) NZAE_REGISTER_NZAE_NUMBER_PARAMETERS=1 NZAE_REGISTER_NZAE_PARAMETER1=org.netezza.education.ApplyDriverV2 NZAE_REGISTER_NZAE_PREPEND_CLASSPATH= /nz/export/ae/applications/dev/admin/java/: /nz/export/ae/applications/dev/admin/java: /nz/export/ae/adapters/java/3/sys/nz/java/nzae.jar NZAE_REGISTER_NZAE_PREPEND_PATH= /nz/export/ae/languages/java/6.13.0/jdk1.6.0_13/bin NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_DEBUG=1 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_PREPEND_LD_LIBRARY_PATH= /nz/export/ae/adapters/java/3/sys/nz/lib/spu10 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE =0 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE_LAUNCH_VERBOSE=0 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE_NAME= NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE_NAME_DATA_SLICE=0 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE_NAME_SESSION=0 NZAE_REGISTER_NZAE_SPU_ONLY_NZAE_REMOTE_NAME_TRANSACTION=0接頭辞 '
NZAE_REGISTERは、'register_ae が内部的に使用するために予約されている。 実行時にはこの接頭辞は削除される。 例えば、'NZAE_REGISTER_NZAE_NUMBER_PARAMETERS=1は 'NZAE_NUMBER_PARAMETERS=1.になる。この場合、'NZAE_NUMBER_PARAMETERS以前に定義されていれば、'NZAE_REGISTERバージョンは破棄される。 したがって、「NZAE_REGISTER」で始まるAE環境変数を「register_ae --environmentオプションで上書きすることができる。 例として、上記のJava登録を変更し、メインのJavaクラスにプロパティとコマンドライン引数を追加する:register_ae --language java --template udtf --version 3 --db dev --sig "applyOperationV2Tf(varargs)" --return "table(result double)" --define java_class=org.netezza.education.ApplyDriverV2 -- level 1 --environment "'APPLY_FUNCTION'='OPERATION'" --environment "'NZAE_NUMBER_PARAMETERS'='3'" --environment "'NZAE_PARAMETER1'='-Dmyprop=x'" --environment "'NZAE_PARAMETER2'='org.netezza.education.ApplyDriverV2'" --environment "'NZAE_PARAMETER3'='my parameter'"注: --environmentオプションのオーバーライドには、先頭に 'NZAE_REGISTERは付きません。register_ae使用すると、AE を高度な方法で使用したり、問題を診断したりする際に、オプションを AE のシステム環境変数や NPS のシステム機能設定に変換することができる。
register_aeによって設定された環境変数の登録解除
register_aeで設定した登録変数を AE が使用しないように削除する必要がある場合は、 '
NZAE_UNREGISTER_ prefix を使用する。 例えば、'NZAE_REGISTER_NZAE_NUMBER_PARAMETERS=0 を削除する:--environment "'NZAE_UNREGISTER_NZAE_NUMBER_PARAMETERS '='any value'"
注:この例では、変数は削除されるので、値は関係ない(必須ではない)。
スカラー関数のオプション
以下のオプションはスカラー関数でのみ使用可能です。
- --nondet
- このスカラー関数が非決定論的であることを設定する。 言い換えれば、これはデフォルトの最適化を否定するもので、NPSシステムは同じ入力に対してスカラー関数は常に同じ出力を返すと仮定している。 この場合、スカラー関数は定数入力に対して1回だけ呼び出される。 例:
--nondet - --nullcall
- デフォルトのNULL呼び出しの動作を無効にし、すべてのNULL入力を受け取るスカラー関数がNULLでない出力を返すようにします。 デフォルトでは、NPSシステムはスカラー関数がいかなるNULL入力に対しても常にNULL出力を返すと仮定しているため、スカラー関数は呼び出されない。 例:
--nullcall