Installare i servizi di Machine Learning di SQL Server (Python e R) su Docker

Applica a: SQL Server 2019 (15.x) su Linux

Questo articolo illustra come installare SQL Server Machine Learning Services in Docker. È possibile usare Machine Learning Services per eseguire gli script Python e R nel database. I contenitori predefiniti non vengono forniti con Machine Learning Services. È possibile crearne uno dai contenitori di SQL Server usando un modello di esempio disponibile in GitHub.

Prerequisiti

  • Interfaccia della riga di comando di Git.

  • Motore Docker 1.8 o versioni successive in qualsiasi distribuzione di Linux. Per altre informazioni, vedere Ottenere Docker. I container di SQL Server non sono supportati su Windows o macOS per l'uso in produzione.

  • Vedere anche i requisiti di sistema per SQL Server in Linux.

Clonare il repository mssql-docker

Il seguente comando clona il mssql-docker repository Git in una directory locale.

  1. Apri un terminale Bash su Linux o macOS.

  2. Cambia nella directory dove vuoi creare il repository locale mssql-docker .

  3. Esegui il comando Git clone per clonare il mssql-docker repository:

    git clone https://github.com/microsoft/mssql-docker mssql-docker
    

Compila ed esegui un'immagine container Linux per SQL Server

Completa i seguenti passaggi per costruire ed eseguire l'immagine Docker:

  1. Passare alla directory mssql-mlservices:

    cd mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. Nella stessa directory eseguire il comando seguente:

    docker build -t mssql-server-mlservices .
    

    Note

    Per costruire l'immagine Docker, devi installare pacchetti di diversi GB. Il completamento dell'esecuzione dello script potrebbe richiedere tempo, a seconda della larghezza di banda di rete.

  3. Esegui il container:

    Importante

    La variabile di ambiente SA_PASSWORD è deprecata. Utilizzare invece MSSQL_SA_PASSWORD.

    docker run -d -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e ACCEPT_EULA_ML=Y -e MSSQL_SA_PASSWORD=<password> -v <directory on the host OS>:/var/opt/mssql -p 1433:1433 mssql-server-mlservices
    

    Note

    È possibile usare uno dei valori supportati per MSSQL_PID. Se si usa un'edizione a pagamento, assicurarsi di aver acquistato una licenza. Sostituire <password> con la password effettiva. Il montaggio del volume con -v è facoltativo. Sostituire <directory on the host OS> con una directory effettiva in cui si desidera montare i file di dati e di log del database.

Verifica il container Linux di SQL Server

docker ps -a

Eseguire l'immagine del contenitore di SQL Server su Linux

  1. Impostare le variabili di ambiente prima di eseguire il contenitore. Impostare la variabile di ambiente PATH_TO_MSSQL su una directory host:

    export MSSQL_PID='Developer'
    export ACCEPT_EULA='Y'
    export ACCEPT_EULA_ML='Y'
    export PATH_TO_MSSQL='/home/mssql/'
    

    Note

    Il processo di esecuzione delle edizioni di SQL Server di produzione nei contenitori è leggermente diverso. Per altre informazioni, vedi Distribuire e connettersi a contenitori di SQL Server Linux. Se si usano gli stessi nomi di contenitore e le stesse porte, il resto di questa procedura dettagliata funziona comunque con i contenitori di produzione.

  2. Per visualizzare i contenitori, eseguire il comando docker ps:

    sudo docker ps -a
    
  3. Se nella colonna STATUS è impostato lo stato Up, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS. Se la colonna STATUS per il contenitore di SQL Server è Uscita, vedere Risoluzione dei problemi relativi ai contenitori Docker di SQL Server.

    Risultato:

    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour     0.0.0.0:1401->1433/tcp   sql1
    

Abilitare i servizi di apprendimento automatico

Per abilitare Machine Learning Services, collegati alla tua istanza SQL Server ed esegui la seguente istruzione Transact-SQL:

EXECUTE sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;