Esercitazione: Sviluppo SQL per data scientist R
Si applica a: SQL Server 2016 (13.x) e versioni successive
Questa esercitazione per data scientist illustra come creare una soluzione end-to-end per la modellazione predittiva basata sul supporto delle funzionalità R in SQL Server 2016 o SQL Server 2017. In questa esercitazione viene usato il database NYCTaxi_sample in SQL Server.
Si usa una combinazione di codice R, dati SQL Server e funzioni SQL personalizzate per creare un modello di classificazione che indica la probabilità che l'autista riceva una mancia per una determinata corsa. Si distribuisce anche il modello R in SQL Server e si usano i dati del server per generare punteggi basati sul modello.
Questo esempio può essere esteso a tutti i tipi di problemi della vita reale, ad esempio alla previsione delle risposte dei clienti alle campagne di vendita o alla stima delle spese o della partecipazione a eventi. Poiché il modello può essere richiamato da una stored procedure, è possibile incorporarlo facilmente in un'applicazione.
Poiché la procedura dettagliata è pensata per far conoscere R Services (In-Database) agli sviluppatori R, R viene usato il più possibile. Ciò non significa però che R sia necessariamente lo strumento migliore per ogni attività. In molti casi, SQL Server potrebbe offrire prestazioni migliori, in particolare in attività quali l'aggregazione dei dati e la progettazione delle funzionalità. Tali attività possono trarre vantaggio dalle nuove funzionalità di SQL Server, ad esempio gli indici columnstore con ottimizzazione per la memoria. Le ottimizzazioni possibili vengono evidenziate man mano.
Prerequisiti
Machine Learning Services per SQL Server con integrazione di R o R Services per SQL Server 2016
Autorizzazioni per il database concesse a un utente del database mappato su un login di SQL Server
Un ambiente IDE R come RStudio oppure lo strumento RGUI predefinito incluso con R
È consigliabile eseguire questa procedura dettagliata in una workstation client. È necessario essere in grado di connettersi, nella stessa rete, a un computer SQL Server con SQL Server e il linguaggio R abilitato. Per istruzioni sulla configurazione della workstation, vedere Configurare un client di data science per lo sviluppo in R.
In alternativa, è possibile eseguire la procedura dettagliata in un computer che dispone sia di SQL Server che di un ambiente di sviluppo R, ma questa configurazione è sconsigliata per un ambiente di produzione. Se è necessario collocare client e server nello stesso computer, assicurarsi di installare un secondo set di librerie Microsoft R per l'invio di script R da un client "remoto". Non usare le librerie R installate nella cartella Programmi dell'istanza di SQL Server. In particolare, se si usa un solo computer, per supportare le operazioni client e server è necessaria la libreria RevoScaleR in entrambi i percorsi.
- C:\Programmi\Microsoft\R Client\R_SERVER\library\RevoScaleR
- C:\Programmi\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR
Pacchetti R aggiuntivi
Questa procedura dettagliata richiede alcune librerie R che non sono installate per impostazione predefinita come parte di R Services (In-Database). È necessario installare tali pacchetti sia nel client nel quale si svilupperà la soluzione, sia nel computer SQL Server nel quale si distribuirà la soluzione stessa.
In una workstation client
Nell'ambiente R copiare le righe seguenti ed eseguire il codice in una finestra della console (Rgui o IDE). Alcuni pacchetti installano anche i pacchetti necessari. In tutto vengono installati circa 32 pacchetti. Per completare questo passaggio è necessaria una connessione Internet.
# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}
Nel server
Sono disponibili diverse opzioni per l'installazione di pacchetti in SQL Server. Ad esempio, SQL Server fornisce una funzionalità di gestione dei pacchetti R che consente agli amministratori di database di creare un repository di pacchetti e assegnare all'utente i diritti per installare i propri pacchetti. Tuttavia, se si è un amministratore del computer, è possibile installare nuovi pacchetti usando R, facendo attenzione a installarli nella libreria corretta.
Nota
Nel server non installare in una libreria utente, anche se viene proposto a schermo. Se si installa in una libreria utente, l'istanza di SQL Server non sarà in grado di trovare o eseguire i pacchetti. Per altre informazioni, vedere Installare nuovi pacchetti in SQL Server.
Nel computer SQL Server aprire RGui.exe come amministratore. Se R Services per SQL Server è stato installato con le impostazioni predefinite, Rgui.exe è disponibile in C:\Programmi\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64.
Al prompt di R, eseguire i comandi R seguenti:
install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
In questo esempio la funzione grep di R viene usata per cercare il vettore di percorsi disponibili e trovare quello che include "Program Files". Per altre informazioni, vedere RDocumentation per il pacchetto di base.
Se si ritiene che i pacchetti siano già installati, controllare l'elenco dei pacchetti installati eseguendo installed.packages()
.