MySQL und Hadoop und CSV-Dateien
Kommentare

Der Einsatz einer MySQL parallel zu Apache Hadoop ist nicht zwingend ungewöhnlich, sei es dass man gerade von einem System auf das andere wechselt oder für verschiedene Aufgaben auf die Stärken einer

Der Einsatz einer MySQL parallel zu Apache Hadoop ist nicht zwingend ungewöhnlich, sei es dass man gerade von einem System auf das andere wechselt oder für verschiedene Aufgaben auf die Stärken einer bestimmten Lösung angewiesen ist. Problematisch kann es dann werden, wenn eine gemeinsame Abfrage von Daten beider Systeme erforderlich wird – genau diesem Problem geht Peter Romianowski heute in seinem Blog nach und findet mit zwei User-defined Functions für den Zugriff auf CSV-Dateien in MySQL eine performante Lösung.

Im konkreten Beispiel geht es darum, dass in MySQL eine Tabelle mit Kundendaten angelegt ist und Hadoop weitere Angaben zu einzelnen Bestellungen der Kunden verarbeitet werden. Spannend wird es dann, wenn eine Liste derjenigen Kunden ausgegeben werden soll, die wenigstens eine Bestellung aufgegeben haben. Naheliegende Lösung wäre hier ein Map-Reduce-Job, dessen Ergebnis anschließend in eine Tabelle geschrieben wird, deren Inhalt sich schließlich per SQL auslesen ließe, was – wie man es auch anstellt – ein ziemlicher Performance-Fresser sein kann.

Peters Lösung sieht vor, die Ergebnisse des Map-Reduce in eine sortierte CSV-Datei zu schreiben, deren Inhalte anschließen über eine Binary Search ausgelesen werden können. Wie das ganze im Detail aussieht, wie sich mit CSV bis zu 4x schneller finden lässt und kostbarer Platz im RAM gespart wird, lesen Sie in Peters Blog.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -