Da pochissimi giorni è stata rilasciata la CTP3 di SQL Server 2016. Tra le numerose features, di particolare intresse è l’integrazione con R.

In questo articolo riassumiamo i passaggio per installare le “Advanced Analytics Extentions”, che consentono l’utilizzo del software statistico all’interno di SQL Server.
Inoltre ne descriviamo in breve il funzionamento e l’utilizzo di base.

Installazione

Durante l’installazione di SQL Server 2016 occorre selezionare, tra le festures disponibili, quella nominata “Advanced Analytics Extensions”. Alla fine dell’installazione, sono richieste ulteriori operazioni. GLi articoli di MSDN https://msdn.microsoft.com/en-us/library/mt590808.aspx e https://msdn.microsoft.com/en-us/library/mt590536.aspx spiegano come effettuare tutti i passaggi necessari.

Configurazione

L’ultima operazione da compiere riguarda l’esecuzione di sp_configure in SQL Server, per abilitare l’esecuzione di script esterni:

sp_configure ‘external scripts enabled’, 1

reconfigure

GO

E’ possibile modificare alcune impostazioni dell’integrazine con R, modificando il file SQL Instance Path\binn\rlauncher.config.

In particolare tramite la voce MEMORY_LIMIT_PERCENT è possibile midificare la percentuale di memoria disponibile per R: ild efault è 20% del torarle della RAM

Utilizzo

Ora siamo in grado di eseguire script R attarverso la stored procedure sp_execute_external_script, che esponei seguenti parametri

  • @language, che indica il linguaggio dello script da eseguire (R)
  • @script, lo script vero e proprio
  • @input_data_1,una query SQL che recupera i dati di input
  • @input_data_1_name, il nome con cui il dataset di input è visto all’interno dello script (di default è InputDataSet)
  • @output_data_1_name, il nome del dataset di output (di default è OutputDataSet)

Il comando è terminato con la specifica dello chema del risultato, attraverso la clausola WITH RESULT SETS ((colonna tipo dato NULL/NOT NULL, ….));

All’interno dello script, passato attraverso il parametro @script, sarà necessario utilizzare i nomi di default InputDataSet e OutputDataSet per ottenere i dati SQL Server e per ritornare l’output, a meno d i non specificare i ripettivi nomi nei parametri @input_data_1_name e @output_data_1_name:

Occorre precisare che l’esecuzione dello script avviene attraverso il “launchpad service” all’interno del processo BxLserver.exe (Ovvero il componente Revolution Analytics Communication Component for SQL Server).

Esempi

Come primo esempio di utilizzo di sp_execute_external_script, recuperiamo la lista dei package installati ed utilizzabili da SQL Server:

Un altro esempio che proponiamo riguarda la previsione effettuata su una serie storica.
La serie storica in esame è costituita dalle quantità ordinate mensili ricavate dalla tabella FactInternetSales del database di demo AdventureWorksDW2012.
Le due immagini che seguono mostrano rispettivamente, la serie storica delle quantità (con la relativa query di estrazione) e la prediction per il periodo successivo effettuata con uno script R che utilizza la funzione HoltWInters.

Il codice è scaricabile qui.

Conclusioni

L’integrazione con R consente ri richiamare direttamente da SQL Server script R per l’elaborazione avanzata dei dati. In particolare la feature agevola la costruzione di modelli di data mining attraverso una più efficiente comunicazione tra R e SQL Server.

Alessandro Rezzani

Sono un consulente senior nell’ambito della Business Intelligence, specializzato in analisi di Big Data e tecniche di Analisi Predittiva. Nel 2016 ho fondato Dataskills, presto diventata azienda di riferimento nel territorio italiano per soluzioni di Data Science. Sono anche ricercatore e professore presso l’Università Bocconi di Milano.
Leggi la mia Biografia