Cosmos DBMicrosoft Azure

Azure Cosmos DB – Graph API

Veröffentlicht

Daten in Cosmos DB als Graph abspeichern

Die Speicherung von Daten in relationalen Datenbanksystemen ist weitläufig bekannt und genutzt. Es geht bei den relationalen Datenbanken um die Beziehung zwischen zwei Tabellen (Entitäten) in einer Datenbank. Dies unterstellt allerdings, wenn man einen Schritt weiterdenkt, dass nur fest definierte Entitäten in einer fest definierten Beziehung zu einander stehen können. Jetzt kann es aber die Anforderung sein, dass ich unterschiedliche Entitäten (z.B. eine Person und eine Ort) in unterschiedliche Beziehungen (z.B. „war schon mal da“, „kennt den Ort“, „liegt neben dem anderen Ort“) bringen muss. Dies wäre in einem relationalen Datenbankmodel auch abbildbar, lässt sich allerdings Graph oder auch Diagramm deutlich besser abbilden. In einer Diagramm/Graph Datenbank werden Datenpunkte (Vertex genannt) und Beziehungen (Edge) gespeichert. Was in dem einzelnen Vertex gespeichert und wie die Beziehung zwischen zwei Datenpunkten aussieht kann ganz unterschiedlich sein und auch variieren.

Folgendes Schaubild aus dem Microsoft Docs gibt einen guten Eindruck:

Die Anwendungsfälle für die Speicherung von Daten in einem Diagramm bzw. Graph Modell sind vielfältig. Angefangen von Social Media Applikationen über IoT Szenarien als auch Bewegungs-/Positionsdatenverarbeitung. Jetzt gibt es schon eine Reihe von Guten CRM Systemen, die auf Basis von relationalen Datenbanken gebaut worden sind, doch sehe ich eine Graph Modell als geradezu ideal für einen solchen Use Case.

Graph API abfragen

Jede Abfrage gegen die Graph Datenbank erfolg über eine API – hier kann bei der Cosmos DB Gremlin genutzt werden. Gremlin ist eine OpenSource Abfragesprache (vgl. Wikipedia). Alle Abfragen gegen die Graph API erfolgen nach dem gleichen Schema. Es startet alles mit der Variable g – die für den kompletten Graph steht. Die Abfrage g.V() würde daher alle Vertexe ausgeben. Microsoft hat gerade dazu ein neue Version von den Query Cheat Sheets herausgeben, die alle Abfrage Möglichkeiten, auch gegen die anderen Datenmodelle, kurz beschreibt.

Wer die erstem Schritte mal gehen möchte mit der Graph API finden hier eine gute Step by Step Anleitung

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.