Passagem de código para o R AE
Os adaptadores de linguagem para linguagens compiladas, como C++ e Fortran, são projetados como invólucros para a API C e não permitem código personalizado no tempo de execução. A linguagem R é diferente porque cada trecho de R é interpretado em vez de compilado quando é iniciado como um Analytic Executable.
Supõe-se que, quando você estiver usando o R, o código seja passado para o AE por meio de variáveis de ambiente como texto simples serializado e codificado base-64 ou apontando para um arquivo salvo no sistema de arquivos. Em alguns desses modos, presume-se a presença de objetos R serializados, enquanto em outros o código é passado como está. Comum a todos os modos é que a entrada do usuário é passada como o último argumento da função ou agregado que está sendo iniciado. Esse mecanismo é chamado de ambiente dinâmico:
SELECT * FROM some_table, TABLE WITH FINAL(r_udtf(some_table.some_column,
'ABSOLUTE_PATH=/path/to/a/file.R'));
Os modos disponíveis são:
- CAMINHO_ABSOLUTO
- Aponta para qualquer arquivo disponível no sistema de arquivos, com o arquivo referenciado que contém uma lista serializada com funções e dados.
- CAMINHO DO ESPAÇO DE TRABALHO
- Aponta para um arquivo do mesmo formato, mas localizado no diretório do espaço de trabalho, que, por padrão, é ' $NZ_EXPORT_DIR/ae/workspace/nz/r_ae.
- CAMINHO SIMPLES
- Aponta para um arquivo que contém o código-fonte do R, incluindo o mesmo conteúdo. Nesse caso, o arquivo referenciado não é serializado.
- CÓDIGO_SERIALIZADO
- Inclui uma lista serializada e base64-encoded.
- CODE_PLAIN
- Fornece código em texto simples; esse modo é mais adequado para incorporar código R em consultas SQL e procedimentos armazenados, mas requer cuidado para garantir que o código seja escapado corretamente, conforme exigido pelo SQL e pelo Dynamic Environment.