Installieren von SQL Server Machine Learning Services (Python und R) unter Windows

Gilt für: SQL Server 2016 (13.x), SQL Server 2017 (14.x) und SQL Server 2019 (15.x)

In diesem Artikel wird erläutert, wie SQL Server Machine Learning Services unter Windows installiert wird. Sie können Machine Learning Services verwenden, um Python- und R-Skripts in einer Datenbank auszuführen.

Wichtig

Diese Anweisungen gelten für SQL Server 2016 (13.x), SQL Server 2017 (14.x) und SQL Server 2019 (15.x). Informationen zu SQL Server 2022 (16.x) finden Sie unter Installieren von SQL Server 2022 Machine Learning Services unter Windows.

Checkliste für die Installationsvorbereitung

  • Es ist eine Datenbank-Engine-Instanz erforderlich. Sie können nicht nur R- oder Python-Funktionen installieren, aber Sie können diese einer eingeständigen Instanz inkrementell hinzufügen.

  • Zur Stärkung der Geschäftskontinuität werden für Machine Learning Services Always On-Verfügbarkeitsgruppen unterstützt. Installieren Sie auf jedem Knoten Machine Learning Services, und konfigurieren Sie Pakete.

  • Das Installieren von Machine Learning Services auf einer Always On-Failoverclusterinstanz wird in SQL Server 2017 nicht unterstützt. Bei SQL Server 2019 und höheren Versionen wird dies jedoch unterstützt. Sie müssen Machine Learning Services zur Installationszeit installieren, und Features können einer vorhandenen Failoverclusterinstanz nach der Installation nicht mehr hinzugefügt werden.

  • Installieren Sie Machine Learning Services nicht auf einem Domänencontroller. Bei dem Teil des Setups, der sich auf Machine Learning Services bezieht, tritt ein Fehler auf.

  • Installieren Sie Freigegebene Funktionen>Machine Learning Server (eigenständig) nicht auf dem gleichen Computer, auf dem eine Datenbankinstanz ausgeführt wird. Ein eigenständiger Server steht in Konkurrenz um die gleichen Ressourcen, wodurch die Leistung beider Installationen untergraben wird.

  • Eine parallele Installation mit anderen Versionen von R und Python wird zwar unterstützt, jedoch nicht empfohlen. Dies wird unterstützt, da die SQL Server-Instanz eigene Kopien der Open-Source-Distributionen von R und Anaconda verwendet. Wir raten jedoch davon ab, da das Ausführen von Code, der R und Python auf einem Computer außerhalb von SQL Server verwendet, zu Problemen führen kann:

    • Durch die Verwendung einer anderen Bibliothek und anderer ausführbarer Dateien werden andere Ergebnisse als bei der Ausführung in SQL Server erzeugt.
    • SQL Server kann R- und Python-Skripts nicht verwalten, die in externen Bibliotheken ausgeführt werden, was zu Ressourcenkonflikten führt.

Hinweis

Machine Learning Services wird standardmäßig auf SQL Server-Big Data-Clustern installiert. Wenn Sie einen Big Data-Cluster verwenden, müssen Sie die Schritte in diesem Artikel nicht ausführen. Weitere Informationen finden Sie unter Verwenden von Machine Learning Services (Python und R) in Big Data-Clustern.

Wichtig

Führen Sie nach Abschluss des Setups die in diesem Artikel beschriebenen Schritte für nach der Konfiguration durch. Zu diesen Schritten gehören das Aktivieren von SQL Server für die Verwendung externer Skripts und das Hinzufügen von Konten, die für die Ausführung Ihrer R- und Python-Aufträge in SQL Server erforderlich sind. Konfigurationsänderungen erfordern in der Regel einen Neustart der Instanz oder einen Neustart des Launchpad-Diensts.

Abrufen der Installationsmedien

