Installare Machine Learning Services (Python e R) per SQL Server 2022 in Windows
Si applica a: SQL Server 2022 (16.x)
Questo articolo illustra come installare i Servizi di Machine Learning per SQL Server 2022 in Windows. È possibile usare Servizi di Machine Learning per eseguire gli script Python e R nel database.
Nota
Queste istruzioni sono specifiche per SQL Server 2022 (16.x) in Windows. Per installare Servizi di Machine Learning per SQL Server in Windows per SQL Server 2016 (13.x), SQL Server 2017 (14.x) oppure SQL Server 2019 (15.x), vedere Installare Servizi di Machine Learning per SQL Server (Python e R) in Windows.
Per Linux, vedere Installare SQL Server Machine Learning Services (Python e R) in Linux.
Elenco di controllo per la pre-installazione
È 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 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 di Servizi di Machine Learning è supportata anche in un'istanza del cluster di failover Always On in SQL Server 2019 e versioni successive.
Non installare Machine Learning Services in un controller di dominio. La parte del programma di installazione relativa a Machine Learning Services avrà esito negativo.
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.
Importante
Al termine dell'installazione, assicurarsi di completare i passaggi di post-configurazione descritti in questo articolo, Questi passaggi possono includere l'abilitazione di SQL Server all'uso di script esterni. 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.
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.
Se si verificano errori durante l'installazione, controllare il log di riepilogo nella cartella Setup Bootstrap\LOG (ad esempio %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt
).
Avviare l'Installazione guidata di SQL Server 2022.
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 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 e linguaggio
Questa opzione consente di installare i servizi di database che supportano l'esecuzione di script R e Python.
Questo screenshot mostra le funzionalità dell'istanza da selezionare come minimo durante l'installazione di Servizi di Machine Learning per SQL Server 2022 (16.x).
Installare runtime e pacchetti
A partire da SQL Server 2022 (16.x), i runtime per R, Python e Java non vengono più installati con l'installazione di SQL. Usare invece le sezioni seguenti per installare i runtime e i pacchetti personalizzati.
Configurare il supporto di R
Installare il runtime di R
Scaricare e installare la versione più recente di R 4.2 per Windows.
Installare le dipendenze per
CompatibilityAPI
eRevoScaleR
. Dal terminale R della versione installata eseguire i comandi seguenti:# R Terminal install.packages("iterators") install.packages("foreach") install.packages("R6") install.packages("jsonlite")
Scaricare e installare la versione più recente dei pacchetti
CompatibilityAPI
eRevoScaleR
.install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL) install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
Configurare il runtime di R con SQL Server
Configurare il runtime di R installato con SQL Server. È possibile cambiare la versione predefinita usando l'utilità della riga di comando
RegisterRext.exe
. L'utilità si trova in una cartella dell'applicazione R a seconda dell'installazione. In genere, è in%ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64
.Lo script seguente può essere usato per configurare il runtime di R installato dal percorso della cartella di installazione di
RegisterRext.exe
. Il nome dell'istanza èMSSQLSERVER
per un'istanza predefinita di SQL Server o il nome dell'istanza per un'istanza denominata di SQL Server..\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
Se si configura un'istanza denominata di SQL Server a cui si fa in genere riferimento come ".\SQLEXPRESS" o "MACHINENAME\SQLEXPRESS", includere solo il nome dell'istanza. Ad esempio:
.\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
Usando SQL Server Management Studio (SSMS) o Azure Data Studio, connettersi all'istanza in cui è stato installato Servizi di Machine Learning per SQL Server. Selezionare Nuova query per aprire una finestra di query ed eseguire il comando seguente per abilitare la funzionalità di scripting esterno:
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE
Se la funzionalità è già stata abilitata per un altro linguaggio, non è necessario eseguire
RECONFIGURE
una seconda volta per R. La piattaforma di estensibilità sottostante supporta entrambi i linguaggi. Per verificare, controllare che il comando seguente restituisca1
perconfig_value
erun_value
:EXEC sp_configure 'external scripts enabled';
Riavviare il servizio SQL Server. Il riavvio del servizio ha l'effetto di riavviare automaticamente anche il servizio Launchpad di SQL Server correlato.
Per riavviare il servizio è possibile fare clic con il pulsante destro del mouse sul comando Riavvia per l'istanza in Esplora oggetti di SSMS oppure usare la voce Servizi del Pannello di controllo o Gestione configurazione SQL Server.
Verificare l'installazione eseguendo un semplice comando T-SQL per restituire la versione di R:
EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R'; GO
Configurare il supporto per Python
Installare il runtime Python
Scaricare la versione più recente di Python 3.10 per Windows. Eseguire l'installazione con le opzioni seguenti:
Aprire il programma di installazione di Python e scegliere Personalizza installazione.
Verificare che sia selezionata la casella di controllo Installa utilità di avvio per tutti gli utenti (scelta consigliata).
Per Funzionalità facoltative, selezionare le funzionalità desiderate (o selezionarle tutte).
Nella pagina Opzioni avanzate, selezionare Installa per tutti gli utenti, accettare le altre opzioni predefinite e selezionare Installa.
È consigliabile usare un percorso di installazione Python a cui tutti gli utenti possono accedere (ad esempio
C:\Program Files\Python310
) e non uno specifico di un singolo utente.
Scaricare e
revoscalepy
installare la versione più recente del pacchetto e le relative dipendenze da un nuovo prompt dei comandi con privilegi elevati:cd "C:\Program Files\Python310\" python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
Eseguire i seguenti comandi icacls per concedere l'accesso READ ed EXECUTE alle librerie installate per il Servizio Launchpad di SQL Server e il SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES). È necessario concedere le autorizzazioni all'account del servizio associato al servizio Launchpad, archiviare Gestione configurazione SQL Server.
icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
Se SQL Server è stato installato come un'istanza denominata, l'account del servizio potrebbe avere un oggetto
$
al centro, ad esempio:icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
Configurare il runtime di Python con SQL Server
Configurare il runtime di Python installato con SQL Server. È possibile cambiare la versione predefinita usando l'utilità della riga di comando
RegisterRext.exe
. L'utilità si trova nel percorso di installazione personalizzato, ad esempioC:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs
.Da un prompt dei comandi con privilegi elevati, lo script seguente può essere usato per configurare il runtime di Python installato dal percorso della cartella di installazione di
RegisterRext.exe
. Il nome dell'istanza èMSSQLSERVER
per un'istanza predefinita di SQL Server o il nome dell'istanza per un'istanza denominata di SQL Server.cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs" .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
Se si configura un'istanza denominata di SQL Server a cui si fa in genere riferimento come ".\SQLEXPRESS" o "MACHINENAME\SQLEXPRESS", includere solo il nome dell'istanza. Ad esempio:
cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs" .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
Usare SQL Server Management Studio o Azure Data Studio per connettersi all'istanza in cui è stato installato Servizi di Machine Learning per SQL Server. Selezionare Nuova query per aprire una finestra di query ed eseguire il comando seguente per abilitare la funzionalità di scripting esterno:
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE
Se la funzionalità è già stata abilitata per un altro linguaggio, non è necessario eseguire
RECONFIGURE
una seconda volta per R. La piattaforma di estensibilità sottostante supporta entrambi i linguaggi. Per verificare, controllare che il comando seguente restituisca1
perconfig_value
erun_value
:EXEC sp_configure 'external scripts enabled';
Riavviare il servizio SQL Server. Il riavvio del servizio ha l'effetto di riavviare automaticamente anche il servizio Launchpad di SQL Server correlato.
Per riavviare il servizio è possibile fare clic con il pulsante destro del mouse sul comando Riavvia per l'istanza in Esplora oggetti di SSMS oppure usare la voce Servizi del Pannello di controllo o Gestione configurazione SQL Server.
Verificare l'installazione eseguendo un semplice comando per restituire la versione di Python:
EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python' GO
Installare Java
Per informazioni sull'installazione e l'uso di Java, vedere Installare l'estensione del linguaggio Java per SQL Server in Windows.
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.
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.
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
Il meccanismo di isolamento è stato modificato a partire da SQL Server 2019 in Windows. 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.
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.
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. In alternativa, è possibile configurare i ruoli del database per consentire agli utenti di installare i propri pacchetti. Per altre informazioni, vedere Installare pacchetti Python e Installare nuovi pacchetti R.
Pacchetti RevoScale autonomi per Python e runtime R
I pacchetti RevoScale sono supportati anche come pacchetti autonomi con i runtime Python e R. Per configurare Python o il runtime R per lo scenario autonomo, attenersi alle istruzioni nelle sezioni Installare il runtime Python e Installare il runtime R.
Contenuto correlato
Gli sviluppatori di Python possono apprendere come usare Python con SQL Server seguendo queste esercitazioni:
- Esercitazione Python: Implementare un modello di regressione lineare con il Machine Learning in SQL
- Esercitazione Python: Classificare i clienti tramite clustering K-Means 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: