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 Machine Learning Services per SQL Server 2022 in Windows. È possibile usare Machine Learning Services per eseguire script Python e R nel database.

Nota

Queste istruzioni sono specifiche di SQL Server 2022 (16.x) in Windows. Per installare MACHINE Learning Services per SQL Server in Windows per SQL Server 2016 (13.x), SQL Server 2017 (14.x) o SQL Server 2019 (15.x), vedere Installare Machine Learning Services (Python e R) di SQL Server in Windows.

Per Linux, vedere Installare SQL Server Machine Learning Services (Python e R) in Linux.

Elenco di controllo di preinstallazione

  • È 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 la continuità aziendale, i gruppi di disponibilità Always On sono supportati per Machine Learning Services. Installare Machine Learning Services e configurare i pacchetti in ogni nodo.

  • L'installazione di Machine Learning Services è supportata anche in un'istanza del cluster di failover AlwaysOn 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 side-by-side con altre versioni di Python e R è supportata, ma non è consigliabile. Questa installazione è supportata perché l'istanza di SQL Server usa le proprie copie delle distribuzioni R e Anaconda open source. Non è consigliabile perché l'esecuzione di codice che usa Python e R in un computer esterno a SQL Server può causare problemi:

    • L'uso di una libreria diversa e di file eseguibili diversi creerà risultati incoerenti a ciò che si sta eseguendo in SQL Server.
    • SQL Server non è in grado di gestire script R e Python eseguiti in librerie esterne, causando conflitti di risorse.

Importante

Al termine dell'installazione, assicurarsi di completare i passaggi successivi alla 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:

  • Edizioni SQL Server Enterprise, Standard ed 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 di installazione durante l'installazione, controllare il log di riepilogo nella cartella del log di Bootstrap di installazione , 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.

    • Machine Learning Services e lingua

      Questa opzione consente di installare i servizi di database che supportano l'esecuzione di script R e Python.

    Questo screenshot mostra le funzionalità minime dell'istanza da verificare quando si installa SQL Server 2022 (16.x) Machine Learning Services.

    Screenshot of feature selection showing check boxes next to Database Engine Services and Machine Learning Services and Language.

Installare runtime e pacchetti

A partire da SQL Server 2022 (16.x), i runtime per R, Python e Java non vengono più forniti o installati con l'installazione di SQL Server. Usare invece le sezioni seguenti per installare i runtime e i pacchetti personalizzati.

Configurare il supporto di R

Installare il runtime 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 di CompatibilityAPI e RevoScaleR pacchetti:

    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 R con SQL Server

  1. Configurare il runtime di R installato con SQL Server. È possibile modificare la versione predefinita usando l'utilità della RegisterRext.exe riga di comando. L'utilità si trova in una cartella dell'applicazione R che dipende dall'installazione. In genere, è in %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64.

    È possibile usare lo script seguente per configurare il runtime R installato dal percorso della cartella di installazione di RegisterRext.exe. Il nome dell'istanza è MSSQLSERVER relativo a un'istanza predefinita di SQL Server o al 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 Machine Learning Services per SQL Server. Selezionare Nuova query per aprire una finestra di query e quindi 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 estendibilità sottostante supporta entrambi i linguaggi. Per verificare, verificare 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.

    È possibile riavviare il servizio usando il comando Riavvia con il pulsante destro del mouse per l'istanza in SSMS Esplora oggetti oppure usando l'elemento Servizi in Pannello di controllo oppure usando 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. Installarlo usando le opzioni seguenti:

    1. Aprire l'applicazione di installazione di Python e selezionare 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 altre opzioni predefinite e quindi 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 e installare la versione più recente del revoscalepy 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 comandi icacls seguenti per concedere l'accesso READ e EXECUTE alle librerie installate al servizio Launchpad di SQL Server e ALD 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 Python con SQL Server

  1. Configurare il runtime di Python installato con SQL Server. È possibile modificare la versione predefinita usando l'utilità della RegisterRext.exe riga di comando. 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 è possibile usare lo script seguente per configurare il runtime Python installato dal percorso della cartella di installazione di RegisterRext.exe. Il nome dell'istanza è MSSQLSERVER relativo a un'istanza predefinita di SQL Server o al 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 MACHINE Learning Services per SQL Server. Selezionare Nuova query per aprire una finestra di query e quindi 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 estendibilità sottostante supporta entrambi i linguaggi. Per verificare, verificare 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.

    È possibile riavviare il servizio usando il comando Riavvia con il pulsante destro del mouse per l'istanza in SSMS Esplora oggetti oppure usando l'elemento Servizi in Pannello di controllo oppure usando Gestione configurazione SQL Server.

  4. Verificare l'installazione eseguendo un comando semplice 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 di 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 potrebbe essere necessario aggiornare la 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 edizione Standard e non si dispone di Resource Governor, è possibile usare le viste a gestione dinamica, gli eventi estesi di SQL Server e il monitoraggio degli eventi di Windows per gestire le 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 che si desidera usare da SQL Server 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 pacchetti a livello di 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 pacchetto autonomo con i runtime Python e R. Per configurare Python o il runtime R per lo scenario autonomo, seguire le istruzioni nelle sezioni Installare il runtime Python e Installare il runtime R rispettivamente.

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

Gli sviluppatori R possono iniziare a usare alcuni semplici esempi e apprendere le nozioni di base sul funzionamento di R con SQL Server. Per il passaggio successivo, vedere i collegamenti seguenti: