Installare SQL Server Machine Learning Services (Python e R) in Windows
Si applica a: SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x)
Questo articolo illustra come installare i Servizi di Machine Learning per SQL Server in Windows. È possibile usare Servizi di Machine Learning per eseguire gli script Python e R nel database.
Importante
Queste istruzioni si applicano a SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x). Per SQL Server 2022 (16.x), vedere Installare i Servizi di Machine Learning per SQL Server 2022 in Windows.
Elenco di controllo per la pre-installazione di
È necessaria un'istanza del motore di database. Non è possibile installare solo le funzionalità di Python o R, ma è possibile aggiungerle in modo incrementale a un'istanza autonoma esistente.
Per assicurare la continuità aziendale, per Servizi di Machine Learning è disponibile il supporto di Gruppi di disponibilità Always On. Installare Machine Learning Services e configurare i pacchetti in ogni nodo.
L'installazione dei Servizi di Machine Learning non è supportata in un'istanza del cluster di failover Always On in SQL Server 2017. È supportata con SQL Server 2019 e versioni successive. È necessario installare i Servizi di Machine Learning in fase di installazione e non è possibile aggiungere funzionalità a un'istanza del cluster di failover esistente dopo l'installazione.
Non installare Machine Learning Services in un controller di dominio. La parte del programma di installazione relativa a Machine Learning Services avrà esito negativo.
Non installare Funzionalità condivise>Machine Learning Server (Standalone) nello stesso computer su cui è in esecuzione un'istanza nel database. Un server autonomo entrerebbe in competizione per le stesse risorse, riducendo le prestazioni di entrambe le installazioni.
L'installazione affiancata con altre versioni di Python e R è supportata ma sconsigliata. Questa installazione è supportata perché l'istanza di SQL Server usa le proprie copie delle distribuzioni R e Anaconda open source. È sconsigliata perché l'esecuzione di codice che usa Python e R nel computer al di fuori di SQL Server può causare dei problemi:
- L'uso di una libreria e di file eseguibili diversi creerà risultati diversi, incoerenti rispetto a quelli ottenuti dall'esecuzione in SQL Server.
- SQL Server non riesce a gestire script R e Python in esecuzione in librerie esterne, con conseguenti conflitti di risorse.
Nota
Machine Learning Services viene installato per impostazione predefinita nei cluster Big Data di SQL Server. Non è necessario seguire la procedura descritta in questo articolo se si usa un cluster Big Data. Per altre informazioni, vedere Usare Machine Learning Services (Python e R) in cluster Big Data.
Importante
Al termine dell'installazione, assicurarsi di completare i passaggi di post-configurazione descritti in questo articolo, tra cui l'abilitazione di SQL Server per l'uso di script esterni e l'aggiunta degli account necessari per consentire a SQL Server di eseguire i processi R e Python per conto dell'utente. Per completare le modifiche alla configurazione è in genere necessario riavviare l'istanza o il servizio Launchpad.
Ottenere il supporto di installazione
Il percorso per il download di SQL Server dipende dall'edizione:
SQL Server edizioni Enterprise, Standard e Express. Queste edizioni sono concesse in licenza per l'uso in produzione. Per Enterprise Edition e Standard Edition, contattare il fornitore software di fiducia per richiedere il supporto di installazione. È possibile trovare informazioni sull'acquisto e una directory per i partner Microsoft nel sito Web Microsoft per gli acquisti.
Per altre informazioni su quali edizioni di SQL Server supportano l'integrazione di Python e R con Machine Learning Services, vedere Edizioni e funzionalità supportate di SQL Server 2017.
Per altre informazioni su quali edizioni di SQL Server supportano l'integrazione di Python e R con i Servizi di Machine Learning, vedere Edizioni e funzionalità supportate di SQL Server 2019.
Eseguire l'installazione.
Per le installazioni locali, è necessario eseguire il programma di installazione come amministratore. Se si installa SQL Server da una condivisione remota, è necessario utilizzare un account di dominio che disponga di autorizzazioni di lettura ed esecuzione per tale condivisione.
Avviare l'Installazione guidata di SQL Server.
Nella scheda Installazione selezionare Nuova installazione autonoma di SQL Server o aggiunta di funzionalità a un'installazione esistente.
Nella pagina Selezione funzionalità selezionare queste opzioni:
Servizi motore di database
Per usare R e Python con SQL Server, è necessario installare un'istanza del motore di database. È possibile usare un'istanza predefinita oppure un'istanza denominata.
Machine Learning Services (In-Database)
Questa opzione consente di installare i servizi di database che supportano l'esecuzione di script R e Python.
Servizi motore di database
Per usare R o Python con SQL Server, è necessario installare un'istanza del motore di database. È possibile usare un'istanza predefinita oppure un'istanza denominata.
Servizi di Machine Learning ed estensioni del linguaggio
Questa opzione consente di installare i servizi di database che supportano l'esecuzione di script R e Python.
R
Selezionare questa opzione per aggiungere i pacchetti Microsoft R, l'interprete e la distribuzione di R open source.
Python
Selezionare questa opzione per aggiungere i pacchetti Microsoft Python, il file eseguibile di Python 3.5 e alcune librerie dalla distribuzione Anaconda.
Per informazioni sull'installazione e l'uso di Java, vedere Installare l'estensione del linguaggio Java per SQL Server in Windows.
Nota
Non selezionare l'opzione per Machine Learning Server (Standalone) sotto Caratteristiche condivise. Questa opzione è destinata all'uso in un computer separato.
Nella pagina Consenso per installare Microsoft R Open selezionare Accetta>Avanti.
Il contratto di licenza copre:
- Microsoft R Open.
- Pacchetti e strumenti di base R Open Source.
- Pacchetti R avanzati e provider di connettività del team di sviluppo Microsoft.
Nella pagina Consenso per installare Python, selezionare Accetta>Avanti. Il contratto di licenza open source per Python disciplina anche l'uso di Anaconda e degli strumenti correlati, oltre ad alcune nuove librerie Python del team di sviluppo Microsoft.
Nota
Se il computer in uso non ha accesso a Internet, è possibile sospendere l'installazione a questo punto e scaricare i programmi di installazione separatamente. Per altre informazioni, vedere Installare i componenti di Machine Learning in computer senza accesso a Internet.
Nella pagina Inizio installazione, verificare che le opzioni selezionate siano incluse e selezionare Installa:
- Servizi motore di database
- Servizi di Machine Learning (in-database)
- R o Python oppure entrambi
Si noti la posizione della cartella nel percorso
..\Setup Bootstrap\Log
in cui sono archiviati i file di configurazione. Al termine dell'installazione, è possibile esaminare i componenti installati nel file di riepilogo.Dopo che l'installazione è completata, riavviare il computer, se richiesto. È importante leggere il messaggio visualizzato nell'Installazione guidata al termine dell'installazione. Per altre informazioni, vedere Visualizzare e leggere i file di log del programma di installazione di SQL Server.
Nella pagina Consenso per installare Microsoft R Open selezionare Accetta>Avanti. Questo contratto di licenza disciplina l'uso di Microsoft R Open, che include una distribuzione di pacchetti e strumenti R open source di base. Include inoltre pacchetti R avanzati e provider di connettività del team di sviluppo Microsoft.
Nella pagina Consenso per installare Python, selezionare Accetta>Avanti. Il contratto di licenza open source per Python disciplina anche l'uso di Anaconda e degli strumenti correlati, oltre ad alcune nuove librerie Python del team di sviluppo Microsoft.
Nella pagina Inizio installazione, verificare che le opzioni selezionate siano incluse e selezionare Installa:
- Servizi motore di database
- Servizi di Machine Learning (in-database)
- R o Python oppure entrambi
Si noti la posizione della cartella nel percorso
..\Setup Bootstrap\Log
in cui sono archiviati i file di configurazione. Al termine dell'installazione, è possibile esaminare i componenti installati nel file di riepilogo.Dopo che l'installazione è completata, riavviare il computer, se richiesto. È importante leggere il messaggio visualizzato nell'Installazione guidata al termine dell'installazione. Per altre informazioni, vedere Visualizzare e leggere i file di log del programma di installazione di SQL Server.
Impostare le variabili di ambiente
Per integrare solo le funzionalità di R, è necessario impostare la variabile di ambiente MKL_CBWR
per avere la certezza di ottenere un output coerente dai calcoli di Intel Math Kernel Library (MKL).
Nel Pannello di controllo selezionare Sistema e sicurezza>Sistema>Impostazioni di sistema avanzate>Variabili d'ambiente.
Creare una nuova variabile dell'utente o di sistema:
- Impostare il nome della variabile su
MKL_CBWR
. - Impostare
AUTO
come valore della variabile.
- Impostare il nome della variabile su
Per questo passaggio è necessario riavviare il server. Se si intende abilitare l'esecuzione di script, è possibile sospendere il riavvio fino a quando non sono state completate tutte le operazioni di configurazione.
Abilitare l'esecuzione di script
Usare SQL Server Management Studio o Azure Data Studio per connettersi all'istanza in cui è stato installato SQL Server Machine Learning Services.
Selezionare Nuova query per aprire una finestra di query e quindi eseguire il comando seguente:
EXEC sp_configure
A questo punto, il valore della proprietà
external scripts enabled
deve essere0
. La funzionalità è disattivata per impostazione predefinita. Per attivarlo in modo da poter eseguire script R o Python, eseguire l'istruzione seguente:EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE
Se questa funzionalità è già stata abilitata per il linguaggio R, non occorre eseguire
RECONFIGURE
una seconda volta per Python. La piattaforma di estendibilità sottostante supporta entrambi i linguaggi.
Riavvia il servizio
Al termine dell'installazione riavviare il motore di database. Il riavvio del servizio ha l'effetto di riavviare automaticamente anche il servizio Launchpad di SQL Server correlato.
È possibile riavviare il servizio usando uno di questi metodi:
- Fare clic con il pulsante destro del mouse sul comando Riavvia per l'istanza in Esplora oggetti in SSMS
- Elemento Microsoft Management Console (MMC) dei Servizi in Pannello di controllo
- Gestione configurazione SQL Server
Verifica l'installazione
Usare la procedura seguente per verificare che tutti i componenti usati per avviare gli script esterni siano in esecuzione:
In SQL Server Management Studio, aprire una nuova finestra di query ed eseguire il comando seguente:
EXECUTE sp_configure 'external scripts enabled'
Dopodiché,
run_value
è impostato su1
.Aprire l'elemento del pannello di controllo Servizi o Gestione configurazione SQL Server e verificare che il servizio Launchpad di SQL Server sia in esecuzione. Dovrebbe essere in esecuzione un solo servizio per ogni istanza del motore di database in cui è installato R o Python. Per altre informazioni, vedere Architettura di estensibilità in Servizi di Machine Learning per SQL Server.
Se Launchpad è in esecuzione, è possibile eseguire script Python e R semplici per verificare che i runtime di script esterni possano comunicare con SQL Server.
Aprire una nuova finestra Query in SQL Server Management Studio e quindi eseguire uno script, ad esempio:
Per R:
EXEC sp_execute_external_script @language =N'R', @script=N' OutputDataSet <- InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO
Per Python:
EXEC sp_execute_external_script @language =N'Python', @script=N' OutputDataSet = InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO
La prima volta che viene caricato il runtime di uno script esterno, l'esecuzione dello script può richiedere un po' di tempo. I risultati saranno simili ai seguenti:
hello 1
Nota
Le colonne o le intestazioni usate nello script Python non vengono restituite automaticamente. Per aggiungere nomi di colonna per l'output, è necessario specificare lo schema per il set di dati restituito. A tale scopo, usare il parametro WITH RESULTS
della stored procedure, assegnando un nome alle colonne e specificando il tipo di dati SQL.
È ad esempio possibile aggiungere la riga seguente per generare un nome di colonna arbitrario: WITH RESULT SETS ((Col1 AS int))
.
Applica aggiornamenti
Installazione esistente
Se Servizi di Machine Learning è stato aggiunto a un'istanza di SQL Server esistente ed è stato applicato in precedenza un aggiornamento cumulativo (CU), le versioni del motore di database e la funzionalità dei Servizi di Machine Learning potrebbero essere diverse. Questa differenza può comportare un comportamento o errori imprevisti perché launchpad.exe
e sqlservr.exe
hanno versioni diverse.
Seguire questa procedura per portare i Servizi di Machine Learning alla stessa versione del motore di database.
Determinare l'aggiornamento cumulativo (CU) effettuato per il motore di database. Eseguire questa istruzione T-SQL:
SELECT @@VERSION
Ecco un esempio di output del CU8 di SQL Server 2019:
Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64) Nov 2 2020 18:35:09 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)
Per altre informazioni, vedere Determinare la versione, l'edizione, il livello di aggiornamento di SQL Server e dei relativi componenti.
Se necessario, scaricare l'aggiornamento cumulativo installato per il motore di database.
Eseguire l'installazione dell'aggiornamento cumulativo (CU) e seguire le istruzioni per installare l'aggiornamento cumulativo per i Servizi di Machine Learning. Selezionare l'istanza esistente in cui è installato Servizi di Machine Learning. Lo stato dell'aggiornamento mostra Installato in modo incompleto nella pagina Selezione delle funzionalità.
Seleziona Avanti per continuare l'installazione.
Nuova installazione
Se si installa Servizi di Machine Learning con una nuova installazione del motore di database SQL Server, è consigliabile applicare l'aggiornamento cumulativo più recente sia al motore di database che ai componenti di apprendimento automatico.
Nei dispositivi connessi a Internet gli aggiornamenti cumulativi vengono in genere applicati tramite Windows Update. Tuttavia, è anche possibile usare i passaggi seguenti per gli aggiornamenti controllati. Quando si applica l'aggiornamento per il motore di database, il programma di installazione esegue il pull degli aggiornamenti cumulativi per le funzionalità di Python o R installate nella stessa istanza.
I server che non sono connessi a Internet richiedono alcuni passaggi aggiuntivi. Per altre informazioni, vedere Installare in computer senza accesso a Internet > Applicare aggiornamenti cumulativi.
Iniziare con un'istanza di base già installata: Versione iniziale di SQL Server.
Passare all'elenco degli aggiornamenti per Microsoft SQL Server.
Selezionare l'aggiornamento cumulativo più recente. L'eseguibile viene scaricato ed estratto automaticamente.
Eseguire la configurazione e accettare i termini della licenza.
Nella pagina Selezione delle funzionalità, esaminare le funzionalità per le quali vengono applicati gli aggiornamenti cumulativi. Dovrebbero essere visualizzate tutte le funzionalità installate per l'istanza corrente, incluse quelle di Machine Learning. Il programma di installazione scarica i file CAB necessari per aggiornare tutte le funzionalità.
Continuare la procedura guidata. Accettare i termini della licenza per le distribuzioni R e Python.
Configurazione aggiuntiva
Se la verifica degli script esterni ha esito positivo, è possibile eseguire comandi R o Python da SQL Server Management Studio, Visual Studio Code o qualsiasi altro client che può inviare istruzioni T-SQL al server.
Se si verifica un errore durante l'esecuzione del comando, potrebbe essere necessario eseguire configurazioni aggiuntive per il servizio o il database. A livello di istanza, le configurazioni aggiuntive possono includere:
- Configurare il firewall per Servizi di Machine Learning per SQL Server
- Abilitare protocolli di rete aggiuntivi
- Abilitare connessioni remote
- Creare un account di accesso per SQLRUserGroup
- Gestire le quote disco per evitare che gli script esterni eseguano attività che esauriscono lo spazio su disco
In SQL Server 2019 su Windows è stato modificato il meccanismo di isolamento. Questo meccanismo ha effetto su SQLRUserGroup, sulle regole del firewall, sulle autorizzazioni per i file e sull'autenticazione implicita. Per altre informazioni, vedere Modifiche all'isolamento per Machine Learning Services.
Nel database potrebbero essere necessari degli aggiornamenti di configurazione. Per altre informazioni, vedere Concedere agli utenti l'autorizzazione per Machine Learning Services per SQL Server.
Nota
La necessità di una configurazione aggiuntiva dipende dallo schema di sicurezza, dal percorso in cui è stato installato SQL Server e dalla modalità presumibilmente adottata dagli utenti per connettersi al database ed eseguire script esterni.
Ottimizzazioni suggerite
Ora che tutto il sistema funziona, può essere necessario ottimizzare il server per supportare le funzionalità di Machine Learning o installare un modello di Machine Learning già sottoposto a un training preliminare.
Aggiungere altri account di lavoro
Se si prevede che molti utenti eseguano script contemporaneamente, è possibile aumentare il numero di account di lavoro assegnati al servizio Launchpad. Per altre informazioni, vedere Ridimensionare l'esecuzione simultanea di script esterni in SQL Server Machine Learning Services.
Ottimizzare il server per l'esecuzione di script
Le impostazioni predefinite per l'installazione di SQL Server sono destinate a ottimizzare il bilanciamento del server per un'ampia gamma di altri servizi e applicazioni.
Con le impostazioni predefinite, alle risorse per il Machine Learning vengono applicate talvolta restrizioni o limitazioni, in particolare nel caso di operazioni che richiedono molta memoria.
Per assicurarsi che i processi di Machine Learning siano considerati come prioritari e dispongano delle risorse appropriate, è consigliabile usare la funzionalità Resource Governor di SQL Server per configurare un pool di risorse esterne. Può inoltre essere opportuno modificare la quantità di memoria allocata al motore di database di SQL Server o aumentare il numero di account eseguiti con il servizio Launchpad di SQL Server.
Per configurare un pool di risorse per la gestione delle risorse esterne, vedere Creare un pool di risorse esterne.
Per modificare la quantità di memoria riservata per il database, vedere Opzioni di configurazione server memory.
Per cambiare il numero di account R che possono essere avviati da Launchpad di SQL Server, vedere Dimensionare l'esecuzione simultanea di script esterni in Servizi di Machine Learning per SQL Server.
Se si usa l'edizione Standard e non è disponibile Resource Governor, per gestire le risorse del server è possibile usare le viste a gestione dinamica (DMV), gli eventi estesi di SQL Server e il monitoraggio eventi di Windows per facilitare la gestione delle risorse del server.
Installare pacchetti Python e R aggiuntivi
Le soluzioni Python e R create per SQL Server possono chiamare:
- Funzioni di base
- Funzioni dei pacchetti proprietari installati con SQL Server.
- Pacchetti di terze parti compatibili con la versione di Python open source e R installate da SQL Server.
I pacchetti di SQL Server da usare devono essere installati nella libreria predefinita usata dall'istanza. Se nel computer si usa un'installazione separata di Python o R oppure se i pacchetti sono stati installati nelle librerie utente, non è possibile usare tali pacchetti da T-SQL.
Per installare e gestire pacchetti aggiuntivi, è possibile configurare gruppi di utenti per condividere i pacchetti a livello di singolo database oppure configurare ruoli di database per consentire agli utenti di installare i propri pacchetti. Per altre informazioni, vedere Installare pacchetti Python e Installare nuovi pacchetti R.
Passaggi successivi
Gli sviluppatori di Python possono apprendere come usare Python con SQL Server seguendo queste esercitazioni:
- Esercitazione Python: Stimare il noleggio di sci con la regressione lineare in Servizi di Machine Learning per SQL Server
- Esercitazione Python: Creare un modello per classificare i clienti con il Machine Learning in SQL
Gli sviluppatori R possono iniziare alcuni semplici esempi e con le nozioni di base sul funzionamento di R con SQL Server. Per il passaggio successivo, vedere i collegamenti seguenti: