Ereignisse
31. März, 23 Uhr - 2. Apr., 23 Uhr
Das größte SQL-, Fabric- und Power BI-Lernereignis. 31. März – 2. April. Verwenden Sie Code FABINSIDER, um $400 zu sparen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Gilt für: SQL Server 2016 (13.x) und höher
Azure SQL Managed Instance
In diesem Schnellstart führen Sie einige einfache R-Skripts mithilfe von SQL Server Machine Learning Services oder in Big Data-Clustern aus. Sie erfahren, wie Sie die gespeicherte Prozedur sp_execute_external_script verwenden, um das Skript in einer SQL Server-Instanz auszuführen.
In diesem Schnellstart führen Sie einige einfache R-Skripts mithilfe von SQL Server Machine Learning Services aus. Sie erfahren, wie Sie die gespeicherte Prozedur sp_execute_external_script verwenden, um das Skript in einer SQL Server-Instanz auszuführen.
In diesem Schnellstart führen Sie einige einfache R-Skripts mithilfe von SQL Server R Services aus. Sie erfahren, wie Sie die gespeicherte Prozedur sp_execute_external_script verwenden, um das Skript in einer SQL Server-Instanz auszuführen.
In diesem Schnellstart führen Sie einige einfache R-Skripts mithilfe von Machine Learning Services in Azure SQL Managed Instance aus. Sie erfahren, wie Sie die gespeicherte Prozedur sp_execute_external_script verwenden, um Skripts in Ihrer Datenbank auszuführen.
Zum Durchführen dieser Schnellstartanleitung benötigen Sie folgende Voraussetzungen.
Sie können ein R-Skript ausführen, indem Sie es als Argument an die gespeicherte Systemprozedur sp_execute_external_script übergeben. Diese gespeicherte Systemprozedur startet die R-Runtime, übergibt Daten an R, verwaltet Sitzungen von R-Benutzern sicher und gibt alle Ergebnisse an den Client zurück.
In den folgenden Schritten führen Sie dieses R-Beispielskript aus:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Öffnen Sie Azure Data Studio, und stellen Sie eine Verbindung mit Ihrem Server her.
Übergeben Sie das gesamte R-Skript an die gespeicherte Prozedur sp_execute_external_script
.
Das Skript wird durch das @script
-Argument übergeben. Das @script
-Argument darf nur aus zulässigem R-Code bestehen.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
'
Das korrekte Ergebnis wird berechnet, und die R-Funktion print
gibt das Ergebnis im Meldungsfenster zurück.
Die Ausgabe könnte beispielsweise wie folgt aussehen:
Ergebnisse
STDOUT message(s) from external script:
0.5 2
In einem typischen Beispielskript wird nur die Zeichenfolge „Hallo Welt“ (oder „Hello World“) ausgegeben. Führen Sie den folgenden Befehl aus.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet<-InputDataSet'
, @input_data_1 = N'SELECT 1 AS hello'
WITH RESULT SETS(([Hello World] INT));
GO
Folgende Eingaben sind für die gespeicherte Prozedur sp_execute_external_script
möglich:
Eingabe | BESCHREIBUNG |
---|---|
@language | definiert die aufzurufende Spracherweiterung (hier R) |
@script | definiert die Befehle, die an die R-Runtime übergeben werden Ihr gesamtes R-Skript muss als Unicode-Text in dieses Argument eingeschlossen werden. Sie können den Text auch einer Variablen des Typs nvarchar hinzufügen und die Variable anschließend aufrufen. |
@input_data_1 | Die von der Abfrage zurückgegebenen Daten werden an die R-Runtime übergeben, die die Daten als Datenrahmen zurückgibt. |
WITH RESULT SETS | Mit dieser Klausel wird das Schema der zurückgegebenen Datentabelle definiert und „Hello World“ als Spaltenname und int als Datentyp festgelegt. |
Der Befehl gibt folgenden Text aus:
Hello World |
---|
1 |
Standardmäßig akzeptiert sp_execute_external_script
ein einzelnes Dataset als Eingabe, das in der Regel in Form einer gültigen SQL-Abfrage angegeben wird. Anschließend wird ein einzelner R-Datenrahmen als Ausgabe zurückgegeben.
Verwenden Sie vorerst die standardmäßig festgelegten Eingabe- und Ausgabevariablen von sp_execute_external_script
: InputDataSet und OutputDataSet.
Erstellen Sie eine kleine Tabelle mit Testdaten.
CREATE TABLE RTestData (col1 INT NOT NULL)
INSERT INTO RTestData
VALUES (1);
INSERT INTO RTestData
VALUES (10);
INSERT INTO RTestData
VALUES (100);
GO
Verwenden Sie die SELECT
-Anweisung zum Abfragen der Tabelle.
SELECT *
FROM RTestData
Ergebnisse
Führen Sie folgendes R-Skript aus: Es ruft die Daten mithilfe der SELECT
-Anweisung aus der Tabelle ab, übergibt sie über die R-Runtime und gibt sie anschließend als Datenrahmen zurück. Die Klausel WITH RESULT SETS
definiert das Schema der zurückgegeben Datentabelle für SQL und fügt den Spaltennamen NewColName hinzu.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet <- InputDataSet;'
, @input_data_1 = N'SELECT * FROM RTestData;'
WITH RESULT SETS(([NewColName] INT NOT NULL));
Ergebnisse
Ändern Sie nun die Namen der Eingabe- und Ausgabevariablen. Standardmäßig werden die Eingabe- und Ausgabevariablen InputDataSet und OutputDataSet verwendet. In diesem Skript werden die Namen in SQL_in und SQL_out geändert:
EXECUTE sp_execute_external_script @language = N'R'
, @script = N' SQL_out <- SQL_in;'
, @input_data_1 = N' SELECT 12 as Col;'
, @input_data_1_name = N'SQL_in'
, @output_data_1_name = N'SQL_out'
WITH RESULT SETS(([NewColName] INT NOT NULL));
Beachten Sie, dass R Groß- und Kleinschreibung beachtet. Die im R-Skript verwendeten Eingabe- und Ausgabevariablen (SQL_out und SQL_in) müssen mit den mit @input_data_1_name
und @output_data_1_name
definierten Namen (Groß-/Kleinschreibung beachten) identisch sein.
Tipp
Nur ein Eingabedataset kann als Parameter übergeben werden, und Sie können nur ein Dataset zurückgeben. Sie können aber andere Datasets in Ihrem R-Code aufrufen und zusätzlich zum Dataset Ausgaben anderer Typen zurückgeben. Außerdem können Sie auch allen Parametern das Schlüsselwort OUTPUT hinzufügen, damit es zusammen mit den Ergebnissen zurückgegeben wird.
Sie können über das R-Skript auch Werte ohne Eingabedaten generieren, indem kein Wert für @input_data_1
festgelegt wird.
Das folgende Skript gibt den Text „hello“ und „world“ aus.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
mytextvariable <- c("hello", " ", "world");
OutputDataSet <- as.data.frame(mytextvariable);
'
, @input_data_1 = N''
WITH RESULT SETS(([Col1] CHAR(20) NOT NULL));
Ergebnisse
@script als Eingabe" />
Wenn Sie ermitteln möchten, welche Version von R installiert ist, führen Sie das folgende Skript aus.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
Die R-Funktion print
gibt die Version im Meldungsfenster zurück. In der folgenden Beispielausgabe sehen Sie, dass in diesem Fall Version 3.4.4 von R installiert ist.
Ergebnisse
STDOUT message(s) from external script:
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.4
year 2018
month 03
day 15
svn rev 74408
language R
version.string R version 3.4.4 (2018-03-15)
nickname Someone to Lean On
Microsoft bietet eine Reihe von R-Paketen, die mit Machine Learning Services vorinstalliert werden.
Microsoft bietet eine Reihe von R-Paketen, die mit R Services vorinstalliert werden.
Führen Sie folgendes Skript aus, um eine Liste der installierten R-Pakete (einschließlich Version, Abhängigkeiten, Lizenz und Bibliothekspfad) anzuzeigen:
EXEC sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- data.frame(installed.packages()[,c("Package", "Version", "Depends", "License", "LibPath")]);'
WITH result sets((
Package NVARCHAR(255)
, Version NVARCHAR(100)
, Depends NVARCHAR(4000)
, License NVARCHAR(1000)
, LibPath NVARCHAR(2000)
));
Die Ausgabe stammt von installed.packages()
in R und wird als Resultset zurückgegeben.
Ergebnisse
Befolgen Sie diesen Schnellstart, um die Verwendung von Datenstrukturen zu erlernen, wenn R mit SQL Machine Learning verwendet wird:
Ereignisse
31. März, 23 Uhr - 2. Apr., 23 Uhr
Das größte SQL-, Fabric- und Power BI-Lernereignis. 31. März – 2. April. Verwenden Sie Code FABINSIDER, um $400 zu sparen.
Jetzt registrierenTraining
Modul
Erkunden und Analysieren von Daten mit R - Training
In diesem Modul erkunden, analysieren und visualisieren Sie Daten mithilfe der Programmiersprache R.
Zertifizierung
Microsoft Certified: Azure Data Scientist Associate - Certifications
Verwalten Sie Datenerfassung und -vorbereitung, Modelltraining und -bereitstellung sowie die Überwachung von Machine Learning-Lösungen mit Python, Azure Machine Learning und MLflow.
Dokumentation
Was ist SQL Server Machine Learning Services (Python und R)? - SQL Server Machine Learning Services
Machine Learning Services ist ein Feature in SQL Server, das die Möglichkeit bietet, Python- und R-Skripts mit relationalen Daten auszuführen. In diesem Artikel werden die Grundlagen von SQL Server Machine Learning Services sowie die ersten Schritte damit erläutert.
R-Spracherweiterung - SQL Server Machine Learning Services
Hier erfahren Sie mehr über die R-Erweiterung für die Ausführung externer R-Skripts mit SQL Server Machine Learning Services und SQL Server R Services.
R-Paket „RevoScaleR“ - SQL Server Machine Learning Services
„RevoScaleR“ ist ein R-Paket von Microsoft, das verteiltes Computing, Remotecomputekontexte und hochleistungsfähige Data Science-Algorithmen unterstützt. Außerdem werden Datenimport, Datentransformation, Zusammenfassung, Visualisierung und Analyse unterstützt. Das Paket ist in SQL Server Machine Learning Services und SQL Server 2016 R Services enthalten.