Graphenverarbeitung mit Apache Flink


Details
Bei der Verarbeitung und Analyse von Daten sind häufig nicht die isolierten Datensätze von Interesse, sondern deren inhärente Abhängigkeiten untereinander. Die typischen Beispiele für solche logischen Graphenstrukturen sind die Freundschaftsbeziehungen sozialer Netzwerke, geographische Navigationspfade oder die mathematischen Reputations- bzw. Empfehlungsmodelle für Webseiten oder Produkte. Die Verbindungen zwischen verschiedenen Datensätzen herauszufinden und zu nutzen kann einen nicht zu unterschätzenden Einfluss auf die Komplexität und die Effizienz der Programmlogik haben. Wenn es sich dabei noch um Massendaten handelt, die eine verteilte und effiziente Verarbeitung erfordern, wird dieser negative Effekt sogar noch verstärkt.
Es existieren verschiedene Frameworks um verteilte Recheninstanzen für die Datenverarbeitung zu nutzen und zu orchestrieren. Neben Storm und Spark hat sich Apache Flink als Vertreter dieser Verarbeitungsframeworks etabliert. Der Schwerpunkt von Flink liegt zwar auf der Verarbeitung von kontinuierlichen Datenströmen, aber es stellt mit Gelly auch eine Library für den Umgang mit Graphen zur Verfügung. Dank eines knotenbasierten Verarbeitungsmodells, das sich an dem abstrakten Modell des Bulk Synchronous Parallel Computers (BSP) orientiert, ermöglicht Flink somit einen einfachen und intuitiven Einsatz von Graphenalgorithmen. Neben den wichtigsten Konzepten von Flink zur Verarbeitung von Graphen möchte ich insbesondere anhand eines konkreten Praxisbeispiels zeigen, welche Vorteile die Anwendung eines graphenbasierten Paradigmas mit sich bringt. Da der Kontakt mit graphenähnlichen Datenstrukturen häufiger ist, als es zunächst erscheinen mag, sind sowohl das Paradigma als auch das Framework nicht nur im Kontext von Massendaten interessant.
Referent:
Kristian Kottke ist als Senior Software Engineer bei der iteratec GmbH in verschiedenen Projekten und Technologiestacks unterwegs. Seine Interessen liegen insbesondere in den Bereichen SoftwareArchitekturen sowie Big Data und NoSQL-Technologien.

Graphenverarbeitung mit Apache Flink