ScaDS Logo

CENTER FOR
SCALABLE DATA ANALYTICS
AND ARTIFICIAL INTELLIGENCE

Graph Mining für fortgeschrittene Datenanalysen - Gradoop 8211; Funktionsumfang, Technologie und Erweiterung

Beitragsseiten

Gradoop – Funktionsumfang, Technologie und Erweiterung

Gradoop ist ein System für die fortgeschrittene Analyse von Graphdaten. Mit einer deklarativen Java API können flexibel analytische Skripte erstellt werden. In diesen lassen sich mehrere Graph-Operatoren und -Algorithmen kombinieren. Gradoop ist als Bibliothek der Big Data-Plattform Apache Flink implementiert. Die fundamentalen Konzepte von Plattformen wie Apache Flink oder auch Apache Spark sind verteilte Mengen von Datenobjekten (DataSets) und Transformationen zwischen DataSets (z.B. map und reduce). Ein Analyseprogramm in einem solchen System kann als gerichteter azyklischer Graph (DAG) dargestellt werden, wobei Knoten DataSets und Kanten Transformationen beschreiben. Im Vergleich zu Hadoop MapReduce bieten diese Plattformen eine Vielzahl weiterer Operatoren (z.B. join, groupBy, sort). Zusätzlich können Daten während der kompletten Programmausführung im verteilten Hauptspeicher vorgehalten werden. Gradoop-intern werden Graphdaten sowie deren Operatoren und Algorithmen auf Flink-DataSets und Flink-Transformationen abgebildet. Für die Deklaration analytischer Skripte wurde die DAG-Abstraktion auf die Graphanalyse übertragen, wobei DAG-Knoten Graphdaten und DAG-Kanten Graph-Operatoren bzw. Graph-Algorithmen darstellen. 

Zwar existieren für Big Data-Plattformen auch andere Bibliotheken zur Graphanalyse, jedoch arbeiten diese mit weitaus weniger ausdrucksstarken Graphmodellen.  Als ein Alleinstellungsmerkmal unterstützt das Datenmodell von Gradoop nicht nur einzelne Graphen sondern auch Graphmengen. Es basiert auf dem populären Property Graph Modell, wobei Nutzdaten (Bezeichner und Eigenschaften) nicht nur an Knoten und Kanten, sondern auch an Graphen gespeichert werden können. Das Datenmodell beinhaltet weiterhin verschiedene universell verwendbare Operatoren deren Ein- und Ausgabe entweder Graphen oder Graphmengen sind. Hierdurch können analytische Programme einfach deklariert werden und erfordern, im Gegensatz zu anderen Bibliotheken, keinen Entwicklungsaufwand für Datenmodellierung und Operatorimplementierung. Weiterhin bietet Gradoop zum Datenmodell passende Datenquellen und -senken an, die in Skripten verwendet werden können und zusätzlich Entwicklungsaufwand einsparen. Zudem existiert keine weitere Bibliothek, die von Haus aus Graphmengen unterstützt. Letzteres ist jedoch zwingend notwendig um graphübergreifende Analysen, wie etwa die Suche nach häufigen Mustern, zu ermöglichen.

Sollte ein Anwendungsfall neben den in Gradoop enthaltenen Operatoren zusätzliche Algorithmen erfordern, so bietet Gradoop mit dem generischen Call-Operator eine entsprechende Schnittstelle an. Ein kompatibler Algorithmus muss mit Apache Flink umgesetzt werden und ein passendes Java-Interface implementieren. Um verschiedenste Algorithmen zu unterstützen, bietet Gradoop mehrere solcher Interfaces, die alle Ein- und Ausgabekombinationen abdecken. Ein entsprechend implementierter Algorithmus kann somit nahtlos in Gradoop-Skripte integriert werden.