Variables de entorno AE y ' register_ae

En función de los argumentos especificados, ' register_ae ' establece una serie de variables de entorno AE del sistema.

El comportamiento del proceso AE está controlado por estas variables, que incluyen la ruta del ejecutable, los argumentos de la línea de comandos, las opciones de registro, las rutas, etc. Para ver qué variables se establecen mediante una invocación de " register_ae, utilice la opción " --echo.

--echo
Muestra cómo se expande la plantilla de compilación. Consulte la salida de nzsql ' show en la descripción de ' --environment ' para ver un ejemplo de los resultados de ' --echo.
--environment <variable>
Establece una variable de entorno específica del sistema AE o del usuario. Puede anular las variables de entorno establecidas por ' register_ae, utilizar variables avanzadas de registro AE que no sean compatibles con ' register_ae, y establecer variables de entorno específicas del usuario.
Nota: La subcadena inicial "NZAE" está reservada para variables de entorno del sistema AE y no debe utilizarse para variables específicas del usuario.
Ejemplo de variable específica del usuario:
--environment "'APPLY_INFO'='true'"

Toda la potencia de los EA está disponible a través de las variables de entorno del sistema de EA. Para obtener más información, consulte Introducción a las variables de entorno AE.

Cuando se registra una función, se pueden mostrar los efectos de las opciones -environment (y muchos otros ajustes de la función SQL del sistema NPS) mediante el comando SQL show. En el siguiente ejemplo se registra una función de tabla que llama a un AE de Java:
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'"
Ejecutando ' show en nzsql se obtiene el siguiente ejemplo:
SHOW FUNCTION applyOperationV2Tf;
RESULT | FUNCTION | BUILTIN | ARGUMENTS
--------------------------------+--------------------+---------+---
TABLE(RESULT DOUBLE PRECISION) | APPLYOPERATIONV2TF | f | ()
Utilice la opción verbose para mostrar información adicional. Además de utilizar el comando show, puede ejecutar ' register_ae con la opción ' --echo ' para mostrar esta salida. Para comprender completamente la salida, consulte Introducción a las variables de entorno AE. A continuación se muestran las variables de entorno AE del ejemplo ' applyOperationV2Tf:
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

El prefijo " NZAE_REGISTER " está reservado para uso interno de " register_ae. En tiempo de ejecución, este prefijo se elimina. Por ejemplo, " NZAE_REGISTER_NZAE_NUMBER_PARAMETERS=1 " se convierte en " NZAE_NUMBER_PARAMETERS=1.

Si en este caso ' NZAE_NUMBER_PARAMETERS ' estaba previamente definido, se descarta la versión ' NZAE_REGISTER '. Así, una variable de entorno AE que empiece por ' NZAE_REGISTER ' puede ser anulada utilizando la opción ' register_ae --environment. Como ejemplo, el registro Java anterior se modifica para añadir una propiedad y un argumento de línea de comandos a la clase Java principal:
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'"
Nota: Las anulaciones de la opción --environment no llevan el prefijo ' NZAE_REGISTER.

Puede utilizar la capacidad ' register_ae ' para transformar opciones en variables de entorno AE del sistema y ajustes de funciones del sistema NPS cuando utilice AE en métodos avanzados y para diagnosticar problemas.

Desregistro de variables de entorno establecidas por ' register_ae

Si una variable de registro establecida por " register_ae " debe eliminarse para que deje de ser utilizada por el AE, utilice " NZAE_UNREGISTER_ prefix. Por ejemplo, para eliminar ' NZAE_REGISTER_NZAE_NUMBER_PARAMETERS=0:
--environment "'NZAE_UNREGISTER_NZAE_NUMBER_PARAMETERS '='any value'"
Nota: En el ejemplo, el valor es irrelevante (y no obligatorio), ya que la variable se está eliminando.

Opciones de función escalar

Las siguientes opciones sólo están disponibles para funciones escalares.
--nondet
Establece que esta función escalar es no determinista. En otras palabras, niega la optimización por defecto, en la que el sistema NPS asume que para la misma entrada una función escalar siempre devuelve la misma salida. En este caso, la función escalar sólo puede invocarse una vez para una entrada constante en lugar de una vez por fila de entrada. Por ejemplo:
--nondet
--nullcall
Anula el comportamiento predeterminado de llamada NULL, permitiendo que una función escalar que recibe toda la entrada NULL devuelva una salida no NULL. Por defecto, el sistema NPS asume que para cualquier entrada NULL una función escalar siempre devuelve una salida NULL y por lo tanto no invoca la función escalar. Por ejemplo:
--nullcall