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実行すると、次のような例が得られる:
SHOW FUNCTION applyOperationV2Tf;
RESULT | FUNCTION | BUILTIN | ARGUMENTS
--------------------------------+--------------------+---------+---
TABLE(RESULT DOUBLE PRECISION) | APPLYOPERATIONV2TF | f | ()
追加情報を表示するにはverboseオプションを使用する。 showコマンドを使うだけでなく、「register_ae」に「--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