Usare T-SQL (CREATE EXTERNAL LIBRARY) per installare i pacchetti R in SQL Server

Si applica a: Solo SQL Server 2017 (14.x)

Questo articolo illustra come installare nuovi pacchetti R in un'istanza di SQL Server in cui è abilitato Machine Learning. È possibile scegliere tra più approcci. L'uso di T-SQL è consigliabile agli amministratori di server che non hanno familiarità con R.

L'istruzione CREATE EXTERNAL LIBRARY consente di aggiungere un pacchetto o un set di pacchetti a un'istanza o a un database specifico senza eseguire direttamente il codice R o Python. Questo metodo richiede tuttavia la preparazione del pacchetto e autorizzazioni aggiuntive per il database.

  • Tutti i pacchetti devono essere disponibili come file compresso locale, anziché essere scaricati su richiesta da Internet.

  • Tutte le dipendenze devono essere identificate in base al nome e alla versione e devono essere incluse nel file ZIP. L'istruzione avrà esito negativo se i pacchetti necessari non sono disponibili, incluse le dipendenze dei pacchetti downstream.

  • È necessario essere un utente db_owner o disporre dell'autorizzazione CREATE EXTERNAL LIBRARY in un ruolo del database. Per informazioni dettagliate, vedere CREATE EXTERNAL LIBRARY.

Scaricare i pacchetti in formato archivio

Se si installa un singolo pacchetto, scaricarlo in formato compresso.

A causa delle dipendenze, generalmente vengono installati più pacchetti. Quando un pacchetto richiede altri pacchetti, è necessario verificare che tutti siano accessibili tra loro durante l'installazione. È consigliabile creare un repository locale usando miniCRAN, per assemblare una raccolta completa di pacchetti, e igraph per analizzare le dipendenze dei pacchetti. Se si installa la versione errata di un pacchetto o si omette una dipendenza del pacchetto, può succedere che l'istruzione CREATE EXTERNAL LIBRARY non venga eseguita correttamente.

Copiare il file in una cartella locale

Copiare il file compresso contenente tutti i pacchetti in una cartella locale nel server. Se non si ha accesso al file system nel server, è anche possibile passare un pacchetto completo come variabile, usando un formato binario. Per altre informazioni, vedere CREATE EXTERNAL LIBRARY.

Eseguire l'istruzione per caricare i pacchetti

Aprire una finestra Query usando un account con privilegi amministrativi.

Eseguire l'istruzione T-SQL CREATE EXTERNAL LIBRARY per caricare la raccolta di pacchetti compressi nel database.

L'istruzione seguente ad esempio definisce come origine del pacchetto un repository miniCRAN contenente il pacchetto randomForest e le relative dipendenze.

CREATE EXTERNAL LIBRARY [randomForest]
FROM (CONTENT = 'C:\Temp\Rpackages\randomForest_4.6-12.zip')
WITH (LANGUAGE = 'R');

Non è possibile usare un nome arbitrario. Il nome della libreria esterna deve avere lo stesso nome che si prevede di usare quando si carica o chiama il pacchetto.

Verificare l'installazione del pacchetto

Se la libreria viene creata correttamente, è possibile eseguire il pacchetto in SQL Server chiamandolo all'interno di una stored procedure.

EXEC sp_execute_external_script
@language =N'R',
@script=N'library(randomForest)'

Vedi anche