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.
- 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.