“Das Zeitalter der Datenökonomie“, „Daten sind das Öl des 21.Jahrhunderts“ … so weit, so bekannt. Unternehmen entwickeln zunehmend Daten-basierte Geschäftsmodelle und verfolgen eine Datenstrategie (vgl. auch den Blogpost Wie geht Datenstrategie?). In diesem Blogpost werfen wir einen Blick auf den Technology Stack bzw. das Ökosystem an Tools, der für die Sammlung, Speicherung und Auswertung von Daten in der Praxis eingesetzt wird.

In den vergangenen zwei Jahrzehnten wurden eine Vielzahl mächtiger Tools entwickelt, um Petabyte an Daten effizient verarbeiten zu können. Zahlreiche Tools sind als Free Open Source Software (FOSS) verfügbar, vor allem unter der Apache Lizenz. Nachfolgende Übersicht gibt einen (ersten) visuellen Eindruck, wie umfangreich und ausdifferenziert das Tool-Angebot rund um Big Data (und die angrenzende Disziplin der Data Science / KI) ist. Die Fundstelle für diese gute Übersicht ist hier: www.matturck.com:

Nachfolgend werfen wir einen Blick auf einige ausgewählte Tools, die in der Praxis eine große Rolle spielen. Dabei gilt kein Anspruch auf Vollständigkeit, mir geht es darum, das Ökosystem rund um Big Data mit einigen ausgewählten Tools abzustecken. Mehr nicht.

Das Big Data Ökosystem: Frameworks

Eine zentrale Funktion spielen sogenannte Frameworks, die das Herzstück des Big-Data-Ökosystems bilden. Sie verarbeiten und speichern Daten, oft bieten diese auch bereits Features zur Datenanalyse und Visualisierung.

Relevante Kriterien bei der Auswahl solcher Infrastrukturtechnologien sind vor allem die Fähigkeit, sehr umfangreiche und unstrukturierte Daten bei geringer Latenzzeit zu verarbeiten. Diese sind in der Lage, Anwendungen auf Systemen mit Tausenden von Knoten auszuführen, die möglicherweise Tausende von Terabytes an Daten umfassen.

Apache Hadoop, Apache Spark und weitere

Die Apache-Hadoop-Softwarebibliothek ermöglicht die verteilte Verarbeitung großer Datensätze über Computercluster hinweg. Es ist eines der frühesten Big-Data-Tools, das für die Skalierung von einzelnen Servern auf Tausende von Rechnern ausgelegt ist: Bereits im Jahr 2006 wurde es erstmals veröffentlicht. Inzwischen wurde Hadoop teilweise von anderen Technologien verdrängt, ist aber immer noch weit verbreitet.

Apache Spark ist eine In-Memory-Datenverarbeitungs- und -Analyse-Engine. Sie ermöglicht groß angelegte Datentransformationen und -analysen und kann sowohl für Batch- und Streaming-Anwendungen als auch für Anwendungsfälle des maschinellen Lernens und der Graphenverarbeitung verwendet werden.

In nachfolgendem Video werden die jeweiligen Vor- und Nachteile der beiden Frameworks kompakt miteinander verglichen (10 min, Englisch):

Ein weiteres weitverbreitetes Tool ist Apache Storm: Wesentliches Charakteristikum ist die Fähigkeit zur verteilten Echtzeit-Verarbeitung unbegrenzter Datenströme.

Das Big Data Ökosystem: Streaming

Apache Kafka

IT Systeme von Plattformen wie LinkedIn, Amazon oder Netflix verarbeiten täglich Petabyte von Daten. Netflix verarbeitet täglich (!) etwa 6 Petabyte (= 1.000 Terabyte), und auf der Karriereplattform LinkedIn werden täglich (!) 4,5 Billionen Nachrichten gepostet.

So ist es keine Überraschung, dass LinkedIn selbst eine neue IT Architektur entwickelte, um diese gigantischen Datenströme effizient zu verarbeiten. Im Jahr 2012 wurde das Ergebnis als OpenSource-Anwendung Apache Kafka unter die Apache-Lizenz gestellt. Im Jahr 2014 wurde das Unternehmen Confluent aus der Taufe gehoben, um Apache Kafka weiter zu entwickeln.

Apache Kafka ist ein mächtiges Tool zur Verarbeitung von Datenströmen. Bei einem „Datenstrom“ handelt es sich um ein Event (z.B. ein Posting auf LinkedIn) mit Zeitstempel, also zum Beispiel ein Posting oder ein Wert von einem Sensor. Die Datenströme werden in „Topics“ gegliedert, diese wiederum sind in Partitionen untergliedert. „Producer“ speisen Events in die Topics ein, sogenannte „Consumer“ können den Inhalt der Datenströme auswerten, nutzen.

Der Digital Evangelist Kai Wähner von Confluent stellt Apache Kafka im nachfolgenden Video (45 min, Englisch) vor, vergleicht die IT Architektur mit herkömmlicher Middleware zur Integration von verteilten Diensten.

Apache Flink

Ein ebenfalls in der Praxis relevantes Tool: Apache Flink. Vergleicht man es mit Kafka (ebenfalls ein Apache Projekt), dann gilt: Flink und Kafka Streams wurden mit Blick auf unterschiedliche Anwendungsfälle entwickelt. Zwar überschneiden sie sich in ihrer Anwendbarkeit, aber sie haben sehr unterschiedliche Sweet Spots und Platzierungen im Dateninfrastruktur-Stack.

Kafka positioniert sich dabei klar als Mainstream-Anwendungsprogrammiermodell. Um dieses Ziel zu erreichen, wurden in der Streams-API einige bewusste Designentscheidungen getroffen: Beispielsweise handelt es sich um eine Bibliothek ohne Cluster, die sich einfach einbinden lässt. Das macht Kafka für Anwendungsentwickler wesentlich zugänglicher, da es sich nahtlos in die bestehenden Paketierungs-, Bereitstellungs-, Überwachungs- und Betriebstools eines Unternehmens integrieren lässt.

Flink wird in der Regel mit Kafka als zugrunde liegende Speicherschicht verwendet, ist aber unabhängig davon. In zahlreichen Fällen werden Flink und Kafka komplementär in einer Streaming-Architektur eingesetzt. Heißt also für das Verhältnis zwischen diesen beiden Produkten in der Praxis häufig: “Sowohl-als-Auch“ statt “Entweder-Oder“. In Flink gibt es (im Gegensatz zu Kafka) einen dedizierten Masterknoten, der das Streamprozessing koordiniert. Dieser Ansatz trägt dazu bei, dass Flink einen sehr hohen Durchsatz mit der „exactly-once“ Garantie erreichen kann.

Nachfolgend ein Video, das insbesondere auch die Herausforderung von “stateful data“ herausarbeitet (12 min, Englisch):

Das Big Data Ökosystem: Analytics

Schlussendlich geht es darum, Daten nutzbar zu machen, sprich: Daten auszuwerten und Zusammenhänge sichtbar zu machen (Visualisierung). Die eingangs vorgestellten Frameworks bieten hierfür bereits Hilfsmittel; spezialisierte Analytics Tools ergänzen den Big Data Technology Stack aber typischerweise um leistungsstarke Tools, etwa Folgende:

Apache Hive

Apache Hive wurde ursprünglich von Facebook entwickelt, später unter die Apache Open Source Lizenz gestellt. Es handelt sich dabei um eine SQL-basierte Data-Warehouse-Infrastruktur-Software (Standard-SQL-Funktionalität für Datenabfragen und Analysen) zum Lesen, Schreiben und Verwalten großer Datensätze in verteilten Speicherumgebungen.

Apache Hive läuft auf Hadoop und wird zur Verarbeitung strukturierter Daten verwendet, insbesondere zur Datenzusammenfassung und -analyse sowie zur Abfrage großer Datenmengen, inklusive Zugriff auf HDFS-Dateien und Dateien in anderen Systemen (u.a. Apache HBase-Datenbank). Nota Bene: Keine Echtzeit-Updates.

Apache Drill

Dieses Analytics Tool verarbeitet strukturierter und halbstrukturierter Daten (von Hadoop-Sequenzdateien und Serverprotokollen bis hin zu NoSQL-Datenbanken und Cloud-Objektspeichern) mit geringer Latenz. Das Tool bietet auch Schnittstellen zu gängigen BI-Tools wie Tableau oder Qlik.

Apache Kylin

Kylin wurde ursprünglich von eBay entwickelt; 2014 wurde es als Open-Source-Technologie zur Verfügung gestellt.

Kylin bietet eine OLAP-Engine (Online Analytical Processing), die für die Unterstützung extrem großer Datensätze konzipiert ist. Kylin baut auf anderen Apache-Technologien auf wie Hadoop, Hive (vgl. oben), Parquet oder Spark. Es handelt sich um ein Echtzeit-Analytics-Tool, das ebenfalls mit Tools wie Tableau oder Microsoft Power BI integriert werden kann. Kernmerkmal: Vorberechnung von multidimensionalen OLAP-Würfeln zur Beschleunigung von Analysen.

Apache Druid

Apache Druid ist eine hochperformante Echtzeit-Analysedatenbank. In nachfolgendem Video (8 min, Englisch) wird nachvollziehbar erläutert, wie die Big Data Architektur für Datenspeicherung, Datenvorverarbeitung und derlei mehr aufgebaut sind, um wünschenswerte Eigenschaften bei der Datenanalyse zu erzielen: Performanz, Effizienz, Skalierbarkeit und mehr:

Zum Weiterlesen

Author

Der Autor ist Manager in der Softwareindustrie mit internationaler Expertise: Prokurist bei einem der großen Beratungshäuser - Verantwortung für den Aufbau eines IT Entwicklungszentrums am Offshore-Standort Bangalore - Director M&A bei einem Softwarehaus in Berlin.