Der Downloadspeicherort für SQL Server ist abhängig von der Edition.

  • SQL Server-Editionen Enterprise, Standard und Express. Diese Editionen sind für die Verwendung in der Produktion lizenziert. Wenden Sie sich für die Installation von Medien für die Editionen Enterprise und Standard an Ihren Softwareanbieter. Einkaufsinformationen und ein Verzeichnis mit Microsoft-Partner finden Sie auf der Einkaufswebsite von Microsoft.

  • Aktuellste kostenlose Edition

Weitere Informationen zu den SQL Server-Editionen, die die Python- und R-Integration in Machine Learning Services unterstützen, finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2017.

Weitere Informationen zu den SQL Server-Editionen, die die Python- und R-Integration in Machine Learning Services unterstützen, finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2019.

Ausführen von Setup

Bei lokalen Installationen müssen Sie das Setup als Administrator ausführen. Wenn Sie SQL Server von einer Remotefreigabe installieren, müssen Sie ein Domänenkonto verwenden, das Lese- und Ausführungsberechtigungen auf der Remotefreigabe hat.

  1. Starten Sie den Setup-Assistenten für SQL Server.

  2. Klicken Sie auf der Registerkarte Installation auf Neue eigenständige SQL Server-Installation oder Hinzufügen von Funktionen zu einer vorhandenen Installation.

    Screenshot, der die Option zum Erstellen einer eigenständigen SQL Server-Installation oder zum Hinzufügen von Features zu einer vorhandenen Installation zeigt.

    Screenshot, der die Option zum Verwenden einer neuen eigenständigen SQL Server-Installation oder zum Hinzufügen von Features zu einer vorhandenen Installation zeigt.

  3. Wählen Sie diese Optionen auf der Seite Funktionsauswahl aus:

    • Datenbank-Engine-Dienste

      Sie müssen eine Instanz der Datenbank-Engine installieren, um R und Python mit SQL Server verwenden zu können. Sie können entweder eine Standardinstanz oder eine benannte Instanz verwenden.

    • Machine Learning Services (datenbankintern)

      Mit dieser Option werden die Datenbankdienste installiert, die die Skriptausführung von R und Python unterstützen.

    • Datenbank-Engine-Dienste

      Sie müssen eine Instanz der Datenbank-Engine installieren, um R oder Python mit SQL Server verwenden zu können. Sie können entweder eine Standardinstanz oder eine benannte Instanz verwenden.

    • Machine Learning Services und Spracherweiterung

      Mit dieser Option werden die Datenbankdienste installiert, die die Skriptausführung von R und Python unterstützen.

    • R

      Wählen Sie diese Option aus, um die Microsoft R-Pakete, -Interpreter und Open-Source-R hinzuzufügen.

    • Python

      Wählen Sie diese Option aus, um die Microsoft Python-Pakete, die ausführbare Python 3.5-Datei und ausgewählte Bibliotheken aus der Anaconda-Distribution hinzuzufügen.

    Weitere Informationen zum Installieren und Verwenden von Java finden Sie unter Installieren der SQL Server-Spracherweiterung für Java unter Windows.

    Screenshot, der Featureoptionen für R und Python zeigt.

    Screenshot, der die Auswahl von Featureoptionen für R und Python zeigt.

    Hinweis

    Wählen Sie unter Freigegebene Funktionen nicht die Option Machine Learning Server (eigenständig) aus. Diese Option ist für die Verwendung auf einem separaten Computer vorgesehen.

  1. Wählen Sie auf der Seite Zustimmung zur Installation von Microsoft R OpenAkzeptieren>Weiter aus.

    Die Lizenzbedingungen decken Folgendes ab:

    • Microsoft R Open.
    • Open-Source-R-Basispakete und -Tools
    • Erweiterte R-Pakete und Konnektivitätsanbieter aus dem Microsoft-Entwicklungsteam.
  2. Wählen Sie auf der Seite Zustimmung zur Installation von PythonAkzeptieren>Weiter aus. Der Open-Source-Lizenzvertrag von Python umfasst auch Anaconda und ähnliche Tools sowie einige neue Python-Bibliotheken des Microsoft-Entwicklungsteams.

    Hinweis

    Falls der Computer, den Sie verwenden, keinen Internetzugriff hat, können Sie das Setup zu diesem Zeitpunkt anhalten, um die Installationsprogramme separat herunterzuladen. Weitere Informationen finden Sie unter Installieren von Machine Learning-Komponenten ohne Internetzugang.

  3. Stellen Sie auf der Seite Installationsbereit sicher, dass die folgenden Auswahlmöglichkeiten aktiviert sind, und wählen Sie dann Installieren aus:

    • -Datenbank-Engine-Dienste
    • Machine Learning Services (datenbankintern)
    • R, Python oder beide

    Notieren Sie sich den Speicherort des Ordners unter dem Pfad ..\Setup Bootstrap\Log, in dem die Konfigurationsdateien gespeichert werden. Nach Abschluss des Setups können Sie die installierten Komponenten in der Zusammenfassungsdatei überprüfen.

  4. Wenn Sie nach Abschluss des Setups dazu aufgefordert werden, starten Sie den Computer neu. Nach dem Abschluss des Setupvorgangs sollten Sie unbedingt die vom Installations-Assistenten angezeigte Meldung lesen. Weitere Informationen finden Sie unter Lesen und Anzeigen der Setupprotokolldateien von SQL Server.

  1. Wählen Sie auf der Seite Zustimmung zur Installation von Microsoft R OpenAkzeptieren>Weiter aus. Dieser Lizenzvertrag gilt für Microsoft R Open, das eine Distribution der Open-Source-R-Basispakete und -Tools enthält. Ferner sind erweiterte R-Pakete und Konnektivitätsanbieter aus dem Microsoft-Entwicklungsteam enthalten.

  2. Wählen Sie auf der Seite Zustimmung zur Installation von PythonAkzeptieren>Weiter aus. Der Open-Source-Lizenzvertrag von Python umfasst auch Anaconda und ähnliche Tools sowie einige neue Python-Bibliotheken des Microsoft-Entwicklungsteams.

  3. Stellen Sie auf der Seite Installationsbereit sicher, dass die folgenden Auswahlmöglichkeiten aktiviert sind, und wählen Sie dann Installieren aus:

    • -Datenbank-Engine-Dienste
    • Machine Learning Services (datenbankintern)
    • R, Python oder beide

    Notieren Sie sich den Speicherort des Ordners unter dem Pfad ..\Setup Bootstrap\Log, in dem die Konfigurationsdateien gespeichert werden. Nach Abschluss des Setups können Sie die installierten Komponenten in der Zusammenfassungsdatei überprüfen.

  4. Wenn Sie nach Abschluss des Setups dazu aufgefordert werden, starten Sie den Computer neu. Achten Sie unbedingt darauf, nach dem Abschluss des Setupvorgangs die vom Installations-Assistenten angezeigte Meldung zu lesen. Weitere Informationen finden Sie unter Lesen und Anzeigen der Setupprotokolldateien von SQL Server.

Festlegen von Umgebungsvariablen

Wenn Sie nur das R-Feature integrieren möchten, sollten Sie die Umgebungsvariable MKL_CBWR in den Intel Math Kernel Library-Berechnungen auf ensure consistent output (Konsistente Ausgabe sicherstellen) festlegen:

  1. Klicken Sie in der Systemsteuerung auf System und Sicherheit>System>Erweiterte Systemeinstellungen>Umgebungsvariablen.

  2. Erstellen Sie eine neue Benutzer- oder Systemvariable:

    • Legen Sie den Namen der Variable auf MKL_CBWR fest.
    • Legen Sie den Wert der Variable auf AUTO fest.

Für diesen Schritt ist ein Neustart des Servers erforderlich. Wenn Sie im Begriff sind, die Skriptausführung zu aktivieren, können Sie den Neustart anhalten, bis die gesamte Konfiguration abgeschlossen ist.

Aktivieren der Skriptausführung

  1. Verwenden Sie SQL Server Management Studio (SSMS) oder Azure Data Studio, um eine Verbindung mit der Instanz herzustellen, in der Sie SQL Server Machine Learning Services installiert haben.

  2. Wählen Sie Neue Abfrage aus, um ein Abfragefenster zu öffnen, und führen Sie dann den folgenden Befehl aus:

    EXEC sp_configure
    
  3. Der Wert für die Eigenschaft external scripts enabled sollte an diesem Punkt 0 betragen. Dieses Feature ist standardmäßig deaktiviert. Wenn Sie es aktivieren möchten, damit Sie R- oder Python-Skripts ausführen können, führen Sie die folgende Anweisung aus:

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

    Wenn Sie die Funktion für die R-Sprache bereits aktiviert haben, brauchen Sie RECONFIGURE nicht erneut für Python auszuführen. Die zugrunde liegende Erweiterungsplattform unterstützt beide Sprachen.

