Data Science IoT-Basics – die technische Basis von Big Data
Big Data beinhaltet eine Reihe von IT-Techniken wie Cluster Computing und MapReduce sowie mathematisch-statistischer Verfahren (Data Mining, Machine Learning). Der Beitrag gibt einen Überblick über die relevanten Datenbankenkonzepte (Hadoop- und NoSQL-Datenbanken) und Programmiersprachen.
Anbieter zum Thema

Hinter dem Begriff Big Data verbirgt sich eine Reihe konkreter IT-Technologien und mathematisch-statistischer Verfahren, mit dem die im Einführungskapitel zitierten Herausforderungen gemeistert werden sollen. Die folgende Übersicht zeigt, in welche Kategorien sich diese Technologien und Verfahren einteilen lassen. Neben den traditionellen SQL-Datenbanken und Data Warehouse werden mit Hadoop- und NoSQL-Datenbanken neue Ansätze der Datenhaltung in verteilten Computerclustern verfolgt, die deren Limitierungen hinsichtlich Skalierbarkeit, aber auch Kosten aufheben.
Datenzugriff: Das MapReduce-Verfahren und eine Vielzahl darauf aufbauender Abfragetechnologien ergänzen den traditionellen Ansatz des Datenzugriffs per SQL-Sprache. Für zeitkritische Auswertungen werden die Daten als Livestream mittels Stream Analytics und Complex Event Processing (CEP) untersucht. In-Memory Datenbanken ermöglichen High-Speeds die Verarbeitung großer Datenmengen.
Analytische Verarbeitung: Die bereits in den 80er-Jahren sehr populären Methoden der Künstlichen Intelligenz, aber auch bekannte Verfahren aus der Statistik erleben eine echte Renaissance und bilden den Kern der neuen Lösungen rund um Maschinelles Lernen, Data Analytics und Data Mining.
Visualisierung: Immer leistungsfähigere interaktive Analysewerkzeuge unterstützen die Datenanalysten bei ihrer Arbeit. BI-Tools aus dem Umfeld Business Intelligence ermöglichen darüber hinaus auch Nicht-Spezialisten, aus den vorhandenen Daten wertvolle Erkenntnisse zu gewinnen.
Datenintegration: Die neuen Methoden für Datenhaltung und Datenzugriff müssen untereinander und mit den traditionellen Technologien verknüpft werden. Dazu gibt es ein sehr breites Spektrum an Integrationstechnologien wie SOA, RESTful Services und WEB API, Message Queue, Enterprise Service Bus und viele andere mehr.
Daten-Governance und Sicherheit: Durchgehende Verschlüsselung der Daten, Multi-Mandantenfähigkeit, Anonymisierung von personenbezogenen Daten und neue Datentreuhandmodelle sollen helfen, auch im Big-Data-Umfeld die gesetzlichen und unternehmensspezifischen Anforderungen an Datensicherheit und Datenschutz zu gewährleisten.
Die obige Kategorisierung (Taxonomie) der Big-Data-Technologien wurde einem Leitfaden des deutschen IT-Verbandes Bitkom entnommen, den der Autor an dieser Stelle auch zur weitergehenden Lektüre zum Thema Big Data nur empfehlen kann [1].
Cluster-Computing auf Commodity-Hardware macht Big Data erschwinglich
Computer-Cluster und deren Management bilden die Grundlage für viele der durch Big Data neu eingeführten Technologien, speziell auch für Apache Hadoop. Ein Computercluster ist eine Anzahl von vernetzten Computern, die große Aufgaben verteilt erledigen können. Durch Cluster können sowohl die Verfügbarkeit der Rechen- und Speicherkapazität als auch die Performanz bei der Berechnung gesteigert werden.
Statt des Einsatzes von hochspezialisierter und teurer High-End-Hardware konnten durch die Bildung von Computerclustern auf der Basis von relativ einfacher Standard-PC-Hardware (Commodity Hardware) die Kosten für solche Cluster dramatisch gesenkt und damit Big-Data-Anwendungen erst erschwinglich gemacht werden.
Ebenfalls eine wichtige Schlüsselrolle für den Erfolg von Big Data spielte das ursprünglich von Google erfundene MapReduce-Verfahren (Bild 1) [2]. Dieses Verfahren ist im hohen Maße dazu geeignet, sehr große Datenmengen, die auf verschiedenen Rechnerknoten in einem Computercluster verteilt sind, gleichzeitig hochparallel zu durchsuchen und auszuwerten. Die Verarbeitung der Daten läuft lokal dort, wo die Daten liegen. Dies reduziert den Netzwerkverkehr und beschleunigt die Verarbeitung. Die Anforderungen an die eingesetzten Rechner sind dabei nicht sehr hoch, es reicht relativ günstige Commodity Hardware. Das Verfahren kompensiert die dadurch unvermeidlichen Ausfälle von einzelnen Rechnerknoten aber automatisch.
Die Eingangsdaten müssen nicht strukturiert sein. Sie können in flachen Dateien abgelegt werden, z. B. in textbasierten Logfiles oder CSV-Dateien. Bei der Ablage der Daten muss nicht schon über die zukünftige Verwendung nachgedacht werden. Das Mapping der Rohdaten auf konkrete Datenstrukturen erfolgt je nach Aufgabenstellung anwendungsfallbezogen im Java-Code. Der Einsatz von Java als Implementierungssprache für MapReduce-Algorithmen garantiert darüber hinaus höchste Flexibilität und ein breites Ökosystem an Werkzeugen und vorhandenen Entwickler-Skills.
Das MapReduce-Verfahren – einfach, aber wirkungsvoll
MapReduce basiert auf einem sehr einfachen Grundprinzip, auf dem aufbauend sich aber sehr komplexe Abfrage- und Analysemethoden implementieren lassen. Ein großes Problem wird in viele kleinere Arbeitsaufgaben (engl.: jobs) aufgeteilt und in einem Computercluster verteilt verarbeitet. Die Ergebnisse werden dann gesammelt und in einem Report dargestellt. Das Verfahren besteht im Prinzip aus drei Verarbeitungsstufen, die aber bei Bedarf auch mehrfach und ineinander verschachtelt abgearbeitet werden.
In der Stufe „Map“ werden die Daten zunächst aus den lokalen Datenspeichern nach bestimmten Kriterien gelesen und für die Weiterverarbeitung in Listen bereitgestellt. Diese Verarbeitung erfolgt hochparallel auf allen verfügbaren Rechnerknoten und so, dass die Jobs auf den Knoten ausgeführt werden, wo auch die entsprechenden Daten liegen. In der Stufe „Shuffle“ werden die Daten vom System automatisch so in Untermengen sortiert, dass die anschließende Auswertung erfolgen kann.
(ID:45191526)