Installieren von SQL Server Machine Learning Services (Python und R) in Docker

Gilt für: SQL Server 2019 (15.x) – Linux

In diesem Artikel wird die Installation von SQL Server Machine Learning Services in Docker erläutert. Sie können Machine Learning Services verwenden, um Python- und R-Skripts in einer Datenbank auszuführen. Mit Machine Learning Services werden keine vorgefertigten Container bereitgestellt. Sie können einen Container mithilfe einer Beispielvorlage auf GitHub aus den SQL Server-Containern erstellen.

Voraussetzungen

  • Git-Befehlszeilenschnittstelle.

  • Docker Engine 1.8 oder höher unter einer beliebigen unterstützten Linux-Distribution. Weitere Informationen finden Sie unter Get Docker (Docker-Download). SQL Server in Containern wird unter Windows oder macOS für den Einsatz in der Produktion nicht unterstützt.

  • Außerdem gelten die Systemanforderungen für SQL Server für Linux.

Klonen des mssql-docker-Repositorys

Mit dem folgenden Befehl wird das Git-Repository mssql-docker in ein lokales Verzeichnis geklont.

  1. Öffnen Sie ein Bash-Terminal unter Linux oder Mac.

  2. Erstellen Sie ein Verzeichnis, in dem eine lokale Kopie des mssql-docker-Repositorys gespeichert wird.

  3. Führen Sie den Befehl „git clone“ aus, um das mssql-docker-Repository zu klonen:

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

Erstellen eines SQL Server-Linux-Containerimage

Führen Sie die folgenden Schritte durch, um das Docker-Image zu erstellen:

  1. Wechseln Sie zum Verzeichnis „mssql-mlservices“:

    /mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. Führen Sie im gleichen Verzeichnis den folgenden Befehl aus:

    docker build -t mssql-server-mlservices .
    
  3. Führen Sie den folgenden Befehl aus:

    Wichtig

    Die Umgebungsvariable SA_PASSWORD ist veraltet. Verwenden Sie stattdessen 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
    

    Hinweis

    Die folgenden Werte können für MSSQL_PID verwendet werden: Developer (kostenlos), Express (kostenlos), Enteprise (kostenpflichtig), Standard (kostenpflichtig). Wenn Sie eine kostenpflichtige Edition verwenden, stellen Sie sicher, dass Sie eine Lizenz erworben haben. Ersetzen Sie (Kennwort) durch Ihr tatsächliches Kennwort. Die Volumebereitstellung mit -v ist optional. Ersetzen Sie (Verzeichnis auf dem Hostbetriebssystem) durch ein tatsächliches Verzeichnis, in das Sie die Datenbankdaten und Protokolldateien einbinden möchten.

  4. Bestätigen Sie die Änderung, indem Sie den folgenden Befehl ausführen:

    docker ps -a
    

    Hinweis

    Zum Erstellen des Docker-Images müssen Sie Pakete installieren, die mehrere GB groß sind. Abhängig von der Netzwerkbandbreite kann es einige Zeit dauern, bis die Skriptausführung abgeschlossen ist.

Ausführen des SQL Server-Linux-Containerimages

  1. Legen Sie vor dem Ausführen des Containers Ihre Umgebungsvariablen fest. Legen Sie PATH_TO_MSSQL-Umgebungsvariable auf ein Hostverzeichnis fest:

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

    Hinweis

    Die Vorgehensweise zum Ausführen von SQL Server-Produktionseditionen in Containern weicht hiervon minimal ab. Weitere Informationen finden Sie unter Konfigurieren von SQL Server-Containerimages in Docker. Bei Verwendung derselben Containernamen und Ports können Sie die restlichen Schritte dieser exemplarischen Vorgehensweise auch mit Containern für Produktionsumgebungen ausführen.

  2. Führen Sie den Befehl docker ps aus, um Ihre Container anzuzeigen:

    sudo docker ps -a
    
  3. Wenn die Spalte STATUS den Wert Up (Aktiv) enthält, wird SQL Server im Container ausgeführt und überwacht den in der Spalte PORTS angegebenen Port. Wenn in der Spalte STATUS Ihres SQL Server-Containers Exited (Beendet) steht, lesen Sie bitte im Abschnitt „Problembehebung“ im Konfigurationshandbuch nach.

    Ausgabe:

    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
    

Aktivieren von Machine Learning Services

Stellen Sie zum Aktivieren von Machine Learning Services eine Verbindung mit Ihrer SQL Server-Instanz her, und führen Sie die folgende T-SQL-Anweisung aus:

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

Python-Entwickler können in den folgenden Tutorials erfahren, wie Python mit SQL Server verwendet werden kann:

R-Entwickler können mit einigen einfachen Beispielen loslegen und die Grundlagen der Funktionen von R unter SQL Server kennenlernen. Informationen zu den nächsten Schritten finden Sie unter den folgenden Links: