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:
- Wenn Sie eine vorhandene SQL Server-Instanz verwenden, installieren Sie das kumulative Update 3 oder höher für SQL Server 2019.
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.
Starten Sie den Setup-Assistenten für SQL Server 2019.
Klicken Sie auf der Registerkarte Installation auf Neue eigenständige SQL Server-Installation oder Hinzufügen von Funktionen zu einer vorhandenen Installation.
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.
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
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.
Laden Sie die R-Version 3.3 oder höher herunter.
Führen Sie das R-Setup aus.
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
.
Aktualisieren der Systemumgebungsvariable
Führen Sie die folgenden Schritte aus, um die PATH-Umgebungsvariablen des Systems zu ändern.
Suchen Sie im Windows-Suchfeld nach der Option Systemumgebungsvariablen bearbeiten, und öffnen Sie sie.
Wählen Sie unter ErweitertUmgebungsvariablen aus.
Ä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.
Starten Sie eine Eingabeaufforderung mit erhöhten Rechten (Als Administrator ausführen).
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"
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.
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.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.
Öffnen Sie den SQL Server-Konfigurations-Manager.
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.
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.
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 Sie SQL Server 2019 für Linux. Sie können SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Version 12, und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
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.
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
Installieren Sie mssql-server-extensibility mit diesem Befehl.
# Install as root or sudo sudo apt-get install mssql-server-extensibility
Installieren von R
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
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.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
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>"
Speichern und schließen Sie die Datei.
Stellen Sie als nächstes sicher, dass libR.so
geladen werden kann.
Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.
sudo vi /etc/ld.so.conf.d/custom-r.conf
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>
Speichern Sie die neue Datei, und schließen Sie den Editor.
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.
Starten Sie R von einer Shell:
sudo ${R_HOME}/bin/R
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.
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.
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 Sie SQL Server 2019 für Linux. Sie können SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Version 12, und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
- 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
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
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.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
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>"
Speichern und schließen Sie die Datei.
Stellen Sie als nächstes sicher, dass libR.so
geladen werden kann.
Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.
sudo vi /etc/ld.so.conf.d/custom-r.conf
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>
Speichern Sie die neue Datei, und schließen Sie den Editor.
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.
Starten Sie R von einer Shell:
sudo ${R_HOME}/bin/R
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.
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.
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 Sie SQL Server 2019 für Linux. Sie können SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Version 12, und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
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
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
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.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
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>"
Speichern und schließen Sie die Datei.
Stellen Sie als nächstes sicher, dass libR.so
geladen werden kann.
Erstellen Sie eine Datei „custom-r.conf“ in /etc/ld.so.conf.d.
sudo vi /etc/ld.so.conf.d/custom-r.conf
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>
Speichern Sie die neue Datei, und schließen Sie den Editor.
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.
Starten Sie R von einer Shell:
sudo ${R_HOME}/bin/R
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.
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.
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:
- 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 Beispiel200000
. - 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“)