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

Gilt für: SQL Server 2022 (16.x)

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

Hinweis

Diese Anweisungen gelten speziell für SQL Server 2022 (16.x) unter Windows. Lesen Sie den Artikel Installieren von SQL Server Machine Learning Services (Python und R) unter Windows, wenn Sie SQL Server Machine Learning Services unter Windows für SQL Server 2016 (13.x), SQL Server 2017 (14.x) oder SQL Server 2019 (15.x) installieren möchten.

Informationen für Linux finden Sie unter Installieren von SQL Server Machine Learning Services (Python und R) unter Linux.

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

  • Ab SQL Server 2019 wird auch das Installieren von Machine Learning Services in einer Always On-Failoverclusterinstanz unterstützt.

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

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

Wichtig

Führen Sie nach Abschluss des Setups die in diesem Artikel beschriebenen Schritte für nach der Konfiguration durch. Bei diesen Schritten kann es erforderlich sein, SQL Server für die Verwendung externer Skripts zu aktivieren. 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

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.

Sollten während des Setups Installationsfehler auftreten, überprüfen Sie das Zusammenfassungsprotokoll im Protokollordner „Setup Bootstrap“ (z. B. %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt).

  1. Starten Sie den SQL Server 2022-Setup-Assistenten.

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

  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 oder Python mit SQL Server verwenden zu können. Sie können entweder eine Standardinstanz oder eine benannte Instanz verwenden.

    • Machine Learning Services und Language

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

    Der folgende Screenshot zeigt die Instanzfeatures, die beim Installieren von SQL Server 2022 (16.x) Machine Learning Services mindestens aktiviert werden müssen.

    Screenshot of feature selection showing check boxes next to Database Engine Services and Machine Learning Services and Language.

Installieren von Runtimes und Paketen

Ab SQL Server 2022 (16.x) sind die Runtimes für R, Python und Java nicht mehr im SQL Server-Setup enthalten und werden daher auch nicht im Rahmen des Setups installiert. Orientieren Sie sich stattdessen an den folgenden Abschnitten, um Ihre benutzerdefinierten Runtimes und Pakete zu installieren.

Einrichten der Unterstützung für R

Installieren der R-Runtime

  1. Laden Sie die neueste Version von R 4.2 für Windows herunter, und installieren Sie sie.

  2. Installieren Sie Abhängigkeiten für CompatibilityAPI und RevoScaleR. Führen Sie im R-Terminal der installierten Version folgende Befehle aus:

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. Laden Sie die neueste Version der Pakete CompatibilityAPI und RevoScaleR herunter, und installieren Sie sie:

    install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL)
    
    install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
    

Konfigurieren der R-Runtime mit SQL Server

  1. Konfigurieren Sie die installierte R-Runtime mit SQL Server. Die Standardversion kann mithilfe des Befehlszeilen-Hilfsprogramms RegisterRext.exe geändert werden. Das Hilfsprogramm befindet sich in einem R-Anwendungsordner, je nach Installation variiert. In der Regel befindet es sich in %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64.

    Das folgende Skript kann verwendet werden, um die installierte R-Runtime über den Speicherort des Installationsordners von RegisterRext.exe zu konfigurieren. Der Instanzname ist entweder MSSQLSERVER (bei einer Standardinstanz von SQL Server) oder der Name einer benannten Instanz von SQL Server.

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
    

    Wenn Sie eine benannte Instanz von SQL Server konfigurieren, die Sie normalerweise als ".\SQLEXPRESS" oder "MACHINENAME\SQLEXPRESS" benennen würden, schließen Sie nur den Instanznamen ein. Zum Beispiel:

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
    
  2. Stellen Sie mithilfe von SQL Server Management Studio (SSMS) oder Azure Data Studio eine Verbindung mit der Instanz her, auf der Sie SQL Server Machine Learning Services installiert haben. Wählen Sie Neue Abfrage aus, um ein Abfragefenster zu öffnen, und führen Sie dann den folgenden Befehl aus, um das externe Skripterstellungsfeature zu aktivieren:

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

    Wenn Sie das Feature bereits für eine andere Sprache aktiviert haben, müssen Sie RECONFIGURE nicht erneut für R ausführen. Die zugrunde liegende Erweiterbarkeitsplattform unterstützt beide Sprachen. Vergewissern Sie sich zur Bestätigung, dass der folgende Befehl 1 für config_value und run_value zurückgibt:

    EXEC sp_configure  'external scripts enabled';
    
  3. Starten Sie den SQL Server-Dienst neu. Durch den Neustart des Diensts wird auch der zugehörige SQL Server-Launchpad-Dienst automatisch neu gestartet.

    Sie können den Dienst neu starten, indem Sie für die Instanz im SSMS-Objekt-Explorer den Befehl Neu starten aus dem Kontextmenü (Rechtsklick) verwenden. Alternativ können Sie auch das Element Dienste in der Systemsteuerung oder den SQL Server-Konfigurations-Manager verwenden.

  4. Vergewissern Sie sich, dass die Installation erfolgreich war, indem Sie einen einfachen T-SQL-Befehl ausführen, der die Version von R zurückgibt:

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

Einrichten der Unterstützung für Python

Installieren der Python-Runtime

  1. Laden Sie die neueste Version von Python 3.10 für Windows herunter. Installieren Sie sie mithilfe der folgenden Optionen:

    1. Öffnen Sie die Python-Setupanwendung, und wählen Sie Installation anpassen aus.

    2. Vergewissern Sie sich, dass das Kontrollkästchen Install launcher for all users (recommended) (Launcher für alle Benutzer*innen installieren (empfohlen)) aktiviert ist.

    3. Wählen Sie unter Optionale Features die gewünschten Features aus (oder alle).

    4. Aktivieren Sie auf der Seite Erweiterte Optionen die Option Install for all users (Für alle Benutzer*innen installieren), übernehmen Sie die restlichen Standardoptionen, und wählen Sie Installieren aus.

      Es wird empfohlen, einen Python-Installationspfad zu verwenden, auf den alle Benutzer*innen zugreifen können (z. B. C:\Program Files\Python310).

  2. Laden Sie die neueste Version des Pakets revoscalepy und der zugehörigen Abhängigkeiten über eine neue Eingabeaufforderung mit erhöhten Rechten herunter, und installieren Sie sie:

    cd "C:\Program Files\Python310\"
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
    

    Führen Sie die folgenden icacls-Befehle aus, um den installierten Bibliotheken LESE- und RECHTSCHREIBZUGRIFF auf den SQL Server-Launchpad-Dienst und SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES) zu gewähren. Sie müssen Berechtigungen für das dem Launchpad-Dienst zugeordnete Dienstkonto erteilen, mehr dazu unter SQL Server-Konfigurations-Manager.

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    Wenn Sie SQL Server als benannte Instanz installiert haben, hat das Dienstkonto möglicherweise eine $ in der Mitte, z. B.:

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

Konfigurieren der Python-Runtime mit SQL Server

  1. Konfigurieren Sie die installierte Python-Runtime mit SQL Server. Die Standardversion kann mithilfe des Befehlszeilen-Hilfsprogramms RegisterRext.exe geändert werden. Das Hilfsprogramm befindet sich am benutzerdefinierten Installationsspeicherort (z. B. C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs).

    Das folgende Skript kann mit einer Eingabeaufforderung mit erhöhten Rechten verwendet werden, um die installierte Python-Runtime über den Speicherort des Installationsordners von RegisterRext.exe zu konfigurieren. Der Instanzname ist entweder MSSQLSERVER (bei einer Standardinstanz von SQL Server) oder der Name einer benannten Instanz von SQL Server.

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
    

    Wenn Sie eine benannte Instanz von SQL Server konfigurieren, die Sie normalerweise als ".\SQLEXPRESS" oder "MACHINENAME\SQLEXPRESS" benennen würden, schließen Sie nur den Instanznamen ein. Zum Beispiel:

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
    
  2. Stellen Sie mithilfe von SQL Server Management Studio oder Azure Data Studio eine Verbindung mit der Instanz her, auf der Sie SQL Server Machine Learning Services installiert haben. Wählen Sie Neue Abfrage aus, um ein Abfragefenster zu öffnen, und führen Sie dann den folgenden Befehl aus, um das externe Skripterstellungsfeature zu aktivieren:

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

    Wenn Sie das Feature bereits für eine andere Sprache aktiviert haben, müssen Sie RECONFIGURE nicht erneut für R ausführen. Die zugrunde liegende Erweiterbarkeitsplattform unterstützt beide Sprachen. Vergewissern Sie sich zur Bestätigung, dass der folgende Befehl 1 für config_value und run_value zurückgibt:

    EXEC sp_configure  'external scripts enabled';
    
  3. Starten Sie den SQL Server-Dienst neu. Durch den Neustart des Diensts wird auch der zugehörige SQL Server-Launchpad-Dienst automatisch neu gestartet.

    Sie können den Dienst neu starten, indem Sie für die Instanz im SSMS-Objekt-Explorer den Befehl Neu starten aus dem Kontextmenü (Rechtsklick) verwenden. Alternativ können Sie auch das Element Dienste in der Systemsteuerung oder den SQL Server-Konfigurations-Manager verwenden.

  4. Vergewissern Sie sich, dass die Installation erfolgreich war, indem Sie einen einfachen Befehl ausführen, der die Version von Python zurückgibt:

    EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'
    GO
    

Installieren von Java

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

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.

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.

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

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.

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. Alternativ können Sie Datenbankrollen so konfigurieren, dass Benutzer*innen selbst Pakete installieren können. Weitere Informationen finden Sie unter Installieren von Python-Paketen und Installieren neuer R-Pakete.

Eigenständige RevoScale-Pakete für Python- und R-Runtime

RevoScale-Pakete werden auch als eigenständiges Paket mit Python- und R-Runtime unterstützt. Um die Python- oder R-Runtime für das eigenständige Szenario einzurichten, befolgen Sie die Anweisungen in den Abschnitten Installieren der Python-Runtime bzw . Installieren der R-Runtime.

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: