Passare il codice a R AE

Gli adattatori di linguaggio per i linguaggi compilati come C++ e Fortran sono progettati come wrapper per l'API C e non consentono di inserire codice personalizzato nel tempo di esecuzione. Il linguaggio R è diverso perché ogni snippet R viene interpretato anziché compilato quando viene avviato come eseguibile analitico.

Si presume che quando si usa R, il codice venga passato all'AE attraverso le variabili d'ambiente come testo semplice serializzato e codificato base-64, oppure puntando a un file salvato nel file system. In alcune di queste modalità, si presuppone la presenza di oggetti R serializzati, mentre in altre il codice è passato così com'è. Tutte le modalità sono accomunate dal fatto che l'input dell'utente viene passato come ultimo argomento della funzione o dell'aggregato che viene avviato. Questo meccanismo è chiamato Ambiente dinamico:
SELECT * FROM some_table, TABLE WITH FINAL(r_udtf(some_table.some_column,
'ABSOLUTE_PATH=/path/to/a/file.R'));
Le modalità disponibili sono:
PERCORSO_ASSOLUTO
Punta a qualsiasi file disponibile nel file system, con il file di riferimento che contiene un elenco serializzato con funzioni e dati.
Se si vuole accedere a questo file sia dall'host che dalle SPU, la soluzione migliore è salvarlo nella condivisione NFS. In particolare, la condivisione NFS è indicata dalla variabile d'ambiente '$NZ_EXPORT_DIR '$NZ_EXPORT_DIR/ae.
PERCORSO_SPAZIO_LAVORO
Punta a un file dello stesso formato, ma situato nella directory dell'area di lavoro, che per impostazione predefinita è ' $NZ_EXPORT_DIR/ae/workspace/nz/r_ae.
PLAIN_PATH
Punta a un file che contiene il codice sorgente di R, con gli stessi contenuti. In questo caso, il file di riferimento non viene serializzato.
CODICE_SERIALIZZATO
Include un elenco serializzato e base64-encoded.
CODICE_PLAIN
Fornisce il codice in chiaro; questa modalità è la più adatta per incorporare il codice R nelle query SQL e nelle stored procedure, ma richiede cautela per garantire che il codice sia correttamente evaso, come richiesto da SQL e Dynamic Environment.