Definition Was ist Apache TinkerPop?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel |

Apache TinkerPop ist ein Open Source Framework für das Graph Computing. Es ermöglicht die Online-Transaktionsverarbeitung der Daten in Graphdatenbanken und graphbasierten Analysesystemen. Zur Datenabfrage der Graphen kommt die Sprache Gremlin zum Einsatz. TinkerPop stellt ein komplettes Ecosystem für das Graph Computing zur Verfügung.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Apache TinkerPop ist ein Graph Computing Framework unter freier Software-Lizenz Apache License 2.0 der Apache Software Foundation. Das Framework stellt ein komplettes Ecosystem zur Verfügung, das aus verschiedenen Technologien und Funktionalitäten für das Graph Computing besteht. Mithilfe des Frameworks lassen sich Transaktionen der Graphdatenbanken und graphbasierten Analysesysteme online verarbeiten.

TinkerPop ist für das Online Transaction Processing (OLTP) und das Online Analytical Processing (OLAP) konzipiert und herstellerunabhängig. Unterstützt ein Datensystem TinkerPop, lassen sich die Daten graphenbasiert modellieren und mit der Graph-Abfragesprache Gremlin analysieren. Für die verschiedenen Anwendungsbereiche existieren zahlreiche Graphensysteme, die „TinkerPop enabled“ sind. Die aktuellste Version von TinkerPop ist die Version 3.4.5 (Stand Anfang 2020).

Grundsätzliches zum Graph Computing und zu Graph-Datenbanken

Graphen bestehen Knoten und Kanten. Die Knoten repräsentieren Objekte wie Personen oder Ereignisse und sind über Kanten mit anderen Knoten verbunden. Die Kanten repräsentieren die Beziehungen zwischen den Knoten. Kanten und Knoten selbst besitzen jeweils beziehungsunabhängige Eigenschaften wie Namen, Timestamps oder Gewichtungen. Die Knoten und Kanten bilden eine zusammenhängende Datenstruktur, die als Graph bezeichnet wird.

Mithilfe von Graphen lassen komplexe Sachverhalte und Abhängigkeiten darstellen. Gegenüber Datenbanken, die aus Tabellen mit Spalten und Zeilen bestehen, verhält sich ein Graph wesentlich flexibler und dynamischer. Mithilfe des Graph Computings lassen sich Graphen modellieren und bearbeiten. Das Graph Computing nutzt spezielle Abfragesprachen und Algorithmen, um Daten aus den Graphen zu extrahieren und zu analysieren.

Grundsätzliches zu OLAP und OLTP

Die Abkürzung OLAP steht für Online Analytical Processing und die Abkürzung OLTP für Online Transaction Processing. Es handelt sich um die Verarbeitung von Transaktionen in Echtzeit. Die Transaktionen werden Beispielsweise auf Datenbanken angewandt. OLAP und OLTP stellen das Gegenstück zur Batch-Verarbeitung von Daten dar. Die Batch-Verarbeitung sammelt zunächst Daten und verarbeitet sie zu einem späteren Zeitpunkt. TinkerPop stellt ein Framework zur Verfügung, das Online Analytical Processing und Online Transaction Processing im Zusammenhang mit Graphdatenbanken und dem Graph Computing ermöglicht. Typische Anwendungen von OLAP und OLTP sind die Online-Analyse von Geschäftsprozessen eines Unternehmens.

TinkerPop und Gremlin

Das Framework TinkerPop spezifiziert mit Gremlin eine eigene Abfragesprache für Graphdatenbanken. Während bei relationalen Datenbanken die Abfragesprache SQL (Structured Query Language) zum Extrahieren, Verändern und Speichern der Daten zum Einsatz kommt, ist Gremlin für die Abfrage und Bearbeitung von Informationen graphbasierter Datenbanken vorgesehen. Gremlin kann Eigenschaften von Knoten und Kanten sowie Beziehungen zwischen Knoten verstehen und bearbeiten.

Die Gremlin Traversal Machine stellt für das Graph Computing vergleichbare Funktionalitäten bereit wie eine Java Virtual Machine für normales Computing. Gremlin ist nach dem Grundsatz „write once, run anywhere“ entwickelt und universell einsetzbar. Die Gremlin Traversal Machine sorgt für die Anpassung und Koordination der Ausführung von Gremlin.

TinkerPop Data System Provider und Query Language Provider

Die Verwendung von TinkerPop durch Data System Provider und Query Language Provider trägt wesentlich zur Verbreitung des Frameworks bei. Während TinkerPop die grundsätzlichen Technologien und Werkzeuge für das Graph Computing bereitstellt, ermöglichen die Provider die Adaption des Frameworks für die verschiedenen Anwendungsbereiche. Data System Provider entwickeln Graphdatenbanken, Graphprozessoren und graphbasierte Analysetools, die den Anwendern TinkerPop-spezifische Funktionen bereitstellen. Bei den Query Language Providern handelt es sich um Entwickler von Abfragesprachen, die über die Gremlin Traversal Machine auf TinkerPop basierende Graphensysteme angewandt werden können.

Anwendungen und Systeme auf Basis von TinkerPop

TinkerPop stellt ein komplettes Ecosystem zur Verfügung, auf dem zahlreiche Anwendungen, Systeme, Sprachen und Projekte externer Unternehmen und Entwickler basieren. Im Folgenden nur ein kurzer Überblick über einige solcher Projekte, Systeme, Sprachen und Anwendungen.

Graphensysteme:

  • Alibaba Graph Database
  • Amazon Neptune
  • ArangoDB
  • Microsoft CosmosDB
  • Hadoop (Giraph)
  • Hadoop (Spark)
  • Huawei Graph Engine Service
  • IBM Graph
  • JanusGraph
  • Neo4j
  • OrientDB
  • Apache S2Graph
  • Titan
  • Unipop

Graph-Abfragesprachen:

  • cypher-for-gremlin
  • Ferma (java/dsl)
  • Goblin (python/dsl)
  • Gremlin.Net
  • gremlin-javascript
  • gremlin-python
  • gremlin-scala (scala/variant)
  • gremlin-objects (java/dsl)
  • kotlin-gremlin-ogm (kotlin/dsl)
  • sparql-gremlin (sparql/distinct)
  • sql-gremlin (sql/distinct)

Language-Treiber:

  • gremlinclient (python)
  • gremlin_client (ruby)
  • gremlin-driver (java)
  • grammes (go)
  • Gremlin.Net (.NET - C#)
  • gremlin-php (php)
  • reactive-gremlin (scala)

(ID:46360812)