Erstellen von SSIS- und SSRS-Workflows mit R auf SQL Server

  • 08/28/2020
  • 5 minuten zum Lesen
    • d
    • M
    • ein
    • D
    • c
    • +2

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

In diesem Artikel wird erläutert, wie Sie eingebettetes R- und Python-Skript mithilfe der Sprach- und Datenwissenschaftsfunktionen von SQL Server Machine Learning Services mit zwei wichtigen SQL Server-Funktionen verwenden: SQL Server Integration Services (SSIS) und SQL Server Reporting Services SSRS. R- und Python-Bibliotheken in SQL Server bieten statistische und prädiktive Funktionen. SSIS und SSRS bieten koordinierte ETL-Transformation bzw. In diesem Artikel wird erläutert, wie Sie alle diese Funktionen in diesem Workflowmuster zusammenfassen:

  • Erstellen Sie eine gespeicherte Prozedur, die ausführbare R- oder Python-Dateien enthält
  • Führen Sie die gespeicherte Prozedur von SSIS oder SSRS aus aus

Die Beispiele in diesem Artikel beziehen sich hauptsächlich auf R und SSIS, aber die Konzepte und Schritte gelten gleichermaßen für Python. Der zweite Abschnitt enthält Anleitungen und Links für SSRS-Visualisierungen.

Verwenden von SSIS für die Automatisierung

Data Science-Workflows sind stark iterativ und beinhalten eine große Transformation von Daten, einschließlich Skalierung, Aggregationen, Berechnung von Wahrscheinlichkeiten sowie Umbenennen und Zusammenführen von Attributen. Datenwissenschaftler sind es gewohnt, viele dieser Aufgaben in R, Python oder einer anderen Sprache auszuführen. Die Ausführung solcher Workflows für Unternehmensdaten erfordert jedoch eine nahtlose Integration mit ETL-Tools und -Prozessen.

Da Sie mit R Services (In-Database) komplexe Vorgänge in R über Transact-SQL und gespeicherte Prozeduren ausführen können, können Sie Data Science-Aufgaben in vorhandene ETL-Prozesse integrieren. Anstatt eine Kette speicherintensiver Aufgaben auszuführen, kann die Datenaufbereitung mit den effizientesten Tools optimiert werden, einschließlich Integration Services und Transact-SQL.

Hier sind einige Ideen, wie Sie Ihre Datenverarbeitungs- und Modellierungspipelines mithilfe von Integration Services automatisieren können:

  • Extrahieren von Daten aus lokalen oder Cloud-Quellen zum Erstellen von Trainingsdaten
  • Erstellen und Ausführen von R- oder Python-Modellen als Teil eines Datenintegrationsworkflows
  • Modelle regelmäßig (geplant) neu trainieren
  • Laden von Ergebnissen aus R- oder Python-Skripten in andere Ziele wie Excel, Power BI, Oracle und Teradata, um nur einige zu nennen
  • Verwenden Sie SSIS-Tasks zum Erstellen von Datenfeatures in der SQL-Datenbank
  • Verwenden Sie bedingte Verzweigungen, um den Berechnungskontext für R- und Python-Jobs zu wechseln

SSIS-Beispiel

Dieses Beispiel zeigt Ihnen, wie Sie automatisieren Sie Aufgaben mit SSIS. Sie erstellen gespeicherte Prozeduren mit Embedded R mithilfe von SQL Server Management Studio und führen diese gespeicherten Prozeduren dann aus Ausführen von T-SQL-Aufgaben in einem SSIS-Paket aus.

Um dieses Beispiel zu durchlaufen, sollten Sie mit Management Studio, SSIS, SSIS Designer, Paketdesign und T-SQL vertraut sein. Das SSIS-Paket verwendet drei Execute T-SQL-Tasks, die Trainingsdaten in eine Tabelle einfügen, die Daten modellieren und die Daten bewerten, um eine Vorhersageausgabe zu erhalten.

Trainingsdaten laden

Führen Sie das folgende Skript in SQL Server Management Studio aus, um eine Tabelle zum Speichern der Daten zu erstellen. Sie sollten eine Testdatenbank für diese Übung erstellen und verwenden.

Erstellen Sie eine gespeicherte Prozedur, die Trainingsdaten in den Datenrahmen lädt. In diesem Beispiel wird der integrierte Iris-Datensatz verwendet.

Erstellen Sie in SSIS Designer eine SQL-Task ausführen, die die soeben definierte gespeicherte Prozedur ausführt. Das Skript für SQLStatement entfernt vorhandene Daten, gibt an, welche Daten eingefügt werden sollen, und ruft dann die gespeicherte Prozedur auf, um die Daten bereitzustellen.

Generieren eines Modells

Führen Sie das folgende Skript in SQL Server Management Studio aus, um eine Tabelle zu erstellen, in der ein Modell gespeichert ist.

Erstellen Sie eine gespeicherte Prozedur, die mit rxLinMod ein lineares Modell generiert. RevoScaleR- und revoscalepy-Bibliotheken sind automatisch in R- und Python-Sitzungen auf SQL Server verfügbar, sodass die Bibliothek nicht importiert werden muss.

Erstellen Sie in SSIS Designer eine SQL-Task ausführen, um die gespeicherte Prozedur generate_iris_rx_model auszuführen. Das Modell wird serialisiert und in der Tabelle ssis_iris_models gespeichert. Das Skript für SQLStatement lautet wie folgt:

Als Checkpoint können Sie nach Abschluss dieser Aufgabe die ssis_iris_models abfragen, um festzustellen, ob sie ein binäres Modell enthält.

Ergebnisse mit dem „trainierten“ Modell vorhersagen

Nachdem Sie nun über Code verfügen, der Trainingsdaten lädt und ein Modell generiert, müssen Sie nur noch das Modell zum Generieren von Vorhersagen verwenden.

Fügen Sie dazu das R-Skript in die SQL-Abfrage ein, um die integrierte R-Funktion rxPredict für ssis_iris_model auszulösen. Eine gespeicherte Prozedur namens predict_species_length führt diese Aufgabe aus.

Erstellen Sie in SSIS Designer eine SQL-Task ausführen, die die gespeicherte Prozedur predict_species_length ausführt, um die vorhergesagte Blütenblattlänge zu generieren.

exec predict_species_length 'rxLinMod';

Führen Sie die Lösung aus

Drücken Sie in SSIS Designer F5, um das Paket auszuführen. Sie sollten ein ähnliches Ergebnis wie im folgenden Screenshot sehen.

Verwenden von SSRS für Visualisierungen

Obwohl R Diagramme und interessante Visualisierungen erstellen kann, ist es nicht gut in externe Datenquellen integriert, was bedeutet, dass jedes Diagramm oder Diagramm einzeln erstellt werden muss. Teilen kann auch schwierig sein.

Mithilfe von R Services (In-Database) können Sie komplexe Vorgänge in R über gespeicherte Transact-SQL-Prozeduren ausführen, die problemlos von einer Vielzahl von Berichtstools für Unternehmen, einschließlich Reporting Services und Power BI, verwendet werden können.

Die SSIS- und SSRS-Beispiele in diesem Artikel veranschaulichen zwei Fälle der Ausführung gespeicherter Prozeduren, die eingebettetes R- oder Python-Skript enthalten. Ein Schlüssel zum Mitnehmen ist, dass Sie R- oder Python-Skript für jede Anwendung oder jedes Tool verfügbar machen können, das eine Ausführungsanforderung für eine gespeicherte Prozedur senden kann. Ein weiterer Vorteil von SSIS besteht darin, dass Sie Pakete erstellen können, die eine Vielzahl von Vorgängen automatisieren und planen, z. B. Datenerfassung, Bereinigung, Manipulation usw., wobei R- oder Python-Data-Science-Funktionen in der Vorgangskette enthalten sind. Weitere Informationen und Ideen finden Sie unter Operationalisieren von R-Code mithilfe gespeicherter Prozeduren in SQL Server Machine Learning Services.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.