Registro del lenguaje R e información sobre el tiempo de ejecución
Este ejemplo explora funcionalidades de registro que pueden no ser de uso común.
Código
El registro puede ayudarle a rastrear la ejecución de un AE. El AE debe estar registrado con una máscara de registro, y el registro debe estar habilitado a través de nzudxdbg. La información de tiempo de ejecución proporciona estadísticas sobre el sistema NPS, incluyendo el número de rebanadas de datos, S-Blades y locus de ejecución.
Introduzca el siguiente código en el archivo /tmp/logrun.R.
nz.fun <- function(){
getNext()
logMessage(NZ.DEBUG, "before getRuntime()")
r <- getRuntime()
apply(cbind(names(r),as.character(r)), 1, function(X){
setOutput(0, X[1])
setOutput(1, X[2])
outputResult()
})
logMessage(NZ.DEBUG, "after getRuntime()")
}
Una compilación
Compila el código:
/nz/export/ae/utilities/bin/compile_ae --language r --template compile \
--version 3 --db dev --user nz /tmp/logrun.R
Registro
Registra el ejemplo utilizando las opciones --mem y --mask. La opción --mask activa el registro para DEBUG y la opción --mem establece la información de tiempo de ejecución de memoria.
/nz/export/ae/utilities/bin/register_ae --language r --version 3 \
--template udtf --exe logrun.R --sig "logrun(VARARGS)" \
--return "TABLE(name VARCHAR(1000), value VARCHAR(1000))" \
--db dev --user nz --level 4 --mask DEBUG
En ejecución
Antes de ejecutarlo, active el registro ejecutando nzudxdbg:
>nzudxdbg
Processing 1 spus
.
done
Processing host
done
Ejecute la consulta en nzsql:
SELECT * FROM TABLE WITH FINAL(logrun());
NAME | VALUE
------------------------+-------
data.slice.id | 0
transaction.id | 21814
hardware.id | 0
number.data.slices | 4
number.spus | 1
suggested.memory.limit | 0
locus | 1
adapter.type | 1
user.query | 1
session.id | 16231
(10 rows)
El registro del sistema NPS aparece en la ventana donde se inició el sistema NPS:
04-06-11 09:48:54 (dbos.14577) [d,udx ] before getRuntime()
04-06-11 09:48:54 (dbos.14577) [d,udx ] after getRuntime()