Starten Sie den Dienst neu.

Wenn die Installation abgeschlossen ist, starten Sie die Datenbank-Engine neu. Durch den Neustart des Diensts wird auch der zugehörige SQL Server-Launchpad-Dienst automatisch neu gestartet.

Sie können den Dienst mithilfe einer dieser Methoden neu starten:

  • Dem Befehl Neu starten für die Instanz über einen rechten Mausklick im Objekt-Explorer in SSMS
  • Dem Dienste-Element der Microsoft Management Console (MMC) in der Systemsteuerung
  • SQL Server-Konfigurations-Manager

Überprüfen der Installation

Gehen Sie folgendermaßen vor, um zu überprüfen, ob alle zum Starten eines externen Skripts verwendeten Komponenten ausgeführt werden:

  1. Öffnen Sie in SQL Server Management Studio ein neues Abfragefenster, und führen Sie den folgenden Befehl aus:

    EXECUTE sp_configure  'external scripts enabled'
    

    Anschließend ist run_value auf 1 festgelegt.

  2. Öffnen Sie das Dienste-Element der Systemsteuerung oder den SQL Server-Konfigurations-Manager, und überprüfen Sie, ob der SQL Server-Launchpad-Dienst ausgeführt wird. Sie sollten über einen Dienst für jede Datenbank-Engine-Instanz verfügen, auf der R oder Python installiert ist. Weitere Informationen zum Dienst finden Sie unter Erweiterbarkeitsarchitektur in SQL Server Machine Learning Services.

  3. Wenn Launchpad ausgeführt wird, können Sie einfache R- und Python-Skripts ausführen, um zu überprüfen, ob externe Skriptruntimes mit SQL Server kommunizieren können.

    Öffnen Sie ein neues Abfragefenster in SQL Server Management Studio, und führen Sie ein Skript wie das folgende aus:

    • Für 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
      
    • Für 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
      

    Die Ausführung des Skripts kann einige Zeit in Anspruch nehmen, wenn die externe Skriptruntime zum ersten Mal geladen wird. Die Ergebnisse sollten etwa wie folgt aussehen:

    Hello
    1

Hinweis

Im Python-Skript verwendete Spalten oder Überschriften werden nicht automatisch zurückgegeben. Sie müssen das Schema für das Rückgabedataset angeben, um Spaltennamen für die Ausgabe hinzuzufügen. Verwenden Sie hierzu den WITH RESULTS-Parameter der gespeicherten Prozedur, benennen Sie die Spalten, und geben Sie den SQL-Datentyp an.

Sie können beispielsweise die folgende Zeile hinzufügen, um einen beliebigen Spaltennamen zu generieren: WITH RESULT SETS ((Col1 AS int)).

Anwenden von Updates

Vorhandene Installation

Wenn Sie Machine Learning Services zu einer vorhandenen SQL Server-Instanz hinzugefügt haben und zuvor ein kumulatives Update (CU) angewendet haben, können die Versionen Ihrer Datenbank-Engine und des Features Machine Learning Services unterschiedlich sein. Dieser Unterschied kann zu unerwartetem Verhalten oder Fehlern führen, da launchpad.exe und sqlservr.exe verschiedene Versionen aufweisen.

Führen Sie diese Schritte aus, um die Machine Learning Services auf die gleiche Version wie Ihre Datenbank-Engine umzustellen:

  1. Ermitteln Sie das kumulative Update (CU), das Sie für die Datenbank-Engine haben. Führen Sie diese T-SQL-Anweisung aus:

    SELECT @@VERSION
    

    Hier ist eine Beispielausgabe für SQL Server 2019, kumulatives Update (CU) 8:

    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)
    

    Weitere Informationen finden Sie unter Bestimmen der Version, Edition und Updateebene von SQL Server und zugehöriger Komponenten.

  2. Laden Sie gegebenenfalls das kumulative Update (CU) herunter, das Sie für die Datenbank-Engine installiert haben.

  3. Führen Sie die Installation des kumulativen Updates (CU) aus, und folgen Sie den Anweisungen zur seiner erneuten Installation für Machine Learning Services. Wählen Sie die vorhandene Instanz aus, auf der Machine Learning Services installiert ist. Der Upgradestatus wird auf der Seite Featureauswahl als Unvollständig installiert angezeigt.

  4. Wählen Sie Weiter aus, und fahren Sie mit der Installation fort.

Neue Installation

Wenn Sie Machine Learning Services mit einer neuen Installation der SQL Server-Datenbank-Engine installieren, empfehlen wir, das neueste kumulative Update sowohl für die Datenbank-Engine als auch für die Komponenten für maschinelles Lernen anzuwenden.

Auf Geräten, die mit dem Internet verbunden sind, werden kumulative Updates in der Regel über Windows Update angewendet. Sie können für kontrollierte Updates aber auch die folgenden Schritte verwenden. Wenn Sie das Update für die Datenbank-Engine anwenden, ruft das Setup kumulative Updates für alle R- oder Python-Funktionen ab, die Sie auf derselben Instanz installiert haben.

Getrennte Server erfordern zusätzliche Schritte. Weitere Informationen finden Sie unter Installieren auf Computern ohne Internetzugriff > Kumulative Updates anwenden.

  1. Beginnen Sie mit einer bereits installierten Baseline-Instanz: SQL Server (erste Version).

  2. Navigieren Sie zur Liste der Updates für Microsoft SQL Server.

  3. Wählen Sie das neueste kumulative Update aus. Eine ausführbare Datei wird automatisch heruntergeladen und extrahiert.

  4. Führen Sie Setup aus, und stimmen Sie den Lizenzbedingungen zu.

  5. Überprüfen Sie auf der Seite Featureauswahl die Features, für die kumulative Updates angewendet werden. Es sollte jede für die aktuelle Instanz installierte Funktion einschließlich Machine Learning-Funktionen angezeigt werden. Das Setup lädt die CAB-Dateien herunter, die zum Aktualisieren aller Features erforderlich sind.

    Screenshot, der eine Zusammenfassung der installierten Features zeigt.

  6. Setzen Sie den Assistenten fort. Akzeptieren Sie die Lizenzbedingungen für R- und Python-Distributionen.

Zusätzliche Konfiguration

Wenn der Schritt zur externen Skriptüberprüfung erfolgreich war, können Sie R- oder Python-Befehle von SQL Server Management Studio, Visual Studio Code oder einem anderen Client ausführen, der T-SQL-Anweisungen an den Server senden kann.

Wenn beim Ausführen des Befehls ein Fehler aufgetreten ist, müssen Sie möglicherweise zusätzliche Konfigurationen für den Dienst oder die Datenbank vornehmen. Auf Instanzebene können die zusätzlichen Konfigurationen Folgendes umfassen:

Der Isolationsmechanismus hat sich in SQL Server 2019 unter Windows geändert. Dieser Mechanismus wirkt sich auf SQLRUserGroup, Firewallregeln, Dateiberechtigungen und die implizite Authentifizierung aus. Weitere Informationen finden Sie unter Isolationsänderungen für Machine Learning Services.

Für die Datenbank benötigen Sie möglicherweise Konfigurationsupdates. Weitere Informationen finden Sie unter Give users permission to SQL Server Machine Learning Services (Erteilen von Benutzerberechtigungen für SQL Server Machine Learning Services).

Hinweis

Ob die zusätzliche Konfiguration erforderlich ist, hängt vom Sicherheitsschema, in dem Sie SQL Server installiert haben, sowie von Ihren Erwartungen bezüglich des Herstellens einer Verbindung mit der Datenbank und dem Ausführen externer Skripts seitens der Benutzer ab.

Empfohlene Optimierungen

Da nun alles funktioniert, möchten Sie möglicherweise auch den Server für die Unterstützung von Machine Learning optimieren oder vorab trainierte Modelle für maschinelles Lernen installieren.

Hinzufügen weiterer Geschäftskonten

Wenn Sie erwarten, dass viele Benutzer gleichzeitig Skripts ausführen, können Sie die Anzahl der Workerkonten erhöhen, die dem Launchpad-Dienst zugewiesen sind. Weitere Informationen finden Sie unter Skalieren der gleichzeitige Ausführung externer Skripts in SQL Server-Machine Learning Services.

Optimieren des Servers für die Skriptausführung

Die Standardeinstellungen für das SQL Server-Setup dienen zur Optimierung der Auslastung des Servers für eine Vielzahl anderer Dienste und Anwendungen.

In den Standardeinstellungen können Ressourcen für Machine Learning-Vorgänge, insbesondere für speicherintensive Vorgänge, eingeschränkt oder gedrosselt sein.

Es wird empfohlen, dass Sie zum Konfigurieren eines externen Ressourcenpools den SQL Server-Resource Governor verwenden, um sicherzustellen, dass Machine Learning-Aufgaben über die entsprechende Priorität und die nötigen Ressourcen verfügen. Eventuell ist es auch sinnvoll, die Größe des Speichers zu ändern, der der SQL Server-Datenbank-Engine zugewiesen ist, oder die Anzahl der Konten zu erhöhen, die unter dem SQL Server-Launchpad-Dienst ausgeführt werden.

Wenn Sie die Standard Edition verwenden und nicht über den Resource Governor verfügen, können Sie zum Verwalten der Serverressourcen dynamische Verwaltungssichten, erweiterte SQL Server-Ereignisse sowie die Windows-Ereignisüberwachung verwenden.

Installieren zusätzlicher Python- und R-Pakete

Die Python- und R-Lösungen, die Sie für SQL Server erstellen, können Folgendes aufrufen:

  • Grundfunktionen
  • Funktionen aus den proprietären Paketen, die mit SQL Server installiert wurden
  • Drittanbieterpakete, die mit der Open-Source-Version von Python und R kompatibel sind, die SQL Server installiert

Pakete, die Sie über SQL Server verwenden möchten, müssen in der Standardbibliothek installiert sein, die von der Instanz verwendet wird. Wenn Sie eine separate Installation von R oder Python auf dem Computer haben, oder wenn Pakete in Benutzerbibliotheken installiert sind, können Sie diese Pakete von T-SQL nicht verwenden.

Sie können zum Installieren und Verwalten zusätzlicher Pakete Benutzergruppen für die Freigabe von Paketen auf Datenbankebene einrichten oder Datenbankrollen so konfigurieren, dass Benutzer ihre eigenen Pakete installieren können. Weitere Informationen finden Sie unter Installieren von Python-Paketen und Installieren neuer R-Pakete.

Nächste Schritte

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: