Installieren einer benutzerdefinierten R-Laufzeit für SQL Server

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

Hier erfahren Sie, wie Sie eine benutzerdefinierte R-Runtime zum Ausführen von externen R-Skripts mit SQL Server auf folgenden Distributionen installieren:

  • Windows
  • Ubuntu Linux
  • Red Hat Enterprise Linux (RHEL)
  • SUSE Linux Enterprise Server (SLES), Version 12

Die benutzerdefinierte Runtime kann Machine Learning-Skripts ausführen und verwendet die SQL Server-Spracherweiterungen.

Verwenden Sie Ihre eigene Version der R-Runtime anstelle der Standardversion der Runtime mit SQL Server, die mit SQL Server Machine Learning Services installiert wird.

Ab SQL Server 2022 (16.x) werden Runtimes für R, Python und Java nicht mehr im Rahmen des SQL-Setups installiert. Installieren Sie stattdessen Ihre gewünschten benutzerdefinierten R-Runtimes und -Pakete. Weitere Informationen finden Sie unter Installieren von SQL Server 2022 Machine Learning Services (Python und R) unter Windows oder unter Installieren von SQL Server Machine Learning Services (Python und R) unter Linux.

Voraussetzungen

Vor der Installation einer benutzerdefinierten R-Laufzeit müssen Sie Folgendes installieren:

Installieren von Spracherweiterungen

Hinweis

Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, sind die Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.

Führen Sie die folgenden Schritte aus, um SQL Server-Spracherweiterungen zu installieren, die für die benutzerdefinierte R-Runtime verwendet werden.

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

  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 Spracherweiterungen mit SQL Server verwenden zu können. Sie können entweder eine neue oder eine vorhandene Instanz verwenden.

    • Machine Learning-Dienste und -Spracherweiterungen

      Wählen Sie Machine Learning-Dienste und -Spracherweiterungen aus. Wählen Sie nicht R aus, da Sie die benutzerdefinierte R-Runtime später installieren werden.

      SQL Server 2019 Language Extensions setup.

  4. Stellen Sie auf der Seite Installationsbereit sicher, dass die folgenden Auswahlmöglichkeiten aktiviert sind, und klicken Sie auf Installieren.

    • -Datenbank-Engine-Dienste
    • Machine Learning-Dienste und -Spracherweiterungen
  5. Starten Sie nach Abschluss des Setups den Computer neu, wenn Sie dazu aufgefordert werden.

Wichtig

Wenn Sie eine neue Instanz von SQL Server 2019 mit Spracherweiterungen installieren, installieren Sie das kumulative Update (CU) 3 oder höher, bevor Sie mit dem nächsten Schritt fortfahren.

Installieren von R

Laden Sie die Version von R herunter, die Sie als benutzerdefinierte Runtime verwenden möchten, und installieren Sie sie. Die R-Version 3.3 oder höher wird unterstützt.

  1. Laden Sie die R-Version 3.3 oder höher herunter.

  2. Führen Sie das R-Setup aus.

  3. Notieren Sie sich den Pfad, in dem R installiert ist. In diesem Artikel lautet er zum Beispiel C:\Program Files\R\R-4.0.3.

    R setup

Aktualisieren der Systemumgebungsvariable

Führen Sie die folgenden Schritte aus, um die PATH-Umgebungsvariablen des Systems zu ändern.

  1. Suchen Sie im Windows-Suchfeld nach der Option Systemumgebungsvariablen bearbeiten, und öffnen Sie sie.

  2. Wählen Sie unter ErweitertUmgebungsvariablen aus.

  3. Ändern Sie die PATH-Umgebungsvariable des Systems.

    Wählen Sie PATH aus, und klicken Sie auf Bearbeiten.

    Wählen Sie Neu aus, und fügen Sie dem Pfad zum \bin\x64-Ordner in Ihrem R-Installationspfad hinzu. Beispiel: C:\Program Files\R\R-4.0.3\bin\x64.

Installieren des Rcpp-Pakets

Führen Sie diese Schritte aus, um das Rcpp-Paket zu installieren.

  1. Starten Sie eine Eingabeaufforderung mit erhöhten Rechten (Als Administrator ausführen).

  2. Starten Sie R über die Eingabeaufforderung. Führen Sie \bin\R.exe im Ordner in Ihrem R-Installationspfad aus. Beispiel: C:\Program Files\R\R-4.0.3\bin\R.exe.

    "C:\Program Files\R\R-4.0.3\bin\R.exe"
    
  3. Führen Sie das folgende Skript aus, um das Rcpp-Paket im Ordner \library in Ihrem R-Installationspfad zu installieren. Beispiel: C:\Program Files\R\R-4.0.3\library.

    install.packages("Rcpp", lib="C:\\Program Files\\R\\R-4.0.3\\library");
    

Gewähren des Zugriffs auf den R-Ordner

Hinweis

Wenn Sie R am Standardspeicherort C:\Program Files\R\R-version (zum Beispiel C:\Program Files\R\R-4.0.3) installiert haben, können Sie diesen Schritt überspringen.

Führen Sie die folgenden icacls-Befehle in einer neuen Eingabeaufforderung mit erhöhten Rechten aus, um Benutzername des SQL Server-Launchpad-Diensts und SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES) LESE- und AUSFÜHRUNGSZUGRIFF zu gewähren. Der Benutzername des Launchpad-Diensts weist die Form NT Service\MSSQLLAUNCHPAD$INSTANCENAME auf, wobei INSTANCENAME der Instanzname Ihrer SQL Server-Instanz ist.

Die Befehle gewähren rekursiv Zugriff auf alle Dateien und Ordner unter dem angegebenen Verzeichnispfad.

  1. Erteilen Sie für Ihren R-Installationspfad die Berechtigungen für Benutzername des SQL Server-Launchpad Diensts. Beispiel: C:\Program Files\R\R-4.0.3.

    icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    

    Bei einer benannter Instanz ist der Befehl icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T für eine Instanz namens SQL01.

  2. Erteilen Sie die Berechtigungen für SID S-1-15-2-1 für Ihren R-Installationspfad. Beispiel: C:\Program Files\R\R-4.0.3.

    icacls "C:\Program Files\R\R-4.0.3" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    Der vorangehende Befehl erteilt Berechtigungen für die Computer-SID S-1-15-2-1, was ALLEN ANWENDUNGSPAKETEN auf einer englischen Version von Windows entspricht. Alternativ können Sie icacls "C:\Program Files\R\R-4.0.3" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T in einer englischen Version von Windows verwenden.

Neustart von SQL Server-Launchpad

Führen Sie die folgenden Schritte aus, um den SQL Server-Launchpad-Dienst neu zu starten.

  1. Öffnen Sie den SQL Server-Konfigurations-Manager.

  2. Klicken Sie unter SQL Server-Dienste mit der rechten Maustaste auf SQL Server-Launchpad (MSSQLSERVER), und wählen Sie Neu starten aus. Wenn Sie eine benannte Instanz verwenden, wird der Instanzname anstelle von (MSSQLSERVER) angezeigt.

Registrieren der Spracherweiterung

Führen Sie die folgenden Schritte aus, um die R-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte R-Runtime verwendet wird.

  1. Laden Sie die Datei R-lang-extension-windows-release.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.

    Alternativ können Sie auch die Debugversion (R-lang-extension-windows-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.

  2. Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die R-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.

    Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (R-lang-extension-windows) und den Speicherort Ihrer R-Installation (C:\\Program Files\\R\\R-4.0.3) anzugeben.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'C:\path\to\R-lang-extension-windows-release.zip', 
        FILE_NAME = 'libRExtension.dll',
        ENVIRONMENT_VARIABLES = N'{"R_HOME": "C:\\Program Files\\R\\R-4.0.3"}');
    GO
    

    Führen Sie die Anweisung für jede Datenbank aus, in der Sie die R-Spracherweiterung verwenden möchten.

    Hinweis

    R ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myR.

Voraussetzungen

Vor der Installation einer benutzerdefinierten R-Laufzeit müssen Sie Folgendes installieren:

Installieren von Spracherweiterungen

Hinweis

Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.

Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter Ubuntu Linux zu installieren, die für die benutzerdefinierte R-Runtime verwendet werden.

  1. Führen Sie diesen Befehl wenn möglich aus, um die Pakete auf dem System vor der Installation zu aktualisieren.

    # Install as root or sudo
    sudo apt-get update
    
  2. Installieren Sie mssql-server-extensibility mit diesem Befehl.

    # Install as root or sudo
    sudo apt-get install mssql-server-extensibility
    

