Die immensen, rasch ansteigenden Datenberge erfordern kontinuierlich leistungsfähigere Ansätze zur Datenverarbeitung. Open Source spielt dabei nach Meinung der data Artisans aus Berlin eine wichtige Rolle.
Das „Warum“ der Datenverarbeitung liegt auf der Hand, wenn man die große Anzahl von Sensoren, vernetzten Geräten, Websites oder mobilen Anwendungen betrachtet; oder einfach alle Daten, die sowohl von Menschen als auch von Maschinen erzeugt werden. Die immensen, rasch ansteigenden Datenberge erfordern kontinuierlich leistungsfähigere Ansätze zur Datenverarbeitung. Open Source spielt dabei nach Meinung der data Artisans aus Berlin eine wichtige Rolle.
data Artisans wurde von den Initiatoren des Open Source Projekts Apache Flink gegründet, um Unternehmen Echtzeit-Datenanwendungen zu ermöglichen.
Die „Vorgeschichte“ von Big Data
Mit der Erfindung des Computers entstand ein deutlicher Bedarf an Informationen und Datenverarbeitung. In diesen sehr frühen Tagen mussten Informatiker benutzerdefinierte Programme zur Datenverarbeitung schreiben und diese Programme höchstwahrscheinlich in eine Lochkarte stecken. Die nächsten Entwicklungsschritte brachten die Assemblersprache und zielführendere Programmiersprachen wie Fortran, dann C und Java hervor. Aus der „prähistorischen“ Big-Data-Perspektive betrachtet, würden Softwareingenieure diese Frameworks nutzen, um speziell entwickelte Programme für bestimmte Datenverarbeitungsaufgaben zu schreiben. Dieses Paradigma der Datenverarbeitung war jedoch nur für wenige Auserwählte, die einen Programmier-Background hatten, zugänglich. Dies verhinderte eine breitere Akzeptanz seitens Datenanalytikern oder der Geschäftswelt, die Informationen verarbeiten und darauf basierend spezifische Entscheidungen treffen wollten.
Als nächster Schritt setzte sich um die 1970er Jahre der Einsatz von Datenbanken durch. Traditionelle relationale Datenbanksysteme wie IBMs Datenbanken ermöglichten die Nutzung von SQL (für „Structured Query Language“, auf Deutsch „Strukturierte Abfrage-Sprache“) und erhöhten die Akzeptanz der Datenverarbeitung bei einem breiteren Publikum. SQL ist eine standardisierte und ausdrucksstarke Abfragesprache, die sich ähnlich wie Englisch liest und mehr Menschen Zugang zur Datenverarbeitung bot. Die Anwender waren nicht mehr auf einen Programmierer angewiesen, um spezielle Einzelprogramme zu schreiben und Daten zu analysieren. SQL erweiterte auch die Anzahl und Art der Datenverarbeitungsaufgaben wie Geschäftsanwendungen, Berechnung der Abwanderungsquote oder Warenkorbgröße, Jahresvergleich von Wachstumszahlen etc.
Die Anfänge von Big Data
Die Ära von Big Data begann mit dem von Google herausgegebenen MapReduce-Paper, das ein einfaches Modell erklärt, das auf den beiden Primitiven Map und Reduce (die Funktionen zweiter Ordnung sind) basiert, die parallele Berechnungen über eine große Anzahl paralleler Maschinen ermöglichen. Offensichtlich waren parallele Berechnungen schon vor der MapReduce-Ära durch mehrere Computer, Supercomputer und MPI-Systeme möglich. MapReduce stellte es jedoch einem breiteren Publikum zur Verfügung.
Dann kam Apache Hadoop als Open-Source-Implementierung des Frameworks (ursprünglich bei Yahoo! implementiert). Hadoop war bald im Open-Source-Bereich weit verbreitet und stand somit einem breiteren Publikum zur Verfügung. Hadoop setzte sich bei verschiedenen Unternehmen durch und viele Big-Data-Akteure stammen aus dem Hadoop-Framework (Cloudera oder Hortonworks). Hadoop hat ein neues Paradigma in der Datenverarbeitung eingeführt: eines, in dem sich Daten in einem verteilten Dateisystem oder Speicher (z.B. HDFS for Hadoop) speichern lassen, um zu einem späteren Zeitpunkt Fragen zu diesen Daten stellen zu können (Abfrage von Daten). Der Hadoop-Raum sah einen ähnlichen Weg vor wie bei den relationalen Datenbanken (die Geschichte wiederholt sich immer wieder), wo der erste Schritt die benutzerdefinierte Programmierung durch einen bestimmten „Cast“ von Personen beinhaltete, die in der Lage waren, Programme zu schreiben, um dann SQL-Abfragen auf Daten in einem verteilten Dateisystem wie Hive oder anderen Storage-Frameworks zu implementieren.
Die nächste Stufe der Batch-Verarbeitung
Der nächste Schritt für Big Data war die Einführung von Apache Spark. Spark ermöglichte eine zusätzliche Parallelisierung und brachte die Batch-Verarbeitung auf die nächste Stufe. Die Batch-Verarbeitung oder Stapelverarbeitung sieht das Einfügen von Daten in ein Speichersystem vor, auf dem dann Berechnungen geplant werden. Das Hauptkonzept besteht darin, dass die Daten irgendwo sitzen, während regelmäßig (täglich, wöchentlich, stündlich) Berechnungen durchgeführt werden, um Ergebnisse basierend auf früheren Informationen sichtbar zu machen. Diese Berechnungen laufen nicht kontinuierlich, sondern haben einen Anfang und ein Ende. Daher müssen sie fortlaufend neu ausgeführt werden, um aktuelle Ergebnisse zu erhalten.
Die Entwicklung von Big Data zu Fast Data: Stream-Verarbeitung
In einem weiteren Schritt der Big-Data-Evolution folgte die Einführung der Stream-Verarbeitung mit Apache Storm als erstem weit verbreiteten Framework (es gab andere Forschungssysteme und Frameworks zur gleichen Zeit, aber Storm hatte eine zunehmende Akzeptanz). Was dieses Framework ermöglicht, ist das Schreiben von Programmen, die kontinuierlich (24/7) laufen. Im Gegensatz zum Batch-Verarbeitungsansatz, bei dem die Programme und Anwendungen einen Anfang und ein Ende haben, wird das Programm bei der Stream-Verarbeitung kontinuierlich auf dem Datenstrom ausgeführt und produziert Ergebnisse in Echtzeit, während die Daten generiert werden. Die Stream-Verarbeitung wurde mit der Einführung von Apache Kafka (ursprünglich bei LinkedIn) als Speichermechanismus für einen Nachrichtenstrom weiterentwickelt. Kafka fungierte als Puffer zwischen den Datenquellen und dem Verarbeitungssystem (wie Apache Storm).
Ein kleiner Umweg in der Entwicklung von Big Data war die sogenannte „Lambda-Architektur“. Diese Architektur entstand, weil die ersten Anwender der Stream-Verarbeitung nicht glaubten, dass Stream-Verarbeitungssysteme wie Apache Storm zuverlässig genug waren, so dass sie beide Systeme (Batch- und Stream-Verarbeitung) gleichzeitig betrieben. Die Lambda-Architektur kombiniert also die beide Systeme, wobei ein Stream-Verarbeitungssystem wie Apache Storm für Echtzeit-Einblicke genutzt wird, aber die Architektur dennoch periodisch auf ein Batch-Verarbeitungssystem zurückgreift, das die „Grundwahrheit des Geschehens“ aufrechterhält. Zum jetzigen Zeitpunkt wird die Stream-Verarbeitung nur für Sofortmaßnahmen oder Analysen verwendet, nicht aber für die „Ground Source of Truth“.
Die Stream-Verarbeitung wird zugänglich gemacht: Apache Flink
Die Landschaft änderte sich etwa um 2015 herum, als Apache Flink begann, sich zu einem führenden Stream-Processing-Framework zu entwickeln, das von namhaften Entwicklern, datenorientierten Unternehmen und Analytikern übernommen wurde. Von Anfang an zeichnete sich Flink durch sehr starke Garantien, eine genau abgestimmte Semantik und eine fehlertolerante Processing-Engine aus. Die Anwender sahen sich darin überzeugt, dass die Lambda-Architektur keine Notwendigkeit mehr sei und Stream Processing für komplexe Ereignisverarbeitung und kontinuierlich laufende, unternehmenskritische Anwendungen geeignet sei. Der gesamte Aufwand, der mit dem Bau und der Wartung von zwei Systemen (ein Batch- und ein Stream-Verarbeitungssystem) verbunden war, konnten nun entfallen, da Flink ein zuverlässiges und zugängliches Datenverarbeitungs-Framework einführte.
Die Stream-Verarbeitung führte ein neues Paradigma und einen Wandel in der Denkweise ein: von einem Anfrage-Antwort-Ansatz, bei dem Daten gespeichert werden, bevor Fragen zu einem Ereignis gestellt werden können, zu einem Ansatz, bei dem die Fragen zuerst gestellt werden, um in Echtzeit Informationen zu erhalten, während die Daten laufend generiert werden.
Mithilfe der Stream-Verarbeitung lässt sich beispielsweise ein Betrugserkennungsprogramm entwickeln, das rund um die Uhr läuft. Es erfasst Ereignisse in Echtzeit und liefert wertvolle Einblicke, wenn es Anzeichen auf Kreditkartenbetrug erkennt. Dadurch kann verhindert werden, dass der Betrug tatsächlich stattfinden kann. Dies ist eine der größeren Veränderungen in der Datenverarbeitung, weil sie Echtzeiteinblicke in das Geschehen in der Welt und proaktives Handeln ermöglicht.
Fazit und Ausblick
„Bei der Entwicklung der Open Source-Datenverarbeitung wird ein gemeinsames Muster deutlich: Ein neues Framework wird auf dem Markt eingeführt, das zunächst einem bestimmten Publikum zur Verfügung steht, das kundenspezifische Programme zur Datenverarbeitung schreiben kann“, fasst Dr. Stephan Ewen von data Artisans abschließend zusammen. „Dann kommt die Einführung von SQL im Framework, das es für breitere Zielgruppen, die nicht unbedingt Programme für anspruchsvolle Datenverarbeitung schreiben können müssen, zugänglich macht. Mit der Einführung von SQL in der Stream-Verarbeitung dürfte für die Zukunft eine breite Akzeptanz für das Framework in Unternehmen und ein Markt, der exponentiell wächst, zu erwarten sein.“