Notizbücher für Big-Data-Projekte

1. Oktober 2015Dr. Thomas Franz

Big Data ist interdisziplinär – und das in einem hohen Maße. Die Interpretation und Bewertung der Ergebnisse von Big-Data-Analysen erfordern sowohl tiefes fachliches als auch umfangreiches analytisches Know-how. Während Data-Science-Experten mit Analyseverfahren wie z.B. Clustering und Klassifikation Phänomene, Beziehungen und Gruppierungen aufdecken können, muss der Fachexperte die Bedeutung dieser Cluster und Klassifizierungen verstehen. So können gemeinsam nicht nur interessante, sondern geschäftsrelevante Dienste für das Unternehmen entwickelt werden, beispielsweise die Reduzierung von Rücksendungen im Online-Handel, die Optimierung von Routen in der Logistik oder einfach nur die Bereitstellung zusätzlicher einfacher Hilfsdienste in bestehenden Enterprise-Anwendungen.

Big-Data-Notizbücher bieten eine einfache technische Lösung für die Unterstützung der Zusammenarbeit unterschiedlichster Stakeholder in Projekten – von Fachexperten, über Endanwender und Manager bis zum Big-Data-Experten. Sie ermöglichen die Publikation und Präsentation von Big-Data-Ergebnissen und können dabei helfen, Transparenz zu schaffen sowie Auswertungen einfach zugänglich zu machen.

Big Data Stakeholder und Projektteilnehmer zusammenbringen

Big Data NotebookDer Data Scientist formuliert Datenanalysen mittels spezieller Statistik-Software-Umgebungen wie „R“ oder programmiert sie mittels NumPy und SciPy in der Programmiersprache Python. Vielleicht nutzt er auch andere Werkzeuge, um die eingesetzten Analyseverfahren effizient umzusetzen. Unabhängig davon, welches Werkzeug und welchen Formalismus er wählt, es ist für den fachlichen Experten nicht nur schwierig zu verstehen, was dort passiert, es ist vielmehr größtenteils nicht relevant für seine Zwecke. Er besitzt das domänenspezifische Wissen darüber, wie die analysierten Prozesse und die dort entstandenen Daten zusammenhängen und welche Bedeutung sie haben. Dinge, die wiederum der Data-Science-Experte nicht wie der Fachexperte in dem Detail durchblicken kann.

Neue Wertschöpfung entsteht allerdings oft nur dort, wo das Wissen beider Experten kombiniert eingesetzt wird, z.B. wenn die Analyse der Daten durch Fachwissen auf gewisse Datenbereiche oder Phänomene, die in den Daten repräsentiert sind, gelenkt wird. Ziel ist es, den Fachexperten die Erzeugnisse des Data-Science-Experten zugänglich zu machen, beide dabei maximal unabhängig voneinander agieren zu lassen und trotzdem maximale Transparenz zu schaffen. Die IT-Hilfsmittel und -Werkzeuge der beteiligten Personen sind jedoch oftmals so verschieden, wie deren Expertisen. Notizbücher stellen hier ein interessantes Lösungselement bereit, bei dem sich beide Personengruppen treffen können.

Die an Big-Data-Ergebnissen beteiligten Personengruppen sind nicht auf die zuvor genannten zwei Gruppen beschränkt, sondern umfassen weitere Stakeholder-Gruppen– vom Management bis zum Endanwender.

Lösungsansatz Notizbücher

Das Konzept des Notizbuchs (Notebook) bietet im Big-Data-Umfeld Möglichkeiten, die genannten Anforderungen für eine gelungene Zusammenarbeit technisch zu unterstützen. Wie in Abbildung 1 dargestellt, ist ein Notizbuch eine Webseite, die aus mehreren editierbaren Blöcken (Sektionen) besteht, in denen sowohl der Data Scientist als auch der Fachexperte arbeiten können.

Big Data Notebook 2Die Abbildung links zeigt das gerade auf dem Weg in das Apache-Projekt befindliche Notizbuch Zeppelin, welches für die verteilte In-Memory Datenverarbeitungs-Infrastruktur Spark verfügbar ist.

Sektionen

Ein Notebook besteht aus beliebig vielen Sektionen mit gänzlich unterschiedlichen Inhalten und Zielsetzungen. Beispielsweise kann eine Sektion den Interpreter sh nutzen, um mittels Kommandozeilenprogrammierung Dateien zu verschieben, zu laden, zu transformieren oder einfach nur andere Programme aufzurufen. Eine andere Sektion kann einen rein informativen, dokumentierenden Charakter haben. Dazu kann beispielsweise in Markdown, der weit verbreiteten und einfachen Auszeichnungssprache, mit Überschriften, Textblöcken, Links und Bildern, erläutert werden, was in den einzelnen Sektionen des Notizbuchs geschieht und welchen Zweck das jeweilige Notizbuch hat. Eine andere Sektion kann den Interpreter spark nutzen, um mit Python-Code auf der verteilten Spark-In-Memory-Infrastruktur die vielleicht in einer anderen Sektion vorbereiteten Daten zu analysieren. Auch interaktive Anfragesprachen wie SQL können in Sektionen genutzt werden und standardmäßig können die Ergebnisse solcher Anfragen sofort per Mausklick in unterschiedlichen interaktiven Visualisierungen betrachtet werden. Für nicht-technische Nutzer des Notebooks können einfach Formulare erstellt werden, mit denen zum Beispiel SQL-Anfragen parametrisiert ausgeführt werden.

Zeppelin

Zeppelin unterstützt aktuell die folgenden Sprachen, die durch dedizierte Interpreter eingebunden und dem Notizbuch beigebracht werden können: flink, hive, ignite, lens, md, sh, spark, tajo, postgresql, hawq und Geode.

Weitere Interpreter können hinzugefügt werden, da Zeppelin ein Apache-OpenSource-Projekt ist und die Architektur die Unterstützung durch unterschiedliche Interpreter vorsieht. Ebenfalls besitzt Zeppelin Schnittstellen, über die das Notebook mit anderen Anwendungen integriert werden kann.

Ausführung

Eine Notizbuch-Sektion kann also sehr unterschiedliche Zweckmäßigkeiten haben und erfüllt so einen Teil der Anforderungen, die die heterogene Nutzergruppe eines Notizbuches hat. Da viele Sektionen typischerweise Programme, also Programm-Code enthalten, der interpretiert und ausgeführt werden kann, hat jede Sektion einen kleinen Play-Button, mit dem eine erneute Sektion möglich ist. So kann beispielsweise auch mit dem Notebook in gewissen Grenzen entwickelt und getestet werden. Ein Notebook kann auch als ganzes ausgeführt werden, dazu hat jedes Notebook ebenfalls einen Play-Knopf, der die sukzessive Ausführung jeder Sektion des Notebooks anstößt.

Publikation

Big Data Notebook 3Eine weitere, für die Verbreitung von Ergebnissen sehr hilfreiche Funktion, ist die Möglichkeit, Ergebnisse im Web, z.B. im Intranet des Unternehmens einzubetten.

 

Die linke Abbildung (Bildquelle https://zeppelin.incubator.apache.org) illustriert diese Form der Publikation von Ergebnissen.

Fazit

Das umfangreiche und weit verbreitete Apache-Big-Data-Ökosystem, welches die Basis für viele kommerzielle Big-Data-Lösungen ist, erhält mit Zeppelin eine einfache, erweiterbare Komponente. Gerade für die in Big-Data-Projekten so wichtige Fragestellung der Zusammenarbeit unterschiedlicher Stakeholder kann Zeppelin ein wichtiges Werkzeug sein. Die Idee des Notizbuches als zentrale Anlaufstelle für die Fortschritte eines Big-Data-Projekts bietet einen leichtgewichtigen und pragmatischen Ansatz für die Zusammenarbeit von Technologie-Experten bis zum Endanwender – und das auf einer hochinnovativen In-Memory-Big-Data-Infrastruktur.

Gerade für erste Gehversuche und Proof-of-Concept-Projekte kann so schnell der Sinn und Zweck von Big Data einer großen Personengruppe zugänglich gemacht, demonstriert und die Validierung von Big-Data-Projekten unterstützt werden.

Arbeiten Sie bereits mit Big-Data-Notizbücher? Welche Erfahrungen haben Sie gesammelt?

Dr. Thomas Franz Dr. Thomas Franz ist Technologieexperte bei adesso. Er interessiert sich für die Themen Big Data, Lean Startup und DevOps sowie deren Zusammenwirken mit technologischen Trends wie NoSQL-Datenbanken, Cloud-Infrastrukturen und modernen Web-Architekturen.
Artikel bewerten:
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...

Kommentare

Dr. Olaf Görlitz 17. Oktober 2015

Notebooks sind eine feine Sache. Wie im Artikel beschrieben, erlauben sie es dem Data Scientist mit seinem Lieblingswerkzeug (meistens R, aber zunehmend auch Python) recht einfach die Daten aus einem großen Data Store zu laden, zu explorieren und zu analysieren. Gleichzeitig kann sich aber auch der Fachexperte schnell einen Überblick über die analytischen Ergebnisse verschaffen, wenn entsprechende Visualisierungen direkt in das Notebook eingebettet werden.

Mit Apache Zeppelin habe ich bisher noch keine praktischen Erfahrungen sammeln können. Aber Jupyter scheint hier schon ein Stück weiter zu sein: es lassen sich Notebooks für pySpark, SparkR und Spark+Scala erstellen. Für die Visualisierungen können die Libraries ggplot2 (R) und matplotlib (Python) direkt verwendet werden. An dieser Stelle haben pySpark und SparkR einen deutlichen Vorteil gegenüber Spark+Scala, da es für letzteres noch keine vergleichbar mächtigen Visualisierungsbibliotheken gibt.

Ob sich Notebooks wirklich bei Data Scientists für die explorative Analyse von Big Data etablieren können, muss sich meiner Meinung nach noch zeigen. An den Funktionsumfang eines RStudio mit integrierter automatischer Code-Completion, Hilfe-Funktion, etc. kommen sie (noch) nicht heran. Aber ich bin mir sicher, dass sich hier in nächster Zeit noch einiges tun wird. Darüber hinaus sollte man auch das Spark-Notebook von Andy Petrella im Auge behalten.

Thomas Franz 19. Oktober 2015

Danke für den interessanten und relevanten Kommentar. Ich denke auch, dass Entwicklungs- bzw. Programmierarbeit am besten durch die dedizierten Entwicklungsumgebungen unterstützt wird. Das Notebook hat aus meiner Sicht Potenzial als Integrationslösung, also um die Ergebnisse der Programmierung zugänglich zu machen und die typischerweise ebenfalls notwendigen Aufgaben um die eigentliche Datenanalyse herum transparent festzuhalten.

Kommentar hinzufügen:

Ihr Kommentar: