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

Gilt für: SQL Server 2016 (13.x) und spätere Versionen

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.

Im Gegensatz zu den grundlegenden R-Funktionen können RevoScaleR-Vorgänge für große Datasets, parallel und für verteilte Dateisysteme ausgeführt werden. Die Funktionen können über Datasets, die nicht in den Arbeitsspeicher passen, durch Segmentierung und Neuzusammenstellung der Ergebnisse nach Beendigung der Vorgänge verwendet werden.

RevoScaleR-Funktionen sind mit einem rx**- oder Rx-Präfix gekennzeichnet, damit sie leichter zu identifizieren sind.

RevoScaleR fungiert als Plattform für verteilte Data Science-Prozesse. Sie können beispielsweise die RevoScaleR-Computekontexte und -Transformationen mit den modernen Algorithmen in MicrosoftML verwenden. Sie können auch rxExec verwenden, um grundlegende R-Funktionen parallel auszuführen.

Vollständige Referenzdokumentation

Das RevoScaleR-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. Da die Funktionen identisch sind, wird die Dokumentation für einzelne RevoScaleR-Funktionen nur an einer Stelle in der R-Referenz veröffentlicht. Abweichungen durch produktspezifisches Verhalten finden Sie ggf. auf der Hilfeseite der Funktion.

Versionen und Plattformen

Das RevoScaleR-Paket basiert auf R 3.4.3 und ist nur verfügbar, wenn Sie eines der folgenden Microsoft-Produkte oder Downloads installieren:

Hinweis

Vollständige Produktversionen sind in SQL Server 2017 nur unter Windows verfügbar. In SQL Server 2019 wird RevoScaleR sowohl unter Windows als auch unter Linux unterstützt.

Funktionen nach Kategorie

In diesem Abschnitt werden die Funktionen nach Kategorien aufgelistet, damit Sie einen Überblick über die Verwendung der einzelnen Funktionen erhalten. Im Inhaltsverzeichnis können Sie in alphabetischer Reihenfolge nach den Funktionen suchen.

1: Datenquelle und Compute

RevoScaleR enthält Funktionen zum Erstellen von Datenquellen und zum Festlegen des Speicherorts bzw. Computekontexts, in dem Berechnungen durchgeführt werden. Ein Datenquellenobjekt ist ein Container, der eine Verbindungszeichenfolge zusammen mit dem gewünschten Datensatz als Tabelle, Ansicht oder Abfrage definiert angibt. Aufrufe von gespeicherten Prozeduren werden nicht unterstützt. In der folgenden Tabelle sind die für SQL Server-Szenarios relevanten Funktionen aufgeführt.

SQL Server und R verwenden in bestimmten Fällen unterschiedliche Datentypen. Eine Liste der Zuordnungen zwischen SQL Server- und R-Datentypen finden Sie unter Zuordnungen zwischen R- und SQL Server-Datentypen.

Funktion BESCHREIBUNG
RxInSqlServer Erstellt ein SQL Server-Computekontextobjekt, um Berechnungen in eine Remoteinstanz zu überführen. Mehrere RevoScaleR-Funktionen verwenden den Computekontext als Argument.
rxGetComputeContext/rxSetComputeContext Gibt den aktiven Computekontext an oder legt ihn fest
RxSqlServerData Erstellt ein Datenobjekt basierend auf einer SQL Server-Abfrage oder -Tabelle
RxOdbcData Erstellt eine Datenquelle basierend auf einer ODBC-Verbindung
RxXdfData Erstellt eine Datenquelle basierend auf einer lokalen XDF-Datei. XDF-Dateien werden häufig verwendet, um In-Memory-Daten auf einen Datenträger auszulagern. Eine XDF-Datei kann nützlich sein, wenn Sie mit mehr Daten arbeiten als in einem Batch aus der Datenbank übertragen werden können oder als in den Arbeitsspeicher passen. Wenn Sie beispielsweise regelmäßig große Mengen von Daten aus einer Datenbank zu einer lokalen Arbeitsstation verschieben, anstatt die Datenbank wiederholt für jeden R-Vorgang abzufragen, können Sie die XDF-Datei als Cache verwenden, um die Daten lokal zu speichern und anschließend mit ihnen im R-Arbeitsbereich zu arbeiten.

Tipp

Wenn Sie mit dem Konzept von Datenquellen oder Computekontexten noch nicht vertraut sind, empfiehlt es sich, zunächst den Artikel über verteiltes Computing zu lesen.

Ausführen von DDL-Anweisungen

Sie können DDL-Anweisungen von R ausführen, wenn Sie über die erforderlichen Berechtigungen für die Instanz und die Datenbank verfügen. Die folgenden Funktionen verwenden ODBC-Aufrufe zum Ausführen von DDL-Anweisungen oder zum Abrufen des Datenbankschemas.

Funktion BESCHREIBUNG
rxSqlServerTableExists und rxSqlServerDropTable Löscht eine SQL Server-Tabelle oder überprüft, ob eine Datenbanktabelle oder ein -objekt vorhanden ist
rxExecuteSQLDDL Führt einen DDL-Befehl (Data Definition Language) aus, der Datenbankobjekte definiert oder bearbeitet. Diese Funktion kann keine Daten zurückgeben und wird nur zum Abrufen oder Ändern des Objektschemas oder der Metadaten verwendet.

2: Datenbearbeitung (ETL)

Nachdem Sie ein Datenquellenobjekt erstellt haben, können Sie das Objekt verwenden, um Daten in das Objekt zu laden, Daten zu transformieren oder neue Daten in das angegebene Ziel zu schreiben. Abhängig von der Größe der Daten in der Quelle können Sie die Batchgröße auch als Teil der Datenquelle definieren und Daten in Blöcken verschieben.

Funktion BESCHREIBUNG
rxOpen-methods Überprüft, ob eine Datenquelle verfügbar ist, öffnet oder schließt eine Datenquelle, liest Daten aus einer Quelle, schreibt Daten in das Ziel, und schließt eine Datenquelle
rxImport Verschiebt Daten aus einer Datenquelle in den Dateispeicher oder in einen Datenrahmen
rxDataStep Transformiert Daten, während sie zwischen Datenquellen verschoben werden

3: Diagrammerstellungsfunktionen

Funktionsname BESCHREIBUNG
rxHistogram Erstellt ein Histogramm aus Daten
rxLinePlot Erstellt ein Liniendiagramm aus Daten
rxLorenz Berechnet eine Lorenz-Kurve, die dargestellt werden kann
rxRocCurve Berechnet und zeichnet ROC-Kurven aus Ist- und vorhergesagten Daten

4: Beschreibende Statistik

Funktionsname BESCHREIBUNG
rxQuantile* Berechnet die ungefähren Quantilen für XDF-Dateien oder Datenrahmen ohne Sortierung
rxSummary* Generiert eine grundlegende, zusammenfassende Statistik für Daten, einschließlich der Berechnungen nach Gruppe. Das Schreiben von Gruppenberechnungen in eine XDF-Datei wird nicht unterstützt.
rxCrossTabs* Erstellt formelbasierte Kreuztabellen von Daten
rxCube* Erstellt alternative formelbasierte Kreuztabellen, die für eine effiziente Darstellung der zurückgegebenen Cubeergebnisse konzipiert wurden. Das Schreiben der Ausgabe in eine XDF-Datei wird nicht unterstützt.
rxMarginals Erstellt marginale Zusammenfassungen von Kreuztabellen
as.xtabs Konvertiert Kreuztabellenergebnisse in ein xtabs-Objekt
rxChiSquaredTest Führt einen Chi-Quadrat-Test für ein xtabs-Objekt durch. Wird für kleine Datasets verwendet, und es werden keine Daten segmentiert.
rxFisherTest Führt einen exakten Test nach Fisher für ein xtab-Objekt durch. Wird für kleine Datasets verwendet, und es werden keine Daten segmentiert.
rxKendallCor Berechnet den Kendalls Tau-Rangkorrelationskoeffizienten mithilfe eines xtabs-Objekts
rxPairwiseCrossTab Wendet eine Funktion auf paarweise Kombinationen von Zeilen und Spalten eines xtab-Objekts an
rxRiskRatio Berechnet das relative Risiko für ein paarweises xtab-Objekt
rxOddsRatio Berechnet das Wahrscheinlichkeitsverhältnis für ein paarweises xtab-Objekt

* Gibt die am häufigsten verwendeten Funktionen in dieser Kategorie an

5: Partitionsfunktionen

Funktionsname BESCHREIBUNG
rxLinMod* Passt ein lineares Modell auf Daten an
rxLogit* Passt ein logistisches Regressionsmodell auf Daten an
rxGlm* Passt ein verallgemeinertes lineares Modell auf Daten an
rxCovCor* Berechnet die Kovarianz, Korrelation oder die Matrix der Summe der Quadrate (Kreuzprodukt) für unterschiedliche Variablen
rxDTree* Passt einen Klassifizierungs- oder Regressionsbaum auf Daten an
rxBTrees* Passt einen Klassifizierungs- oder Regressionsentscheidungswald mithilfe eines stochastischen Gradient Boosting-Algorithmus auf Daten an
rxDForest* Passt einen Klassifizierungs- oder Regressionsentscheidungsbaum auf Daten an
rxPredict* Berechnet Vorhersagen für angepasste Modelle. Die Ausgabe muss eine XDF-Datenquelle sein.
rxKmeans* Führt ein K-Means-Clustering durch
rxNaiveBayes* Führt eine Naive Bayes-Klassifizierung aus
rxCov Berechnet die Kovarianzmatrix für unterschiedliche Variablen
rxCor Berechnet die Korrelationsmatrix für unterschiedliche Variablen
rxSSCP Berechnet die Matrix der Summe der Quadrate (Kreuzprodukt) für unterschiedliche Variablen
rxRoc Berechnet eine Beobachterkennlinie (Receiver Operating Characteristic, ROC) mithilfe der Ist- und vorhergesagten Werte aus einem binären Klassifizierungssystem

* Gibt die am häufigsten verwendeten Funktionen in dieser Kategorie an

Arbeiten mit RevoScaleR

Funktionen in RevoScaleR können in R-Code aufgerufen werden, der in gespeicherten Prozeduren gekapselt ist. Die meisten Entwickler erstellen RevoScaleR-Lösungen lokal, und migrieren den fertigen R-Code anschließend als Bereitstellungsübung in gespeicherte Prozeduren.

Für eine lokale Ausführung führen Sie in der Regel ein R-Skript über die Befehlszeile oder eine R-Entwicklungsumgebung aus, und geben einen SQL Server-Computekontext an, indem Sie eine der RevoScaleR-Funktionen verwenden. Sie können den Remotecomputekontext für den gesamten Code oder für einzelne Funktionen verwenden. Sie können beispielsweise das Modelltraining auf den Server auslagern, um die neuesten Daten zu verwenden und Datenverschiebung zu vermeiden.

Wenn Sie bereit sind, ein R-Skript in einer gespeicherten Prozedur, sp_execute_external_script, zu kapseln, empfiehlt es sich, den Code als eine einzelne Funktion mit klar definierte Eingaben und Ausgaben neu zu schreiben.

Weitere Informationen