Freigeben über


sqlrutils (R-Paket in SQL Server Machine Learning Services)

Gilt für: SQL Server 2016 (13.x) und höhere Versionen

sqlrutils ist ein R-Paket von Microsoft, das einen Mechanismus bietet, mit dem R-Benutzer ihre R-Skripts in eine gespeicherte T-SQL-Prozedur einbinden, diese gespeicherte Prozedur bei einer Datenbank registrieren und die gespeicherte Prozedur in einer R-Entwicklungsumgebung ausführen können. Das Paket ist in SQL Server Machine Learning Services und SQL Server 2016 R Services enthalten.

Durch Konvertieren Ihres R-Codes, sodass er in einer einzelnen gespeicherten Prozedur ausgeführt wird, können Sie SQL Server R Services effektiver nutzen, wozu es erforderlich ist, dass das R-Skript als Parameter für sp_execute_external_scripteingebettet wird. Das sqlrutils -Paket unterstützt Sie dabei, dieses eingebettete R-Skript zu erstellen und zugehörige Parameter entsprechend festzulegen.

Das sqlrutils -Paket führt die folgenden Aufgaben aus:

  • Es speichert das generierte T-SQL-Skript als Zeichenfolge in einer R-Datenstruktur.
  • Es generiert optional eine SQL-Datei für das T-SQL-Skript, die Sie bearbeiten oder ausführen können, um eine gespeicherte Prozedur zu erstellen.
  • Es registriert die neu erstellte gespeicherte Prozedur für die SQL Server-Instanz aus Ihrer R-Entwicklungsumgebung.

Sie können die gespeicherte Prozedur auch aus einer R-Umgebung ausführen, indem Sie wohlgeformte Parameter übergeben und die Ergebnisse verarbeiten. Oder Sie können die gespeicherte Prozedur aus SQL Server verwenden, um allgemeine Datenbankintegrationsszenarios wie ETL, Modelltraining und Massenbewertung zu unterstützen.

Hinweis

Wenn Sie beabsichtigen, die gespeicherte Prozedur aus einer R-Umgebung auszuführen, indem Sie die executeStoredProcedure -Funktion aufrufen, müssen Sie einen ODBC 3.8-Anbieter verwenden, z.B. ODBC Driver 13 for SQL Server.

Vollständige Referenzdokumentation

Das sqlrutils-Paket wird in mehreren Microsoft-Produkten bereitgestellt. Die Verwendung ist jedoch immer identisch, unabhängig davon, ob Sie das Paket in SQL Server oder einem anderen Produkt abrufen. Abweichungen durch produktspezifisches Verhalten finden Sie ggf. auf der Hilfeseite der Funktion.

Funktionsliste

Der folgende Abschnitt bietet eine Übersicht über die Funktionen, die Sie aus dem sqlrutils-Paket aufrufen können, um eine gespeicherte Prozedur mit eingebettetem R-Code zu entwickeln. Weitere Informationen über die Parameter für jede Methode oder Funktion finden Sie in der R-Hilfe für das Paket: help(package="sqlrutils")

Funktion BESCHREIBUNG
executeStoredProcedure Führt eine gespeicherte Prozedur aus.
getInputParameters Ruft eine Liste der Eingabeparameter in der gespeicherten Prozedur ab.
InputData Definiert die Datenquelle in SQL Server, die in dem R-Datenrahmen verwendet wird. Sie geben den Namen des Datenrahmens (data.frame), in dem die Eingabedaten gespeichert werden sollen, und eine Abfrage, mit der die Daten abgerufen werden, oder einen Standardwert an. Es werden nur einfache SELECT-Abfragen unterstützt.
InputParameter Definiert einen einzelnen Eingabeparameter, der in das T-SQL-Skript eingebettet wird. Sie müssen den Namen des Parameters und dessen R-Datentyp angeben.
OutputData Generiert ein Zwischendatenobjekt, das erforderlich ist, wenn Ihre R-Funktion eine Liste zurückgibt, die einen Datenrahmen (data.frame) enthält. Das OutputData -Objekt wird verwendet, um den Namen eines einzelnen „data.frame“ zu speichern, das aus der Liste abgerufen wurde.
OutputParameter Generiert ein Zwischendatenobjekt, das erforderlich ist, wenn Ihre R-Funktion eine Liste zurückgibt. Im OutputParameter -Objekt werden der Name und der Datentyp eines einzelnen Elements der Liste gespeichert, wobei vorausgesetzt wird, dass das Element kein Datenrahmen ist.
registerStoredProcedure Registriert die gespeicherte Prozedur bei einer Datenbank.
setInputDataQuery Weist einem Eingabedatenparameter der gespeicherten Prozedur eine Abfrage zu.
setInputParameterValue Weist einem Eingabeparameter der gespeicherten Prozedur einen Wert zu.
StoredProcedure Ein gespeichertes Prozedurobjekt.

Verwenden von sqlrutils

Die Funktionen im sqlrutils-Paket müssen auf einem Computer mit SQL Server Machine Learning mit R ausgeführt werden. Wenn Sie auf einer Clientarbeitsstation arbeiten, legen Sie einen Remotecomputekontext fest, um die Ausführung auf die SQL Server-Instanz zu verschieben. Der Workflow für die Verwendung dieses Pakets umfasst die folgenden Schritte:

  • Definieren der Parameter (Eingaben, Ausgaben oder beides) einer gespeicherten Prozedur
  • Generieren und Registrieren der gespeicherten Prozedur
  • Ausführen der gespeicherten Prozedur

Laden Sie in einer R-Sitzung sqlrutils über die Befehlszeile, indem Sie library(sqlrutils) eingeben.

Hinweis

Sie können dieses Paket auf einen Computer ohne SQL Server laden (z. B. auf eine R-Clientinstanz), wenn Sie den Computekontext in SQL Server ändern und den Code in diesem Computekontext ausführen.

Definieren der Parameter und Eingaben einer gespeicherten Prozedur

StoredProcedure ist der Hauptkonstruktor, der zum Erstellen der gespeicherten Prozedur verwendet wird. Dieser Konstruktor generiert eine gespeicherte Prozedur als SQL Server-Objekt und erstellt optional eine Textdatei, die eine Abfrage enthält, die dazu verwendet werden kann, die gespeicherte Prozedur mit einem T-SQL-Befehl zu generieren.

Außerdem kann die StoredProcedure -Funktion dazu verwendet werden, die gespeicherte Prozedur für die angegebene Instanz und Datenbank zu registrieren.

  • Verwenden Sie das func Argument, um eine gültige R-Funktion anzugeben. Alle Variablen, die in der Funktion verwendet werden, müssen entweder innerhalb der Funktion definiert sein oder als Eingabeparameter bereitgestellt werden. Diese Parameter können maximal einen Datenrahmen enthalten.

  • Die R-Funktion muss entweder einen Datenrahmen, eine benannte Liste oder NULL zurückgeben. Gibt die Funktion eine Liste zurück, darf die Liste maximal einen Datenrahmen (data.frame) enthalten.

  • Verwenden Sie das Argument spName , um den Namen der zu erstellenden gespeicherten Prozedur anzugeben.

  • Sie können optionale Eingabe- und Ausgabeparameter mithilfe der Objekte übergeben, die mit diesen Hilfsfunktionen erstellt wurden: setInputData, setInputParameterund setOutputParameter.

  • Verwenden Sie optional filePath , um den Pfad und den Namen der zu erstellenden SQL-Datei bereitzustellen. Sie können diese Datei für die SQL Server-Instanz ausführen, um die gespeicherte Prozedur mit T-SQL zu generieren.

  • Um den Server und die Datenbank festzulegen, in der die gespeicherte Prozedur gespeichert werden soll, verwenden Sie die Argumente dbName und connectionString.

  • Wenn Sie eine Liste des InputData - und des InputParameter -Objekts abrufen möchten, die zum Erstellen eines bestimmten StoredProcedure -Objekts verwendet wurden, rufen Sie getInputParametersauf.

  • Um die gespeicherte Prozedur für die angegebene Datenbank zu registrieren, verwenden Sie registerStoredProcedure.

Dem Objekt für die gespeicherte Prozedur sind üblicherweise weder Daten noch Werte zugeordnet, es sei denn, es wurde ein Standardwert angegeben. Daten werden erst abgerufen, wenn die gespeicherte Prozedur ausgeführt wird.

Angeben von Eingaben und Ausführen

  • Verwenden Sie setInputDataQuery , um einem InputParameter -Objekt eine Abfrage zuzuweisen. Wenn Sie beispielsweise ein Objekt für die gespeicherte Prozedur in R erstellt haben, können Sie setInputDataQuery verwenden, um Argumente an die StoredProcedure -Funktion zu übergeben, damit die gespeicherte Prozedur mit den gewünschten Eingaben ausgeführt wird.

  • Verwenden Sie setInputValue , wenn Sie einem Parameter, der als ein InputParameter -Objekt gespeichert ist, bestimmte Werte zuweisen möchten. Sie können dann das Parameterobjekt und dessen Wertzuweisung an die StoredProcedure -Funktion übergeben, um die gespeicherte Prozedur mit den festgelegten Werten auszuführen.

  • Verwenden Sie executeStoredProcedure , wenn Sie eine gespeicherte Prozedur ausführen möchten, die als ein StoredProcedure -Objekt definiert ist. Rufen Sie diese Funktion nur auf, wenn Sie eine gespeicherte Prozedur aus R-Code ausführen. Verwenden Sie diese Funktion nicht, wenn Sie die gespeicherte Prozedur aus SQL Server mithilfe von T-SQL ausführen.

Hinweis

Die executeStoredProcedure -Funktion erfordert einen ODBC 3.8-Anbieter, z.B. ODBC Driver 13 for SQL Server.

Weitere Informationen

Erstellen einer gespeicherten Prozedur mithilfe von sqlrutils