Horizontal skalierbare GraphQL-Datenbank Dgraph – die verteilte Graph-Datenbank aus der Cloud

Autor / Redakteur: Thomas Joos / Nico Litzel

Die Graphendatenbank Dgraph ist die beliebteste Datenbank ihrer Art auf GitHub. Der Beitrag zeigt, was die Datenbank kann.

Firmen zum Thema

Dgraph ist die beliebteste Open-Source-Graph-Datenbank auf GitHub. Im Artikel zeigen wir die Gründe dafür auf.
Dgraph ist die beliebteste Open-Source-Graph-Datenbank auf GitHub. Im Artikel zeigen wir die Gründe dafür auf.
(Bild: T. Joos)

Bei Dgraph handelt es sich um eine horizontal skalierbare und verteilte GraphQL-Datenbank, die auch auch ACID-Transaktionen bietet. Auch eine konsistente Replikation ist mit GraphQL möglich. Dgraph erlaubt es, viele Abfragen gleichzeitig in hoher Geschwindigkeit durchzuführen, unabhängig von der gespeicherten Datenmenge.

Da es sich bei Dgraph um eine native GraphQL-Datenbank handelt, kann sie die Daten selbstständig auf den Datenträgern so anordnen, dass eine maximale Leistung zur Verfügung steht. Die Abfrage von Dgraph erfolgt mit DgraphQL. Über diesen Weg können auch Daten aus Dgraph in AWS, Azure und Google Cloud Platform ausgelesen werden.

Das sind die Grundlagen von Dgraph

Das Unternehmen Dgraph gibt es seit 2016. Mit der gleichnamigen Datenbank will das Unternehmen für Organisationen die gleiche Technologie zur Verfügung stellen, die auch Google und Facebook nutzen. Das heißt, ein Dgraph-Cluster soll in der Lage sein, Skalierbarkeit und Durchsatz auf Produktionsnivenau zu liefern. Auch bei großen Datenmengen müssen Abfragen in Echtzeit beantwortet werden. Dazu ist es in Dgraph auch möglich, mehrere Terabytes an Daten zu speichern und die gleichen Zugriffszeiten zu erhalten, wie bei geringeren Datenmengen. Der Zugriff muss immer gleich schnell sein. Dazu bietet die Datenbank umfassende Skalierungsmöglichkeiten.

Mittlerweile ist Dgraph die beliebteste Open-Source-Graph-Datenbank auf GitHub. Die Datenbank steht, neben GitHub, auch im Docker Hub zur Verfügung. Auf dem Youtube-Channel von Dgraph finden Anwender zahlreiche Videos, wie Dgraph in der Praxis funktioniert.

Es gibt verschiedene Clients für Dgraph. Hier stehen verschiedene Clients auf Basis von Go, Java, Python, JavaScript und C# zur Verfügung. Es gibt von der Community verschiedene Clients auf Basis von Dart, Rust und Elixir. Die Clients können auch genutzt werden, wenn Dgraph in der Cloud zum Einsatz kommt. Auch in AWS, Azure und GCP sind die Clients verfügbar. Generell stehen in Dgraph alle Tools zur Verfügung, die auch GraphQL unterstützen.

Dgraph installieren und nutzen

Wer mit Dgraph arbeitet, sollte das System als Entwickler oder Anwender zunächst lokal installieren und testen. Für den produktiven Einsatz bietet es sich aber an auf eine Cloud-Lösung zu setzen. Dazu kommen wir in diesem Beitrag noch. Um Dgraph zu installieren, stehen verschiedene Optionen zur Verfügung. Die schnellste Variante, um Dgraph auf Linux oder macOS zu installieren, ist die Ausführung des folgenden Befehls:

curl https://get.dgraph.io -sSf | bash

In den meisten Fällen ist noch „sudo“ für die Ausführung notwendig. Nach der Bestätigung der Open-Source-Lizenzierung mit „Y“ lädt der Assistent die notwendigen Daten herunter und installiert Dgraph auf dem Rechner. Im Grunde genommen handelt es sich nur um eine einzelne Binärdatei.

Installieren von Dgraph auf Linux-Rechnern
Installieren von Dgraph auf Linux-Rechnern
(Bild: T. Joos)

Wer Dgraph auf Basis von Docker betreiben will, kann das Container-Image mit dem folgenden Befehl herunterladen:

docker pull dgraph/dgraph:latest

Dgraph lässt sich auch als Container mit Docker betreiben.
Dgraph lässt sich auch als Container mit Docker betreiben.
(Bild: T. Joos)

Dgraph steht auch über die Cloud zur Verfügung

Neben der Möglichkeit, Dgraph lokal zu installieren, bietet Dgraph Cloud die Möglichkeit, auch eine cloudbasierte Installation zu nutzen. Das ist für den Einsatz mit Sensoren oder anderen Internet-of-Things-Technologien natürlich ideal.

Hier stellt das Unternehmen verschiedene Abonnements zur Verfügung. Neben der kostenlosen Free-Variante lassen sich auch die beiden Abonnements „Shared“ und „Dedicated“ buchen. Die Preise sind auf der Seite zu sehen, sobald eine Anmeldung an Dgraph erfolgt ist. Wer Dgraph dauerhaft in der Cloud einsetzen will, kann auch Instanzen auf Microsoft Azure, AWS oder Google Cloud Platform buchen. Hier kommt in den meisten Fällen der Betrieb über Docker zum Einsatz.

Am Beispiel von AWS ist hier auch noch ein Kubernetes-Cluster notwendig. Zwar lässt sich die Hochverfügbarkeit in Dgraph auch mit Bordmittel über verschiedene Knoten abwickeln, besser ist aber eine Orchestrierung auf Containerbasis und eine damit verbundene Hochverfügbarkeit auf Container-Ebene. Hier kann die Umgebung auch die Instanzen zwischen Worker-Nodes verschieben. Das gewährleistet die maximale Verfügbarkeit der Umgebung und auch deren Leistung für schnelle Abfragen.

Dgraph kann auch in der Cloud genutzt werden, sogar kostenlos.
Dgraph kann auch in der Cloud genutzt werden, sogar kostenlos.
(Bild: T. Joos)

Nach dem Anmelden an der Dgraph-Cloud über die Adresse https://cloud.dgraph.io kann ein Tutorial gestartet werden oder ein neues Backend wird generiert. Die Free-, Shared- und Dedicated-Tiers bieten Zugang zur Cloud-basierten, nativen GraphQL-Datenbank mit einer vollständig verwalteten Lösung. Hier ist keine lokale Installation von Dgraph notwendig. Mit der Taste „Launch“ startet der Assistent eine neue Datenbank, die sofort zur Verfügung steht. Das funktioniert auch mit der kostenlosen Version von Dgraph.

Verwenden der kostenlosen Version von Dgraph in der Cloud
Verwenden der kostenlosen Version von Dgraph in der Cloud
(Bild: T. Joos)

Nachdem die Datenbank erstellt ist, kann über den Webbrowser auf die Umgebung zugegriffen werden, aber auch mit den verschiedenen Clients. Free-Tier soll dabei unterstützen, einen Einstieg in Dgraph zu erhalten. Dabei können nur maximal 25 Gigabyte Daten in der Datenbank gespeichert werden. Sind mehr Daten notwendig, ist es möglich mit „Upgrade“ zum Shared- oder Dedicated-Tier zu wechseln.

Das Shared-Tier erlaubt gemeinsam genutzte Instanzen für kleinere und mittlere Unternehmen. Dedicated-Tier bietet Unternehmen Skalierungsmöglichkeiten für mehrere Terabytes an Daten in einer hochverfügbaren Umgebung, die auch für den produktiven Betrieb geeignet ist.

Fazit

Dgraph gehört sicherlich zu den bekanntesten und wichtigsten Graphen-Datenbanken. Der Einstieg in die Datenbank ist sehr einfach. Wer sich einen ersten Blick verschaffen will, kann mit der kostenlosen Cloud-Version bis zu 25 Gigabyte speichern und sich in das System einarbeiten. Über die Cloud ist dann auch gleich eine Skalierung möglich.

(ID:47782783)