Installare SQL Server Machine Learning Services (Python e R) in Docker

Si applica a: SQL Server 2019 (15.x) - 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. Non vengono forniti contenitori predefiniti 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 Get Docker (Ottenere Docker). SQL Server nei contenitori non è supportato in 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 comando seguente consente di clonare il repository git mssql-docker in una directory locale.

  1. Aprire un terminale Bash in Linux o Mac.

  2. Creare una directory in cui mantenere una copia locale del repository mssql-docker.

  3. Eseguire il comando git clone per clonare il repository mssql-docker:

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

Creare un'immagine del contenitore di SQL Server su Linux

Completare i passaggi seguenti per creare l'immagine docker:

  1. Passare alla directory mssql-mlservices:

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

    docker build -t mssql-server-mlservices .
    
  3. Eseguire il comando seguente:

    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
    

    Nota

    Per MSSQL_PID è possibile usare uno qualsiasi dei valori seguenti: Developer (gratuito), Express (gratuito), Enteprise (a pagamento), Standard (a pagamento). Se si usa un'edizione a pagamento, assicurarsi di avere acquistato una licenza. Sostituire (password) con la password effettiva. Il montaggio del volume con -v è facoltativo. Sostituire (directory sul sistema operativo host) con una directory effettiva in cui si prevede di montare i file di dati e di log del database.

  4. Confermare eseguendo questo comando:

    docker ps -a
    

    Nota

    Per creare l'immagine Docker è necessario installare pacchetti di dimensioni pari a diversi GB. Il completamento dell'esecuzione dello script potrebbe richiedere tempo, a seconda della larghezza di banda di rete.

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/'
    

    Nota

    Il processo di esecuzione delle edizioni di SQL Server di produzione nei contenitori è leggermente diverso. Per altre informazioni, vedere Configurare immagini dei contenitori SQL Server in Docker. 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 del contenitore di SQL Server è impostata su Exited, vedere la sezione relativa alla risoluzione dei problemi della guida alla configurazione.

    Output:

    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 Machine Learning Services

Per abilitare Machine Learning Services, connettersi all'istanza di SQL Server ed eseguire l'istruzione T-SQL seguente:

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

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: