Buchrezension Big Data Vom Umgang mit großen Datenmassen
Die durch die Digitalisierung und das Internet of Things entstehenden Datenmassen können mit konventionellen Mitteln relationaler Datenbanken nicht mehr bewältigt werden. Dazu braucht es andere Mittel und Methoden. Das Buch „Big Data“ beschreibt sie.
Anbieter zum Thema

Big Data gehört seit einigen Jahren zu den Top-Trends der IT-Branche. Doch was bedeutet das im Detail? Irgendwas mit Datenbanken, die sich von relationalen unterscheiden, und irgendwas mit In-Memory, so weit reicht das Verständnis bei Vielen. Wenn das nicht ausreicht, hilft zum Beispiel Lektüre. „Big Data – Entwicklung und Programmieren von Systemen für große Datenmengen und Einsatz der Lambda-Architektur“ ist so ein Buch, das tiefer gehendes Wissen zum Thema vermittelt.
Dabei wendet sich das Werk letztlich an zwei Zielgruppen: Erstens an Menschen, die grundsätzlich verstehen wollen, wie Big-Data-Systeme aufgebaut sind, was ihre einzelnen Module tun und wie sie verknüpft werden. Hier ist im Grunde jeder angesprochen, der solche Systeme beschaffen oder mitbestimmen soll, wofür und wie entsprechende Lösungen eingesetzt werden. Andererseits zielt das Buch aber auch auf Praktiker, die vorzugsweise mit verbreiteten und breit einsetzbaren Open-Source-Tools entsprechende Systeme aufbauen wollen.
Im Zentrum: unveränderliche Daten
Das spiegelt sich in der Kapitelstruktur wider: Ein umfangreiches erstes Kapitel beschreibt, warum überhaupt eine andere Datenverarbeitungsmethodik für Big Data nötig ist. Es klärt auch, ab welchen Datenmengen dieser Terminus passt. Ausführlich geht es um die Schwächen relationaler Datenbanksysteme. Insbesondere wirkt sich der Zwang zu ständigen und sehr aufwendigen Konsistenzmechanismen hinderlich für Big Data aus.
Dem gegenüber steht die dauerhafte Konstanz des gespeicherten Stammdatensatzes bei Big-Data-Systemen. Er liegt in einfach strukturierten Key-Value-Stores, die jeweils nur einen Schlüssel und einen Wert speichern. Sie werden bei Bedarf kombiniert, um spezifische Sichten – sogenannte Views – zu erzeugen. Diese Views sind Vorverarbeitungen für spätere Abfragen. Aus diesen und anderen Merkmalen resultieren Belastbarkeit, Fehlertoleranz, geringe Latenz, Skalierbarkeit, Allgemeingültigkeit, minimale Wartung etc.
Anschließend beschreibt das Buch die in Big-Data-Systemen verwendet Lambda-Architektur im Detail. Sie besteht aus den Schichten Batch-, Serving- und Speed-Layer. Praxiskapitel realisieren eine kleine Beispielanwendung, die durch das gesamte Buch fortgeführt wird. Jeder der drei Schichten ist ein eigener großer Abschnitt gewidmet.
Schicht für Schicht
Sehr ausführlich wird der Batch-Layer beschrieben. Das liegt an seiner Bedeutung fürs Gesamtsystem: Hier liegt der unveränderliche Stammdatenspeicher. Zudem werden hier die Views erzeugt, was im Detail dargestellt wird.
Beschrieben werden das Datenmodell für Big Data, die Datenspeicherung mit dem Hadoop Distributed File System (HDFS) und das Funktionieren des MapReduce-Algorithmus. Die Rolle allgemein einsetzbarer Open-Source-Tools für Teilaufgaben kommt zur Sprache. Es geht um die Eigenheiten maschinennaher Berechnungen und um Darstellung solcher Vorgänge als Pipe-Diagramme. Auch schon im Theorieteil finden sich für Nichtprogrammierer schwer verständliche Code-Beispiele. Hier wäre weniger unter Umständen mehr gewesen.
Praxis für Programmierer
Im Praxisbereich wird dann – angewandt auf das Beispielszenario – in drei Unterkapiteln mit konkreten Tools die Batch-Schicht realisiert. Der Autor nutzt dafür Tools wie Pail oder JCascalog. Spätestens hier steigen Nicht-Programmierer aus. Der Autor weist aber darauf hin, dass er die Lektüre ohne Praxiskapitel für sinnvoll hält.
Dieselbe Struktur liegt dem Textabschnitt über den Serving-Layer zugrunde: Es geht zunächst um dessen prinzipielles Funktionieren, angestrebte Leistungskennzahlen, die Anforderungen an dessen Datenbank etc. Dann folgt das Praxiskapitel, in dem die entsprechende Lösung fürs Beispiel realisiert wird, in diesem Fall mit ElephantDB.
Schließlich folgt der Speed-Layer. Er erzeugt Echtzeit-Views auf Basis jeweils aktueller Daten. Sie werden bei der Beantwortung von Fragen mit den im Batch-Layer gespeicherten Views kombiniert. Weiter geht es im theoretischen Teil der Speed-Layer-Beschreibung um Warteschlangen, Stream-Verarbeitung und die Stream-Verarbeitung kleiner Stapel. Nach der Beschreibung der Themen werden diese jeweils in einem Praxiskapitel auf das Beispiel angewandt, wobei für die Stream-Verarbeitung Apache Storm verwendet wird.
Tiefe Einblicke
Den Schluss bildet ein Kapitel, das die Lambda-Architektur noch einmal zusammenfassend darstellt. Es bezieht sich dabei auf die Vorkapitel samt ihrer Praxisanteile.
Die Stärke des Buches liegt darin, dass es tatsächlich einen tieferen Einblick in Struktur und Funktion von Big-Data-Systemen bietet. Einzelmechanismen wie HDFS, MapReduce, Streaming und anderes werden im Detail dargestellt. Damit hilft die Lektüre zu verstehen, wann, wo und wie solche Systeme eingesetzt werden müssen oder sollten. Der Text geht allerdings an vielen Stellen auch in den theoretischen Teilen weit über das nötige Orientierungswissen für Entscheider hinaus. Von denen dürfte sich so mancher, der nicht Informatik studiert hat, mit für dieses Thema nicht nötigen Infos überlastet fühlen.
Die Praxiskapitel zeigen jeweils mithilfe ganz konkreter Werkzeuge, wie man bestimmte Funktionen programmiertechnisch realisiert. Dabei nutzen sie wohl vor allem jenen, die dieselben Werkzeuge einsetzen. Wer etwas anderes verwendet, muss zumindest die Semantik an den genutzten Werkzeugkasten anpassen.
Eierlegende Wollmilchsau
Der Inhalt dieser Abschnitte überfordert Nichtprogrammierer. Sie nehmen allerdings in dem rund 350 Seiten langen Buch knapp die Hälfte ein. Manche eher theoretisch orientierte Leser werden sich daher wohl fragen, ob sie es überhaupt kaufen.
Programmierer dagegen stört unter Umständen die Beschränkung auf bestimmte Werkzeuge. Wer sich mit Big Data einigermaßen auskennt, kann sicher auch auf einige der eher grundlegenden Theorie-Informationen verzichten. Vielleicht wäre es daher sinnvoller gewesen, das Wissen auf zwei zielgruppenscharfe Bücher zu verteilen, statt eine eierlegende Wollmilchsau zu basteln.
(ID:45711147)