NebulaGraph 05.03.2020, 09:23 Uhr

Gremlin versus Cypher versus nGQL

Während GQL gerade standardisiert wird, dauert der Wettstreit um die beste Abfragesprache für Graph-Datenbanken weiter an. NebulaGraph hat drei Kandidaten miteinander verglichen.
(Quelle: nebula-graph.io )
Im September 2019 hat das International SQL Standards Committee die Graph Query Language (GQL) als neue Datenbank-Abfragesprache als offizielles ISO-Projekt aufgenommen. GQL ist damit eine kommende internationale Standardsprache für die Abfrage von Eigenschaftsgraphen. Die Vereinheitlichung von GQL braucht allerdings noch etwas Zeit. Die Anbieter der Graph-Datenbank NebulaGraph haben derweil die drei Mainstream-Abfragesprachen Gremlin, Cypher, nGQL untersucht und deren CRUD-Funktionen (Create, Read, Update, Delete) miteinander verglichen.
Gremlin ist eine von Apache TinkerPop entwickelte Abfragesprache, die von vielen Graph-Datenbanklösungen übernommen wurde (Janus-Graph, InfiniteGraph, Cosmos DB, DataStax Enterprise(5.0+), Amazon Neptun). Sie kann entweder deklarativ oder imperativ sein. Gremlin basiert auf Groovy, hat aber viele Sprachvarianten, die es Entwicklern ermöglichen, Gremlin-Abfragen nativ in vielen modernen Programmiersprachen wie Java, JavaScript, Python, Scala, Clojure und Groovy zu schreiben.
Cypher ist eine deklarative Graph-Abfragesprache, die eine aussagekräftige und effiziente Datenabfrage in einem Eigenschaftsdiagramm ermöglicht. Die Sprache wurde mit der Leistungsfähigkeit von SQL entwickelt. Bei den Schlüsselwörtern von Cypher wird nicht zwischen Groß- und Kleinschreibung unterschieden, aber bei Attributen, Labels, Beziehungstypen und Variablen wird die Groß- und Kleinschreibung berücksichtigt. Unterstützte Graph-Datenbanken sind Neo4j, AgensGraph und RedisGraph.
Nebula Graph hat mit nGQL eine eigene Abfragesprache, die eine deklarative, textuelle Abfragesprache wie SQL ist, aber für Graphen konzipiert ist. Die Schlüsselwörter von nGQLunterscheiden Groß- und Kleinschreibung und sie unterstützt die Komposition von Anweisungen, so dass das Einbetten von Anweisungen nicht erforderlich ist.
Den detaillierten Vergleich der drei Abfragesprachen finden Sie auf dieser Seite.


Das könnte Sie auch interessieren