RevoScaleR (R-Paket in SQL Server Machine Learning Services)
Gilt für: SQL Server 2016 (13.x) und höhere 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.