Condividi tramite


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.

  • L'edizione gratuita più recente.

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).

  1. Avviare l'Installazione guidata di SQL Server 2022.

  2. Nella scheda Installazione selezionare Nuova installazione autonoma di SQL Server o aggiunta di funzionalità a un'installazione esistente.

  3. 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).

    Screenshot della finestra di selezione delle funzionalità con le caselle di controllo selezionate accanto a Servizi motore di database e Machine Learning Services ed estensioni del linguaggio.

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

  1. Scaricare e installare la versione più recente di R 4.2 per Windows.

  2. Installare le dipendenze per CompatibilityAPI e RevoScaleR. Dal terminale R della versione installata eseguire i comandi seguenti:

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. Scaricare e installare la versione più recente dei pacchetti CompatibilityAPI e RevoScaleR.

    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

  1. 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"
    
  2. 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 restituisca 1 per config_value e run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. 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.

  4. 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

  1. Scaricare la versione più recente di Python 3.10 per Windows. Eseguire l'installazione con le opzioni seguenti:

    1. Aprire il programma di installazione di Python e scegliere Personalizza installazione.

    2. Verificare che sia selezionata la casella di controllo Installa utilità di avvio per tutti gli utenti (scelta consigliata).

    3. Per Funzionalità facoltative, selezionare le funzionalità desiderate (o selezionarle tutte).

    4. 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.

  2. Scaricare erevoscalepy 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

  1. 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 esempio C:\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"
    
  2. 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 restituisca 1 per config_value e run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. 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.

  4. 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:

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.

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.

Gli sviluppatori di Python possono apprendere come usare Python con SQL Server seguendo queste esercitazioni:

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: