everythingpossible - Fotolia

Graphdatenbank Titan in der AWS-Cloud verwenden

Facebook und LinkedIn verwenden Graphdatenbanken. Doch auch andere Firmen sollten sich Datenbanken wie Titan ansehen, die mit AWS zusammenarbeiten.

Titan ist eine Graphdatenbank, die im Zusammenspiel mit mehreren anderen, von AWS unterstützten Datenbanken verwendet werden kann. Viele Anwender denken, dass Graphdatenbanken lediglich für soziale Anwendungen wie Facebook oder LinkedIn von Vorteil sind. Doch Titan beispielsweise, die primäre Datenbank von Amazon Robotics (vorher Kiva Systems), wird für das Management des Verkaufslagers eingesetzt. Und da das Lagersystem von Amazon eines der größten der Welt ist, lohnt sich ein Blick darauf, wie der Handelriese die Technologie einsetzt und wie Unternehmen sie mit bestehenden AWS-Umgebungen nutzen können.

Graphdatenbanken arbeiten mit vielen Anwendungen jenseits von sozialen Apps zusammen, die Listen von „Freunden“ enthalten. Viele Apps können graphenähnliche Beziehungen umfangreich und auf natürliche Weise nutzen. Zum Beispiel sind viele Empfehlungssysteme, die in soziale Anwendungen eingebettet sind, graphbasierte Systeme.

Graphdatenbanken umfassen eine Reihe von Knoten und Kanten. Jeder Knoten repräsentiert eine Einheit, und jede Kante steht für eine Verbindung oder Beziehung zwischen zwei Knoten. Graphdatenbanken, insbesondere Titan, lassen sich in der Regel leicht installieren und integrieren.

Titan ist eine NoSQL-basierte Datenbank. NoSQL ist ein Oberbegriff, der sich auf alle nicht-relationalen Datenbanken bezieht. Innerhalb dieses Oberbegriffs gibt es verschiedene Modelle, jedes mit Stärken und Schwächen. Cassandra, eine weitere NoSQL-Datenbank, arbeitet gut Zeitreihendaten ab, eignet sich allerdings schlecht für Ad-hoc-Abfragen nach Netzwerken verwandter Knoten. In einem solchen Fall ist eine Graphdatenbank die bessere Wahl.

Hardware- und Storage-Komponenten von Titan

Technisch gesehen ist Titan keine Datenbank, sondern eine Client Library, die sich oberhalb der Datenbank befindet. Titan stützt sich auf eine zugrunde liegende Storage Engine wie Cassandra oder Hadoop, um die Daten zu speichern. Außerdem arbeitet es mit einer Indexierungs-Engine wie zum Beispiel Lucene, ElasticSearch oder Solar, um bereichsbasierte Abfragen auszuführen. Hat man diese Technologien in seinem Stack, lässt sich Titan hierauf einrichten. Ein anderes verteiltes Datenbanksystem muss nicht implementiert werden. Das reduziert den Overhead und beschleunigt die Annahme der neuen Technologie.

Titan erfordert darüber hinaus eine Storage Engine, da hier die Knoten und Kanten gespeichert werden. Sowohl Cassandra als auch Apache HBase laufen in der AWS-Cloud und unterstützen Skalierungen im Big-Data-Stil. Amazon Relational Database Service und Aurora sind zwei Storage Engines, die nicht vorhanden sind. Viele Anwender sind aber bereits an AWS mit dem Wunsch herangetreten, dass Aurora Titan unterstützt. Ein Index-Backend wie ElasticSearch, Lucene oder Solr ist optional für reguläre Operationen, aber es ist notwendig, um bereichsbasierte Abfragen ausführen zu können.

Sobald man Titan herunterlädt, erhält man eine Konfiguration, die auf einer eingebetteten Storage Engine und dem Index Backend läuft. Entwickler können Eigenschaften und Semantiken zu den Kanten hinzufügen, zum Beispiel indem sie Richtung (Direction) und Mächtigkeit (Cardinality) hinzufügen. Während Eigenschaften es Entwicklern ermöglichen, nach bestimmten Arten von Beziehungen zu suchen, erlauben Richtung und Mächtigkeit, eine Semantik für die Daten zu erzwingen.

Mit der Titan-Graphdatenbank loslegen

Für Unternehmen, die den Einsatz von Titan in der AWS-Cloud planen, ist es der beste Weg, damit zu beginnen, die wichtigsten Datenstrukturen auf ein Whiteboard zu zeichnen und anschließend das Kommandozeilen-Tool Gremlin zu verwenden, um Knoten und Kanten in dem Diagramm zu erzeugen. Danach kann man mit der Abfrageschnittstelle von Gremlin noch einiges ausprobieren und eventuell feststellen, dass ein graphenorientierter Ansatz die Abfragen vereinfacht.

Mehr zum Thema Datenbanken:

Graphdatenbanken zeigen ihren Nutzen jenseits von Facebook, Twitter und Co.

Panama Papers mit Graphdatenbank und Visualisierungssoftware enthüllt.

Übersicht und Vergleich: Datenbankoptionen für das Internet of Things (IoT).

Microsoft Azure oder AWS: Welche Cloud-Datenbank eignet sich für Sie?

Datenbanken in der Cloud: Darauf sollten Unternehmen achten.

Eine weitere Option ist die Verwendung der integrierten Titan-Datenbank The Graph of the Gods. Damit lädt man eine Datenbank mit einem vollständigen Datensatz von Göttern und Beziehungen und kann anschließend Abfragen in dieser Datenbank ausführen. Zu diesem Zweck startet man Gremlin und führt dann gremlin> GraphOfTheGodsFactory.load(g) aus.

Man kann außerdem alle Arten von Abfragen ausführen, zum Beispiel:

saturn = g.V.has('name','saturn').next(), um einen bestimmten Knoten zu finden oder

saturn.in('father').in('father').name , um Saturns Enkel (Herkules) zu finden oder

hercules.out('father','mother')*.getVertexLabel(), um Herkules Eltern zu finden..

Über den Autor:
Brian Tarbox ist ein Programmierer, der sich in erster Linie mit der Amazon Java-Programmierung beschäftigt. Er ist allerdings auch der Überzeugung, dass Entwickler Polilingual sein und jeweils die beste Programmiersprache einsetzen sollten, um ein Problem zu lösen. Tarbox hat mehrere Dutzend technische Artikel veröffentlicht und ist regelmäßiger Referent auf lokalen Meetups.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Cloud Computing

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close