R-Integration in Power BI

19. Oktober 2016

Microsoft öffnet sich dieser Tage immer weiter Open-Source-Lösungen. Dieser Trend hin zur Integration von Open-Source-Software kann auch vermehrt im Cloudgeschäft beobachtet werden. Dort wird beispielsweise die Verwendung von Hadoop, Big Data-Lösung der Apache Foundation, angeboten. Im Zuge der Veröffentlichung von MS SQL SERVER 2016 wurde publik, dass dieser eine R-Integration enthält. Inzwischen integriert Microsoft R in Form der R Tools in Visual Studio und in Power BI. Was ist R und worin liegt der Mehrwert dieser Sprache?

R – Allgemein

R ist die am weitesten verbreitete statistische Programmiersprache, zählt rund 2 Millionen Anwender und ist Open-Source. Unter allen Programmiersprachen belegt R den sechsten Platz, im Vergleich der Jahre 2014 und 2015 hat R drei Plätze gewonnen.

Ranking

Abbildung 1: IEEE Top Programming Languages, 2015

Mit R können Daten analytisch aufbereitet und visualisiert werden. In der R-Bibliothek stehen über 7000 Pakete für Entwickler bereit. Daraus resultiert eine Vielzahl von Möglichkeiten, Analysen individualisiert aufzubauen. Zu den häufigsten R-Anwendern zählen Data Scientists, Statistiker und Analysten.

Power BI – Allgemein

Power BI ist ein Teil der Office 365-Suite. Das BI-Tool dient der Analyse und Visualisierung von Daten. Die Lösung ist nicht nur an IT-Anwender, sondern auch an Fachanwender gerichtet und steht somit im Kontext von Self-Service BI. Power BI konsolidiert Funktionen aus mehreren bestehenden BI Anwendungen, dabei vereint es bekannte Features aus Power Pivot, Power Query, Power Map und Power View in einer Anwendung.

Power BI – Entwicklung

Mit der Desktop Anwendung von Power BI lassen sich bequem Diagramme, Reports und Dashboards erzeugen. Im Gegensatz zu vorherigen Excel-Versionen, z.B. Excel 2010, sind die Funktionalitäten aus den oben genannten Add-Ins und Anwendungen bereits in der Desktop-Variante von Power BI integriert. Auf die Installation von Erweiterungen kann komplett verzichtet werden. Die komplette Funktionalität steht dem User nach der Installation Out-of-the-Box in vollem Umfang zur Verfügung. Aus der Anwendung heraus lassen sich die Ergebnisse in der Cloud bereitstellen, dadurch lassen sich Inhalte von überall mittels Browser oder Smartphones konsumieren. Für Power BI gibt es eine Android-, iPhone- und eine Windows 10 Mobile App. Power BI liefert eine Schnittstelle für den Report Server 2016 (SSRS) mit. Dadurch lassen sich Power BI-Inhalte einfach mit Reports vom Report Server konsolidieren und in einem Dashboard darstellen.

Power BI – Custom Visuals

Grafisch werden Daten in Power BI mittels Visuals ausgeprägt. Out-of-the-Box wird eine recht breite Palette an verschiedenen Visuals mitgeliefert. Relativ neu in Power BI sind die Custom Visuals. Dabei handelt es sich um Visuals, die von Mitgliedern der Power BI Community entwickelt sind. Dadurch, dass jeder Power BI Nutzer Visualisierungen erstellen und der Community zur Verfügung stellen kann, wächst die Anzahl neuer Visuals relativ schnell.

Im Allgemeinen wird die Funktionalität der Power BI Anwendung ständig erweitert, die Entwickler stellen monatlich neue Updates zum Download bereit. Wesentlicher Bestandteil dieser Updates sind zum Beispiel neue Gateways (Konnektoren). Mittels Gateways lassen sich bequem Daten aus Fremdsystemen importieren.

DataSourcesPowerBI

Abbildung 2: Data Sources Power BI, 2016

Durch die Integration einiger Konnektoren, unter anderem R oder Spark, wird das Analysepotential von Power BI erheblich gesteigert. Speziell mit der R-Integration wird dem Anwender ein mächtiges Werkzeug an die Hand gegeben, wenn es darum geht, Daten zu analysieren und neues Wissen zu generieren.

Entwicklung der R-Integration

Die R-Integration wurde erstmalig mit dem November 2015 Update ausgeliefert – damals noch im Beta Status. In Power BI stößt man an zwei Stellen auf die R-Integration. Dem Power BI Anwender wird einerseits angeboten Daten via R-Script zu importieren, andererseits besteht die Möglichkeit, die in Power BI befindlichen Daten, mittels R-Visualization und entsprechendem R-Script, als Grafik abzubilden.

Datenzugriff via ODBC-Schnittstelle

Bei der Migration von Daten kann aufgrund der Mächtigkeit und der Vielzahl der Pakete von R, auf einige Datenquellen zurückgegriffen werden. Sämtliche Textfiles und praktisch jede Datenbank lässt sich via ODBC (Open DataBase Connectivity) ansprechen. Die aufgerufenen Daten werden von R in sogenannte “data frames” gespeichert. Unter “data frames” versteht man eine Liste von Vektoren. Die Bearbeitung der Daten erfolgt durch Ansprache und Manipulation der “data frames”. Die Nutzung und Ausführung eines R-Skriptes setzt eine Installation von R, sowie die Installation der gewünschten Packages, voraus. Die R Installation muss von Power BI referenziert werden (siehe Anleitung). Um eine ODBC-Verbindung zu ermöglichen, muss im R-Studio die Bibliothek “RODBC” geladen werden.

R-Package Installation

Die Notation zur Installation von R-Packages sieht wie folgt aus: install.packages(<package name>). Das “RODBC” Package wird entsprechend installiert: install.packages(“RODBC”). Die Dokumentation, die im Paket mitgeliefert wird, kann eine große Hilfe sein. Sie lässt sich nach der Installation mit dem Befehl RShowDoc(“RODBC”, package=”RODBC”) aufrufen. Sind diese Schritte erfolgreich abgearbeitet, lassen sich “R-Skripte” mit dem Konnektor “R-Script” direkt aus Power BI heraus ausführen.

Die geladenen Daten können nun in Power BI weiterverarbeitet werden, dabei stehen die bekannten Features (wie z.B. Filterung) zur Verfügung.

R-Visual

Power BI verfügt noch über eine weitere Integration von R, in Form eines Visuals. Das R-Visual lässt sich wie ein gewöhnliches Visual über den Katalog auswählen. Wie man das von anderen Visuals gewohnt ist, müssen auch für die R-Visuals Spalten aus bereits importierten Tabellen gewählt werden. Ein R-Script, das automatisch gestartet wird, schreibt die gewählten Daten in einen “data frame”. Dieser “data frame” kann via R-Script manipuliert und nach Belieben visualisiert werden. Die Grafiken, die R anbietet, reichen vom Boxplot, über Streudiagramme bis hin zu Plotted Maps. Mit Plotted Maps kann man unter anderem Länder und deren Bevölkerungsdichte grafisch abbilden. Inzwischen gibt es einen Preview Service, der es möglich macht, die R-Visuals im Web und in den Apps darzustellen.

Fallbeispiel – ShowTime BI

Im Folgenden wird die R-Komponente an einem Beispiel vorgestellt. Das Beispiel orientiert sich an Zeiterfassungseinträgen, die in einer MS SQL-Datenbank gespeichert sind.

R-Gateway

Zum Import der Daten kommt, wie oben beschrieben, die Library “RODBC” und ein R-Script zum Einsatz. Das Eingabefeld für das R-Script ist analog zu allen anderen Konnektoren (Abbildung 1) angeordnet. Für den Datenimport wird folgendes Script ausgeführt:

RGateway

Abbildung 3: R Power BI´, Data Source – R-Script, 2016

Dieses R-Script ist recht trivial und enthält faktisch nur ein SQL-Statement und könnte auch durch den SQL Server Connector ersetzt werden. Durch Ausführen des Skriptes werden Zeiteinträge von zwei Mitarbeitern geladen. Der Connection-String wird an ein Objekt der Library RODBC übergeben. Die Connection zur Datenbank sowie das Ausführen des SQL-Statements werden von der Funktion “sqlQuery” gesteuert. Die Funktion erwartet neben dem SQL-Statement auch ein Objekt der Klasse RODBC.

Die Komplexität des R-Scripts, ist im Beispiel recht überschaubar und kann natürlich deutlich gesteigert werden, unter anderem auch mit der “Predict”-Funktion. Mit dieser Funktion lassen sich auf Basis vorhandener Daten Regressionen erzeugen. Diese können speziell für Planungen ein gutes Werkzeug sein.

R-Visual – ggplot2

Die Daten, die über die ODBC-Verbindung geladen wurden, können nun mit Hilfe des R-Visuals grafisch dargestellt werden. Nach Auswahl des R-Visuals und der gewünschten Spalten, jeweils per Drag’n’Drop, kann man auf Basis der automatisch erzeugten “data frames”, Grafiken mit R-Scripten generieren und über die Kommandozeile ausführen.  Die Kommandozeile wird durch Selektion des R-Visuals sichtbar. Für das verwendete Skript ist das Package ggplot2 zu installieren. Dies erfolgt, analog zur Installation von “RODBC”, durch den Befehl, install.packages(“ggplot2”).

R-ScriptBoxplot

Abbildung 4: R-Visual, Kommandozeile; ggplot2, 2016

Führt man dieses Skript aus (Run, im Bild oben rechts) erhält man folgende Grafik:

RBoxplot

Abbildung 5: R-Visual, ggplot2, 2016

Farben und Beschriftungen lassen sich im R-Script nach Belieben anpassen.

In einem weiteren Beispiel werden die Zeiteinträge aller Mitarbeiter in einem Streudiagramm dargestellt. Ermöglicht wird dies durch ggplot und die Funktion geom_point(). Anders als in Beispiel 1 wird an dieser Stelle nicht auf bereits importierte Daten zugegriffen. Die Abfrage der Daten wird aus der R-Visual Kommandozeile heraus ausgeführt.

StreudiagrammSkript

Abbildung 6: R-Visual, Kommandozeile; Streudiagramm, 2016

Durch Ausführen des Skripts erhält man folgende Grafik:

RStreudiagramm2

Abbildung 7: R-Visual, angepasstes Streudiagramm, 2016

Auch für diese Darstellungen lassen sich Beschriftung und Farben je nach Wunsch über das R-Script anpassen.

Fazit

Power BI bietet grundsätzlich eine große Vielfalt, wenn es darum geht, Daten grafisch abzubilden. Durch die Erweiterung um die R-Visuals sind die Möglichkeiten Daten grafisch darzustellen vielfältig. R verfügt durch die Vielzahl von verschiedenen Paketen über sehr viele unterschiedliche Darstellungsmöglichkeiten. Alle Plots können mittels R-Script sehr individuell an die eigenen Vorstellungen angepasst werden. Schaut man sich die Entwicklung der Anzahl von R-Anwendern und die Bedeutung von Datenanalyse im Allgemeinen an, macht es durchaus Sinn, dass Microsoft R in seinen Produkten integriert. Ein weiterer Punkt, der für die R-Integration spricht, sind Predictive Analytics. Der Anwender hat die Möglichkeit, aus bestehenden Daten neue Informationen abzuleiten und Wissen zu generieren. Für Data Scientists verbessert sich durch die R-Integration, die Weitergabe und Speicherung von Analysen. Via Cloud, welche Power BI unterstützt, können Analysen geteilt und jederzeit überarbeitet werden.