Installieren von R

  1. Wenn Sie Machine Learning Services installiert haben, ist R bereits in /opt/microsoft/ropen/3.5.2/lib64/R installiert. Wenn Sie diesen Pfad weiterhin als R_HOME verwenden möchten, können Sie diesen Schritt überspringen.

    Wenn Sie eine andere Laufzeit von R verwenden möchten, müssen Sie zunächst microsoft-r-open-mro entfernen, bevor Sie mit der Installation einer neuen Version fortfahren können.

    sudo apt remove microsoft-r-open-mro-3.5.2
    
  2. Installieren Sie R (3.3 oder höher) für Ubuntu. Standardmäßig wird R in /usr/lib/R installiert. Dieser Pfad ist Ihr R_HOME. Wenn Sie R an einem anderen Speicherort installieren, notieren Sie sich diesen Pfad als R_HOME.

    Nachfolgende finden Sie Beispielanweisungen für Ubuntu. Ändern Sie die unten angegebene Repository-URL für Ihre Version von R.

    export DEBIAN_FRONTEND=noninteractive
    sudo apt-get update
    sudo apt-get --no-install-recommends -y install curl zip unzip apt-transport-https libstdc++6
    
    # Add R CRAN repository. This repository works for R 4.0.x.
    #
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran40/'
    sudo apt-get update
    
    # Install R runtime.
    #
    sudo apt-get -y install r-base-core
    

Benutzerdefinierte Installation von R

Hinweis

Wenn Sie R am Standardspeicherort von /usr/lib/R installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Installieren des Rcpp-Pakets fortfahren.

Aktualisieren der Umgebungsvariablen

Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf die R_HOME-Umgebungsvariable hinzuzufügen.

  1. Öffnen Sie die Datei mit systemctl.

    sudo systemctl edit mssql-launchpadd
    
  2. Fügen Sie den folgenden Text in die Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf ein, die geöffnet wird. Legen Sie den Wert R_HOME auf den benutzerdefinierten R-Installationspfad fest.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. Speichern und schließen Sie die Datei.

Stellen Sie als nächstes sicher, dass libR.so geladen werden kann.

  1. Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libR.so aus der benutzerdefinierten R-Installation hinzu.

    <path to the R lib>
    
  3. Speichern Sie die neue Datei, und schließen Sie den Editor.

  4. Führen Sie ldconfig aus, und vergewissern Sie sich, dass libR.so geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob alle abhängigen Bibliotheken gefunden werden.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

Gewähren des Zugriffs auf den benutzerdefinierten R-Installationsordner

Legen Sie die datadirectories-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf auf die benutzerdefinierte R-Installation fest.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

Neustarten des mssql-launchpadd-Diensts

Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:

sudo systemctl restart mssql-launchpadd

Installieren des Rcpp-Pakets

Führen Sie diese Schritte aus, um das Rcpp-Paket zu installieren.

  1. Starten Sie R von einer Shell:

    sudo ${R_HOME}/bin/R
    
  2. Führen Sie das folgende Skript aus, um das Rcpp-Paket im Ordner „${R_HOME}\library“ zu installieren.

install.packages("Rcpp", lib = "${R_HOME}/library");

Registrieren der Spracherweiterung

Führen Sie die folgenden Schritte aus, um die R-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte R-Runtime verwendet wird.

  1. Laden Sie die Datei R-lang-extension-linux.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.

    Alternativ können Sie auch die Debugversion (R-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.

  2. Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die R-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.

    Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (R-lang-extension-linux.zip) anzugeben.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    Führen Sie die Anweisung für jede Datenbank aus, in der Sie die R-Spracherweiterung verwenden möchten.

    Hinweis

    R ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myR.

Voraussetzungen

Vor der Installation einer benutzerdefinierten R-Laufzeit müssen Sie Folgendes installieren:

  • Für „RExtension“ ist GLIBCXX_3.4.20 erforderlich. Sorgen Sie dafür, dass dies durch die Version von libstdc++.so.6 in der RHEL-Installation (Red Hat Enterprise Linux) bereitgestellt wird.

Installieren von Spracherweiterungen

Hinweis

Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.

Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter Red Hat Enterprise Linux (RHEL) zu installieren, die für die benutzerdefinierte R-Runtime verwendet werden.

# Install as root or sudo
sudo yum install mssql-server-extensibility

Installieren von R

  1. Wenn Sie Machine Learning Services installiert haben, ist R bereits in /opt/microsoft/ropen/3.5.2/lib64/R installiert. Wenn Sie diesen Pfad weiterhin als R_HOME verwenden möchten, können Sie diesen Schritt überspringen.

    Wenn Sie eine andere Laufzeit von R verwenden möchten, müssen Sie zunächst microsoft-r-open-mro entfernen, bevor Sie mit der Installation einer neuen Version fortfahren können.

    sudo yum erase microsoft-r-open-mro-3.5.2
    
  2. Installieren Sie R (3.3 oder höher) für Red Hat Enterprise Linux (RHEL). R wird standardmäßig in /usr/lib64/R installiert. Dieser Pfad ist Ihr R_HOME. Wenn Sie R an einem anderen Speicherort installieren, notieren Sie sich diesen Pfad als R_HOME.

    sudo yum install -y R
    

Benutzerdefinierte Installation von R

Hinweis

Wenn Sie R am Standardspeicherort von /usr/lib/R installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Installieren des Rcpp-Pakets fortfahren.

Aktualisieren der Umgebungsvariablen

Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf die R_HOME-Umgebungsvariable hinzuzufügen.

  1. Öffnen Sie die Datei mit systemctl.

    sudo systemctl edit mssql-launchpadd
    
  2. Fügen Sie den folgenden Text in die Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf ein, die geöffnet wird. Legen Sie den Wert R_HOME auf den benutzerdefinierten R-Installationspfad fest.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. Speichern und schließen Sie die Datei.

Stellen Sie als nächstes sicher, dass libR.so geladen werden kann.

  1. Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libR.so aus der benutzerdefinierten R-Installation hinzu.

    <path to the R lib>
    
  3. Speichern Sie die neue Datei, und schließen Sie den Editor.

  4. Führen Sie ldconfig aus, und vergewissern Sie sich, dass libR.so geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob alle abhängigen Bibliotheken gefunden werden.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

Gewähren des Zugriffs auf den benutzerdefinierten R-Installationsordner

Legen Sie die datadirectories-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf auf die benutzerdefinierte R-Installation fest.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

Neustarten des mssql-launchpadd-Diensts

Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:

sudo systemctl restart mssql-launchpadd

Installieren des Rcpp-Pakets

Führen Sie diese Schritte aus, um das Rcpp-Paket zu installieren.

  1. Starten Sie R von einer Shell:

    sudo ${R_HOME}/bin/R
    
  2. Führen Sie das folgende Skript aus, um das Rcpp-Paket im Ordner „${R_HOME}\library“ zu installieren.

install.packages("Rcpp", lib = "${R_HOME}/library");

Registrieren der Spracherweiterung

Führen Sie die folgenden Schritte aus, um die R-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte R-Runtime verwendet wird.

  1. Laden Sie die Datei R-lang-extension-linux.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.

    Alternativ können Sie auch die Debugversion (R-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.

  2. Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die R-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.

    Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (R-lang-extension-linux.zip) anzugeben.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    Führen Sie die Anweisung für jede Datenbank aus, in der Sie die R-Spracherweiterung verwenden möchten.

    Hinweis

    R ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myR.

Voraussetzungen

Vor der Installation einer benutzerdefinierten R-Laufzeit müssen Sie Folgendes installieren:

Installieren von Spracherweiterungen

Hinweis

Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.

Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter SUSE Linux Enterprise Server (SLES) zu installieren, die für die benutzerdefinierte R-Runtime verwendet werden.

# Install as root or sudo
sudo zypper install mssql-server-extensibility

Installieren von R

  1. Wenn Sie Machine Learning Services installiert haben, ist R bereits in /opt/microsoft/ropen/3.5.2/lib64/R installiert. Wenn Sie diesen Pfad weiterhin als R_HOME verwenden möchten, können Sie diesen Schritt überspringen.

    Wenn Sie eine andere Laufzeit von R verwenden möchten, müssen Sie zunächst microsoft-r-open-mro entfernen, bevor Sie mit der Installation einer neuen Version fortfahren können.

    sudo zypper remove microsoft-r-open-mro-3.4.4
    
  2. Installieren Sie R (3.3 oder höher) für SUSE Linux Enterprise Server (SLES). R wird standardmäßig in /usr/lib64/R installiert. Dieser Pfad ist Ihr R_HOME. Wenn Sie R an einem anderen Speicherort installieren, notieren Sie sich diesen Pfad als R_HOME.

    Führen Sie zum Installieren von R die folgenden Schritte aus:

    sudo zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/R:/patched/openSUSE_12.3/ R-patched
    sudo zypper --gpg-auto-import-keys ref
    sudo zypper install R-core-libs R-core R-core-doc R-patched
    

    Sie können die Warnungen für R-tcltk-3.6.1ignorieren – es sei denn, dass Sie dieses Paket benötigen.

Installieren von gcc-c++

Installieren Sie gcc-c++ auf SUSE Linux Enterprise Server (SLES). Er wird für Rcpp verwendet, das später installiert wird.

sudo zypper install gcc-c++

Benutzerdefinierte Installation von R

Hinweis

Wenn Sie R am Standardspeicherort von /usr/lib/R installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Installieren des Rcpp-Pakets fortfahren.

Aktualisieren der Umgebungsvariablen

Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf die R_HOME-Umgebungsvariable hinzuzufügen.

  1. Öffnen Sie die Datei mit systemctl.

    sudo systemctl edit mssql-launchpadd
    
  2. Fügen Sie den folgenden Text in die Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf ein, die geöffnet wird. Legen Sie den Wert R_HOME auf den benutzerdefinierten R-Installationspfad fest.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. Speichern und schließen Sie die Datei.

Stellen Sie als nächstes sicher, dass libR.so geladen werden kann.

  1. Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libR.so aus der benutzerdefinierten R-Installation hinzu.

    <path to the R lib>
    
  3. Speichern Sie die neue Datei, und schließen Sie den Editor.

  4. Führen Sie ldconfig aus, und vergewissern Sie sich, dass libR.so geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob alle abhängigen Bibliotheken gefunden werden.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

Gewähren des Zugriffs auf den benutzerdefinierten R-Installationsordner

Legen Sie die datadirectories-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf auf die benutzerdefinierte R-Installation fest.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

Neustarten des mssql-launchpadd-Diensts

Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:

sudo systemctl restart mssql-launchpadd

Installieren des Rcpp-Pakets

Führen Sie diese Schritte aus, um das Rcpp-Paket zu installieren.

  1. Starten Sie R von einer Shell:

    sudo ${R_HOME}/bin/R
    
  2. Führen Sie das folgende Skript aus, um das Rcpp-Paket im Ordner „${R_HOME}\library“ zu installieren.

install.packages("Rcpp", lib = "${R_HOME}/library");

Registrieren der Spracherweiterung

Führen Sie die folgenden Schritte aus, um die R-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte R-Runtime verwendet wird.

  1. Laden Sie die Datei R-lang-extension-linux.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.

    Alternativ können Sie auch die Debugversion (R-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.

  2. Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die R-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.

    Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (R-lang-extension-linux.zip) anzugeben.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    Führen Sie die Anweisung für jede Datenbank aus, in der Sie die R-Spracherweiterung verwenden möchten.

    Hinweis

    R ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myR.

Aktivieren des externen Skripts

Sie können ein externes R-Skript mit der gespeicherten Prozedur sp_execute_external script ausführen.

Zum Aktivieren externer Skripts verwenden Sie Azure Data Studio, um die folgende Anweisung auszuführen.

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

Überprüfen der Installation

Verwenden Sie das folgende SQL-Skript zum Überprüfen der Installation und Funktionalität der benutzerdefinierten R-Runtime. Im folgenden Beispielskript wird als Sprachname myR verwendet, da der Standardsprachname R für eine benutzerdefinierte Runtime nicht angegeben werden kann.

EXEC sp_execute_external_script
    @language =N'myR',
    @script=N'
print(R.home());
print(file.path(R.home("bin"), "R"));
print(R.version);
print("Hello RExtension!");'

Bekannte Probleme

Wenn Sie die R-Runtime verwenden, die als Teil von SQL Server Machine Learning Services bereitgestellt wird, kann beim Festlegen von R_HOME auf C:\Program Files\Microsoft SQL Server\MSSQL15.<INSTANCE_NAME>\R_SERVICES (wenn Sie die Spracherweiterung registrieren) der folgende Fehler auftreten, wenn ein externes benutzerdefiniertes R-Skript mit sp_execute_external script ausgeführt wird.

Error: cons memory exhausted (limit reached?) (Fehler: Cons-Speicher ist ausgeschöpft (Limit erreicht?))

So beheben Sie dieses Problem:

  1. Legen Sie die Umgebungsvariable R_NSIZE fest, die angibt, dass die Anzahl von Objekten mit fester Größe (cons cells) auf einem angemessenen Wert festgelegt sind, zum Beispiel 200000.
  2. Starten Sie den Launchpad-Dienst neu, und versuchen Sie, das Skript erneut auszuführen.

Bekannte Probleme

Wenn libstdc++.so.6 nicht die richtige Version ist, wird dieser Fehler angezeigt:

Exthost: Fehler beim Laden der Erweiterung „/lib64/libstdc++.so.6“: Version „GLIBCXX_3.4.20“ nicht gefunden (erforderlich für „/home/mssql_satellite/externallanguagessandboxpath/libRExtension.so.1.1“)

Nächste Schritte