Kolumne: Die flinke Feder

Daten sind Schweine

Bernd Fondermann


Es ist ein kleiner Schritt für die Computer von „normalisiert“ nach „normal“, aber ein großer Schritt für die Menschheit. Sind Ihre Daten einwandfrei normalisiert? Testfrage: Wie lange würde eine Datenmigration in ein anderes System mit einem anderen Domänenmodell bei Ihnen dauern? Und wenn Sie sich die in den letzten Jahren gewachsenen Daten und Schemata noch einmal genau anschauen, wie lange würde es jetzt wirklich dauern?Ich bin kein Physiker, aber ich bin mir sicher, dass sich aus der Thermodynamik oder der Relativitätstheorie folgender Satz ableiten ließe: Daten streben die höchstmögliche Divergenz von ihrem Schema an. Mit anderen Worten: Datenschemata sind super, funktionieren aber selten hundertprozentig. Was ist ein Schema wert, das nicht eingehalten wird? Besser als gar kein Schema, sagen Sie? Ich gebe Ihnen recht. Trotzdem der Versuch einer anderen Perspektive. Schauen wir uns Apache Pig [1] an. Das Motto, das laut Webseite zur Wahl des Namens führte, ist „Pig eats everything“. Und Apache Pig frisst Daten. Sie müssen nicht normalisiert sein. Datenkonsistenz ist aber von großem Vorteil. Es sei nicht verschwiegen, dass ein Blick in den Quellcode von Pig den Namen noch zusätzlich motiviert. Sauberer Code ist etwas anderes. CSV Files, reine Textdateien oder Inhalte von Datenbanken sind die typischen Grundnahrungsmittel von Pig. Sie dürfen dabei auch sehr, sehr groß sein. Mit Pig lassen sich ad hoc Schemata auf solchen Daten deklarieren, das Chaos erhält also – wie gehabt – zuerst einmal Struktur. Nun kann man die Daten nach Belieben filtern, zählen, aufbrechen, aggregieren, umformen, joinen und parsen.Hier kommt Pig Latin ins Spiel, die eingebaute deklarative Datenflusssprache. Konstrukte wie Schleifen und Verzweigungen sucht man vergebens. Stattdessen werden mit jedem Befehl Daten umgeformt. In reinem SQL werden Selektionen, Joins, Aggregationen und Operationen auf Daten in einem großen Statement zusammengeschachtelt. In Pig findet das schrittweise, eher prozedural statt. Jedes Kommando beschreibt einen Teilschritt von Anfang zum Ziel. Mit dem abschließenden Befehl zum Berechnen eines Ergebnisses werden alle Teilschritte zusammengenommen und als eine Einheit ausgeführt. Dabei läuft mindestens ein MapReduce-Job ab, oft sind es aber auch mehrere hintereinander. Daten in Pig sind typisiert. Pig Latin bietet neben den einfachen Typen wie int, float, long, double, chararray (String) und bytearray auch verschiedene Containertypen an, die sehr praktisch...

Kolumne: Die flinke Feder

Daten sind Schweine

Bernd Fondermann


Es ist ein kleiner Schritt für die Computer von „normalisiert“ nach „normal“, aber ein großer Schritt für die Menschheit. Sind Ihre Daten einwandfrei normalisiert? Testfrage: Wie lange würde eine Datenmigration in ein anderes System mit einem anderen Domänenmodell bei Ihnen dauern? Und wenn Sie sich die in den letzten Jahren gewachsenen Daten und Schemata noch einmal genau anschauen, wie lange würde es jetzt wirklich dauern?Ich bin kein Physiker, aber ich bin mir sicher, dass sich aus der Thermodynamik oder der Relativitätstheorie folgender Satz ableiten ließe: Daten streben die höchstmögliche Divergenz von ihrem Schema an. Mit anderen Worten: Datenschemata sind super, funktionieren aber selten hundertprozentig. Was ist ein Schema wert, das nicht eingehalten wird? Besser als gar kein Schema, sagen Sie? Ich gebe Ihnen recht. Trotzdem der Versuch einer anderen Perspektive. Schauen wir uns Apache Pig [1] an. Das Motto, das laut Webseite zur Wahl des Namens führte, ist „Pig eats everything“. Und Apache Pig frisst Daten. Sie müssen nicht normalisiert sein. Datenkonsistenz ist aber von großem Vorteil. Es sei nicht verschwiegen, dass ein Blick in den Quellcode von Pig den Namen noch zusätzlich motiviert. Sauberer Code ist etwas anderes. CSV Files, reine Textdateien oder Inhalte von Datenbanken sind die typischen Grundnahrungsmittel von Pig. Sie dürfen dabei auch sehr, sehr groß sein. Mit Pig lassen sich ad hoc Schemata auf solchen Daten deklarieren, das Chaos erhält also – wie gehabt – zuerst einmal Struktur. Nun kann man die Daten nach Belieben filtern, zählen, aufbrechen, aggregieren, umformen, joinen und parsen.Hier kommt Pig Latin ins Spiel, die eingebaute deklarative Datenflusssprache. Konstrukte wie Schleifen und Verzweigungen sucht man vergebens. Stattdessen werden mit jedem Befehl Daten umgeformt. In reinem SQL werden Selektionen, Joins, Aggregationen und Operationen auf Daten in einem großen Statement zusammengeschachtelt. In Pig findet das schrittweise, eher prozedural statt. Jedes Kommando beschreibt einen Teilschritt von Anfang zum Ziel. Mit dem abschließenden Befehl zum Berechnen eines Ergebnisses werden alle Teilschritte zusammengenommen und als eine Einheit ausgeführt. Dabei läuft mindestens ein MapReduce-Job ab, oft sind es aber auch mehrere hintereinander. Daten in Pig sind typisiert. Pig Latin bietet neben den einfachen Typen wie int, float, long, double, chararray (String) und bytearray auch verschiedene Containertypen an, die sehr praktisch...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang