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:

  • Edizioni Enterprise, Standard ed Express di SQL Server. 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.

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.

  1. Avviare l'Installazione guidata di SQL Server.

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

    Screenshot that shows the option for creating a SQL Server standalone installation or adding features to an existing installation.

    Screenshot that shows the option for using a new SQL Server standalone installation or adding features to an existing installation.

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

    Screenshot that shows feature options for R and Python.

    Screenshot that shows selecting feature options for R and Python.

    Nota

    Non selezionare l'opzione per Machine Learning Server (Standalone) sotto Caratteristiche condivise. Questa opzione è destinata all'uso in un computer separato.

  1. 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.
  2. 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.

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

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

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

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

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

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

  1. Nel Pannello di controllo selezionare Sistema e sicurezza>Sistema>Impostazioni di sistema avanzate>Variabili d'ambiente.

  2. Creare una nuova variabile dell'utente o di sistema:

    • Impostare il nome della variabile su MKL_CBWR.
    • Impostare AUTO come valore della variabile.

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

  1. Usare SQL Server Management Studio o Azure Data Studio per connettersi all'istanza in cui è stato installato SQL Server Machine Learning Services.

  2. Selezionare Nuova query per aprire una finestra di query e quindi eseguire il comando seguente:

    EXEC sp_configure
    
  3. A questo punto, il valore della proprietà external scripts enabled deve essere 0. 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:

  1. 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 su 1.

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

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

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

  2. Se necessario, scaricare l'aggiornamento cumulativo installato per il motore di database.

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

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

  1. Iniziare con un'istanza di base già installata: Versione iniziale di SQL Server.

  2. Passare all'elenco degli aggiornamenti per Microsoft SQL Server.

  3. Selezionare l'aggiornamento cumulativo più recente. L'eseguibile viene scaricato ed estratto automaticamente.

  4. Eseguire la configurazione e accettare i termini della licenza.

  5. 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à.

    Screenshot that shows a summary of installed features.

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

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.

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