Informações de registro e tempo de execução da linguagem R
Este exemplo explora a funcionalidade de registro que pode não ser usada normalmente.
Código
O registro em log pode ajudá-lo a rastrear a execução de um AE. O AE deve ser registrado com uma máscara de registro e o registro deve ser ativado por meio do nzudxdbg. As informações de tempo de execução fornecem estatísticas sobre o sistema NPS, incluindo o número de fatias de dados, S-Blades e local de execução.
Digite o seguinte código no arquivo /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()")
}
Compilação
Compile o código:
/nz/export/ae/utilities/bin/compile_ae --language r --template compile \
--version 3 --db dev --user nz /tmp/logrun.R
Registro
Registre o exemplo usando as opções --mem e --mask. A opção --mask ativa o registro para DEBUG e a opção --mem define as informações de tempo de execução da memória.
/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
Executando
Antes de executar, ative o registro executando nzudxdbg:
>nzudxdbg
Processing 1 spus
.
done
Processing host
done
Execute a consulta no 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)
O registro do sistema NPS aparece na janela em que o sistema NPS foi iniciado:
04-06-11 09:48:54 (dbos.14577) [d,udx ] before getRuntime()
04-06-11 09:48:54 (dbos.14577) [d,udx ] after getRuntime()