All about Big Data Storage and Analytics

Kontrolle und Steuerung von Spark Applikationen über REST

Apache Spark erfreut sich zunehmender Beliebtheit in der Data Science Szene da es in Geschwindigkeit und Funktionalität eine immense Verbesserung bzw. Erweiterung des reinen Hadoop MapReduce Programmiermodells ist. Jedoch bleibt Spark ebenso wie Hadoop eine Technologie für Experten. Es erfordert zumindest Kenntnisse von Unix-Skripten und muss über die Command-Line gesteuert werden. Die vorhandenen Weboberflächen bieten nur sehr rudimentäre Einblicke in den Status von Spark Applikationen:

spark basic ui

Der Spark JobServer ist ein Open-Source Projekt, das eine REST-Schnittstelle (Representational State Transfer) für Spark anbietet. (In diesem YouTube Video wird anschaulich erläutert, was ein REST API ist und wozu es verwendet werden kann.) Vereinfacht gesagt, ermöglicht es der JobServer, Spark über diese REST-Schnittstelle als Webservice zu nutzen. Es ist möglich, über den JobServer Spark Kontexte und Applikationen (Jobs) zu managen und Kontexte über verschiedene Aufrufe der REST-Schnittstelle hinweg wiederzuverwenden. Jar Files mit Job Implementierungen können vorab über die gleiche Schnittstelle installiert werden, so dass es z.B. möglich ist, auch sehr feingranulare Jobs über die Schnittstelle zu steuern (vollständige Liste der Features).

Der Spark JobServer ist bereits bei verschiedenen Organisationen (u.a. Netflix, Zed Worldwide, KNIME, Azavea und Maana) im Einsatz. Diese Nutzer des JobServers verwenden ihn meist versteckt „unter der Haube“, um so ihre jeweiligen Werkzeuge Big-Data tauglich zu machen. So nutzt KNIME ab dem nächsten Release (Oktober 2015) den JobServer. Anwendern können dann Spark Jobs über eine grafische Oberfläche bequem von ihrem lokalen Rechner aus starten, monitoren und stoppen. In der folgenden Abbildung sehen Sie, wie Trainingsdaten auf den Server hochgeladen werden, um daraus verschiedene Machine Learning Modelle zu erstellen. Diese Modelle können dann auf Testdaten angewandt werden, die z.B. aus einer HIVE-Tabelle nach Spark importiert werden:

spark knime hive jobs

Jeder der dargestellten Knoten mit der Überschrift „Spark ***“, wie z.B. „Spark Decision Tree“, ist ein Spark Job im Sinne des JobServers. Weitere Beispiele für Spark Jobs sind verschiedene Vorverarbeitungsaufgaben wie das Sampling einer Tabelle oder ein Join über mehrere Tabellen.

Spark kann über den JobServer im Standalone-, Mesos- oder im Yarn-Client-Modus angesteuert werden. Eine sehr hilfreiche Erweiterung der eigentlichen Spark-Funktionalität bietet der JobServer über die sogenannten „Named RDDs“ an. Ein Resilient Distributed Dataset (RDD) ist im Prinzip ein Datensatz bzw. eine Tabelle in Spark. „Named RDDs“ erlauben die Weiterverwendung von RDDs über einzelne Jobs hinweg. So kann man Jobs modularer aufbauen und leichter Zwischenergebnisse inspizieren.

Ich kann aus eigener Erfahrung sagen, dass der JobServer die geeignete Middleware zwischen einer benutzerfreundlichen Oberfläche und Spark ist. Die Open-Source Community ist hier sehr aktiv und der JobServer lässt sich bei Bedarf gut erweitern.

KNN: Vorteile und Nacheile

Wie jedes Verfahren haben auch künstliche Neuronale Netzwerke (KNN) ihre Vor- und Nachteile. Im Folgenden sollen einige benannt werden.

Vorteile

  • KNN können bessere Ergebnisse liefern als existierende statistische Ansätze, wenn das Problem ausreichend komplex ist. Das heißt, wenn das Problem nicht linear ist und es viele Eingabedaten mit vielen Variablen gibt.
  • Es gibt zwar sogenannte Hyperparameter, die je nach Einstellung das Netzwerk besser oder schlechter trainieren lassen, diese müssen aber nur manuell geändert werden, wenn neue Rekordwerte erreicht werden sollen. Ansonsten gibt es verhältnismäßig wenige Parameter.
  • Auch für stark nicht lineare Probleme, werden gute Lösungen gefunden. Dazu zählen fast alle Probleme die aus einer Datenbasis stammen, wo menschliche oder andere unvorhersehbare Einflüsse wirken.
  • Für große Datenmengen und viele Datendimensionen (Einflussfaktoren) können sinnvolle Ergebnisse ermittelt werden.

Nachteile

  • Künstliche Neuronale Netzwerke sind oftmals wie eine Blackbox. Dadurch ist es nicht möglich nachzuverfolgen wieso ein Netzwerk eine bestimmte Entscheidung getroffen hat.
  • Damit ein allgemeingültiges gutes Ergebnis berechnet werden kann, bedarf es vieler Beispiel-/Trainingsdaten.
  • Aufgrund der hohen Datenmenge, ist es sinnvoll die Berechnungen auf einer Grafikkarte durchzuführen.
  • Während des Trainings finden sehr viele Gewichtsänderungen in kurzer Zeit statt. Daher ist ein Aufteilen der Arbeit in ein verteiltes System wie Apache Hadoop oder Apache Spark nur schwer möglich und führt oftmals zu drastischen Performanz Einbußen.
  • Ist das Problem mathematisch beschreibbar sind KNNs oftmals schlechter oder maximal genauso gut.
  • Es ist zu keinen Zeitpunkt bekannt ob die gefundene Lösung das globale Optimum ist oder ob es noch bessere Lösungen gibt.

In der Forschung gibt es viele Ansätze um einige der Nachteile aufzuheben.

 

Komplexe Abläufe verständlich dargestellt mit Process Mining

Stellen Sie sich vor, dass Ihr Data Science Team dabei helfen soll, die Ursache für eine wachsende Anzahl von Beschwerden im Kundenservice-Prozess zu finden. Sie vertiefen sich in die Daten des Service-Portals und generieren eine Reihe von Charts und Statistiken zur Verteilung der Beschwerden auf die verschiedenen Fachbereiche und Produktgruppen. Aber um das Problem zu lösen, müssen die Schwachstellen im Prozess selbst offengelegt und mit dem Fachbereich kommuniziert werden.

Nach Einbeziehen der CRM-Daten sind Sie mit Process Mining schnell in der Lage etliche unerwünschte Schleifen und Verzögerungen im Prozess zu identifizieren. Und diese Abweichungen werden sogar vollautomatisch als graphische Prozesskarte abgebildet! Der Fachbereichsleiter sieht auf den ersten Blick, wo das Problem liegt, und kann umgehend Verbesserungsmassnahmen einleiten.

Genau hier sehen wir eine zunehmende Begeisterung für Process Mining über alle Branchen hinweg: Der Datenanalyst kann nicht nur schnell Antworten liefern sondern auch die Sprache des Prozessmanagers sprechen und die entdeckten Prozessprobleme eindrücklich visuell machen.

Data Scientists bewegen sich geschickt durch eine ganze Reihe von Technologien. Sie wissen, dass 80% der Arbeit in der Aufbereitung und dem Säubern der Daten besteht. Sie können mit SQL, NoSQL, ETL-Tools, Statistik, Skriptsprachen wie Python, Data-Mining-Werkzeugen und R umgehen. Aber für viele von ihnen ist Process Mining noch nicht Teil der Data-Science-Tool-Box. Read more

KNN: Was sind künstliche neuronale Netze?

Ein künstliches neuronales Netzwerk (KNN) besteht aus vielen miteinander verbundenen künstlichen Neuronen. Die einzelnen Neuronen haben unterschiedliche Aufgaben und sind innerhalb von Schichten (layer) angeordnet. Sogenannte Netzwerk Topologien geben vor, wie viele Neuronen sich auf einer Schicht befinden und welche Neuronen miteinander vernetzt sind. Neuronale Netze werden im Bereich der künstlichen Intelligenz eingesetzt und sind ein Ansatz im Machine Learning, haben hier jedoch besondere Vor- und Nachteile.

Es gibt drei Schicht- und vier grundlegende Neuronen-Arten. Bei den Schichten wird unterschieden zwischen Eingabe-, Ausgabe- und verborgener Schicht (Visible, Output & Hidden Layer). Alle eingehenden Daten werden an den Eingabe-Neuronen (Visible Unit) in der Eingabeschicht angelegt. Diese wiederum geben die Daten weiter an die verbundenen Ausgabe- oder verborgenen Neuronen (Output, Hidden Unit). Zusätzlich kann in jeder Schicht noch ein Bias Neuron (Bias Unit) zum Einsatz kommen. Read more

3D-Visualisierung von Graphen

Die Graphentheorie ist ein wichtiger Teil vieler Methoden und Anwendungsgebiete für Big Data Analytics. Graphen sind mathematisch beschreibbare Strukturen, ohne die im Ingenieurwesen nichts funktionieren würde. Ein Graph besteht aus zwei Knoten (Ecken, engl. Vertex), die über eine Kante (engl. Edge) verbunden sind.

Auf Graphen stoßen Data Scientists beispielsweise bei der Social Media Analyse, beim Aufbau von Empfehlungssystemen (das Amazon-Prinzip) oder auch bei Prozessanalysen (Process Mining). Aber auch einige Big Data Technologien setzen ganz grundlegend auf Graphen, beispielsweise einige NoSQL-Datenbanken wie die Graphendatenbank Neo4j und andere.

Graphen können nicht nur einfache Verkettungen, sondern komplexe Netzwerke abbilden. Das Schöne daran ist, dass Graphen nicht ganz so abstrakt sind, wie viele andere Bereiche der Mathematik, sondern sich wunderbar visualisieren lassen und wir auch in unserem Vorstellungsvermögen recht gut mit ihnen “arbeiten” können.

ubigraph-node-visualization2

Mit der Visualisierung von Graphen, können wir uns Muster vor Augen führen und ein visuelles Data Mining betreiben. Iterative und auch rekursive Vorgänge sowie Abhängigkeiten zwischen einzelnen Objekten/Zuständen können visuell einfach besser verstanden werden. Bei besonders umfangreichen und zugleich vielfältigen Graphen ist eine Visualisierung in drei bzw. vier Dimensionen (x-, y-, z-Dimensionen + Zeit t) nicht nur schöner anzusehen, sondern kann auch sehr dabei helfen, ein Verständnis (z. B. über Graphen-Cluster) zu erhalten. Read more

Hadoop und Connected Cars

Wie Automotive Unternehmen mehr aus großen Datenmengen machen

Wussten Sie schon: Für 13% der Autokäufer ist ein Neu-Fahrzeug ohne Internetzugang ein “no-go”! Dreizehn Prozent! Das bedeutet gleichzeitig 13% weniger Umsatz für den OEM. Die Unternehmensberatung Bain erwartet, dass diese sogenannten Connected Cars in nur wenigen Jahren die Regel und nicht mehr die Ausnahme sein werden.  

Dabei sind Connected Cars nur der Anfang: OEMs stehen jetzt vor der Herausforderung, ihr Portfolio noch einmal deutlich zu erweitern. Ziel ist es, eine breite Palette maßgeschneiderter Produkte anzubieten, um die immer unterschiedlicheren Erwartungen an Kundennutzen, Fahrerlebnis, Lebenszyklus und Garantie zu erfüllen.

Um all diese Angebote zu identifizieren, zu entwickeln und auch betriebswirtschaftlich tragbar zu machen, müssen Daten analysiert werden – viele Daten!  Read more

Datenvisualisierung – Eine Wissenschaft für sich… oder auch zwei

Techniken für die Visualisierung und visuelle Analyse von Datenmengen gehören heute in vielen Unternehmen zu den essentiellen Werkzeugen, um große Datensätze zu untersuchen und sie greifbarer zu gestalten. Während die Anwendungssoftware dazu ständig weiterentwickelt wird, sind die dahinterliegenden Methoden ein beliebtes Forschungsthema in der Wissenschaft. Es gibt zahlreiche Tagungen, Workshops und Fachjournale, in denen neue Erkenntnisse, Verfahren und technische Innovationen ausgetauscht werden.
Interessant ist aber, dass sich in den vergangenen Jahrzehnten zwei große unabhängige Strömungen in der Forschung zum Thema Datenvisualisierung ausgeprägt haben. – Beide hängen mit dem übergeordneten Thema zusammen, begreifen sich jedoch sehr unterschiedlich. Read more

Automatisierte Extraktion von Rohstoffpreisen aus HTML basierten Dokumenten

Ein im ETL-Kontext häufiger Anwendungsfall ist die periodische Extraktion beliebiger Zeichenketten aus heterogenen Datenquellen. Ziel dieses Artikel ist, am Beispiel der beiden Industriemetalle Aluminium und Kupfer zu demonstrieren, wie mit vergleichsweise geringem Aufwand ein Monitoring von Rohstroffpreisen realisiert werden kann. Die tragende Technologie im Hinblick des Extraktionsprozesses wird hierbei die vielseitige Programmiersprache PHP sein. Die Speicherung der Rohstoffpreise wird MongoDB übernehmen und zur Koordinierung der einzelnen Elemente findet ein wenige Zeilen umfassendes Bash-Script, welches periodisch vom cron Daemon gestartet wird, Verwendung. Read more

Wissensvorsprung durch Datenhoheit – den Wandel zulassen

Wissen- das wertvollste Gut

Die Rede von der Wissensgesellschaft ist schon längst ein alter Hut. Der Begriff geht auf Daniel Bell zurück, der bereits 1973 im Rahmen seiner Studie „The Coming of Post-Industrial Society: A Venture in Social Forecasting“ zeigte, dass Wissen eine der wichtigsten Ressourcen in der Gesellschaft darstellt. Bell bezog sich hier primär auf theoretisches Wissen als strategische Ressource und dessen effektive Nutzung als Wettbewerbsvorteil. Längst ist klar geworden, dass Gleiches auch für digitales Wissen gilt. Immer mehr digitale Technologien durchziehen in ständig wachsendem Tempo unseren Alltag und bestimmen unser Leben. Durch die Digitalisierung des Wissens verändert sich die Welt des Wissens radikal. Read more

Data Science Evolution

Wie wurde aus Business Intelligence eigentlich Big Data? Aus Sicht der Unternehmen herrscht große Verwirrung darüber, welcher Begriff nun eigentlich was bedeutet und was dieser für das Unternehmen bedeutet.

Es stellt sicadvanced-data-scienceh die Frage, ob Business Intelligence nun veraltet ist und von Big Data Analytics ersetzt wird oder ob Big Data Analytics die Weiterführung von Business Intelligence darstellt. Darüber gibt es unterschiedliche Meinungen, aber die Evolution, die sich über das letzte Jahrzehnt von einfachen Reports zu den aktuellen Möglichkeiten im Bereich von Big Data Analytics erstreckt, können wir uns recht deutlich vor Augen führen.

Raw Data

Rohdaten stellen das “Material” da, welches die Grundlage für jegliche Analysen bildet. Auch wenn Rohdaten erstmal nicht besonders erwähnenswert klingen, so existiert viel Wissenschaft und Business rund um Rohdaten, denn deren Speicherung kann durchaus sehr komplex sein. Abhängig von Art und Struktur der Daten kommen hier unterschiedliche relationale und nicht-relationale (NoSQL) Datenbanken zum Einsatz. Aktueller Trend ist ferner die InMemory-Datenhaltung, die unabhängig von der eigentlichen Datenbankstruktur möglich ist.

Das Angebot an kostenpflichtigen und kostenfreien Datenbanken ist bereits beinahe unüberschaubar groß. Beispielsweise können die relationalen Datenbanken MariaDB, Oracle DB oder PostgreeSQL genannt werden. Neo4J (graphenorientiert), MongoDB (dokumentenorientiert), Apache Cassandra und SAP HANA (beide spaltenorientiert) sowie Redis (Key-Value-Datenbank) sind hingegen Beispiele für sogenannte NoSQL-Datenbanken.

Clean Data

Bereinigte Daten sollte heutzutage eine Selbstverständlichkeit sein? Weit gefehlt! Aus Erfahrung kann ich sagen, dass eine wirklich saubere Datenbasis die Ausnahme darstellt. Die Regel sind Inkonsistenzen zwischen relationalen Daten, Formatfehler, leere Datenfelder (die nicht leer sein dürften) usw. Mit der Bereinigung der Daten haben zurzeit noch alle Unternehmen und Institute zu kämpfen, sofern sie sich diesen Kampf überhaupt stellen.

Standard-Reporting

Reporting in Excel gibt es nun schon mindestens zwei Jahrzehnte und wird auch heute noch (mehr) betrieben. Mit der Etablierung von ERP-Systemen, beispielsweise Microsoft Dynamics NAV oder SAP ERP, fand auch das automatisierte Reporting Einzug in die deutschen Unternehmen. Heute bieten alle ERP-Systeme (bzw. CRM-, SRM-, PLM-Systeme) zumindest grundlegende Reporting-Funktionen in Form von Tabellen, Balken- und Kuchendiagrammen. Diese Reports sind allerdings in der Regel wenig anpassbar durch die Anwender.

Business Intelligence

Kurz nach dem Einsetzen des Wachstums auf dem Markt der ERP-Systeme lebte auch das Business Intelligence mit den schönen grafischen Dashboards auf. BI bedient sich dabei überwiegend aus den Daten des ERP-Systems. Ferner werden noch weitere – vorwiegend unternehmensinterne – Daten hinzugezogen, z. B. aus Excel-Dateien. Der Erfolg von Business Intelligence kam insbesondere mit den Dashboards und einer einfachen Bedienbarkeit, denn BI wurde für ERP-Anwender gemacht.

Im Bereich BI hatte QlikTech mit der Software QlikView einen Volltreffer gelandet, denn diese hat den Weg in viele Unternehmen als BI-Lösung gefunden.

(Big) Data Analytics – Causality Analytics

Data Analytics geht einen Schritt weiter als BI, denn hier geht es nicht nur darum zu analysieren, welche Ereignisse eingetreten sind, sondern auch warum. Data Analytics ist sehr viel flexibler als BI und wird tendenziell eher programmiert als zusammengeklickt. Hier spielen Daten aus externen Datenquellen (z. B. dem Internet) oftmals eine wichtige Rolle und machen daraus Big Data. Zudem kommt vermehrt Statistik und Machine Learning zum Einsatz um Kausalitäten aus den vielfältigen Datenmengen

Gearbeitet wird beispielsweise mit den Programmiersprachen R und Python, aber auch mit IBM SPSS oder SAS Advanced Analytics.

Predictive Modeling

Prädiktive Analysemodelle gehen noch einen Schritt weiter, denn nach der Frage nach dem Warum stellt sich für viele Geschäftszwecke die Frage, wann es wieder geschehen wird. Predictive Analytics gilt als eine Königsdisziplin, arbeitet mit induktiver Statistik und scheint mit der Einbindung von Big Data beinahe unbegrenzte Möglichkeiten der Vorhersage z. B. von Umsätzen, Lagerbeständen und Maschinenabnutzung zu bieten.

Optimierung

Der letzte Schritt in der Evolution ist die Simulation von allen Stellschrauben mit dem Ziel zur Optimierung des Systems (z. B. das Geschäft, die Fabrik oder die Maschine). Was in der Industriebetriebswirtschaft schon lange als Operations Research bekannt ist, wird mit Big Data Analytics einen neuen Aufschwung erfahren, denn hier werden immer mehr relevante Stellschrauben identifiziert und berücksichtigt werden können.