Graph-Datenbanken – neue Möglichkeiten oder Zeitverschwendung?

27.02.2019

Wenn man von Datenbanken spricht, so versteht man darunter üblicherweise relationale Datenbanken. Diese speichern Daten in Tabellen (mathematisch: „Relationen“) ab und werden mit der Abfragesprache SQL abgefragt. Neben dieser Art von Datenbanken, die heute den Standard bilden, haben sich in den letzten Jahren auch andere Datenbanksysteme entwickelt, die andere Konzepte verwirklichen oder auf bestimmte Anwendungsfälle spezialisiert sind. Solche Datenbanken gehören zur Familie der NoSQL-Datenbanken, wobei das „No“ für „Not only“ steht. Graph-Datenbanken sind Vertreter dieser Gattung. Unsere Abteilung „Forschung und Entwicklung" hat sich diese Vertreter näher angesehen.

Erläuterung

Graphen sind mathematische Modelle, die nur aus Knoten und Kanten bestehen. Mit diesen einfachen Elementen lassen sich komplexe Modelle aufbauen. Die zugrundeliegende mathematische Theorie ist ein relativ junger Zweig der Mathematik, der in den letzten Jahren eine rasante Entwicklung genommen hat. Durch die dort erreichten Fortschritte in der mathematischen Forschung konnten z.B. Algorithmen zur Lösung von Problemen entwickelt werden, die vor Jahren noch als nicht berechenbar galten, weil sie zu komplex waren.

Graphdatenbanken sind Datenbanksysteme, die besonders darauf optimiert sind, solche Modelle zu speichern und auswertbar zu machen. Sie bieten eine Reihe von spezialisierten Algorithmen, um komplizierte Datenbankabfragen zu vereinfachen. So kann man auf einfache Art und Weise Muster finden, kürzeste Pfade zwischen zwei Knoten ermitteln oder Hotspots, also besonders stark vernetzte Regionen im Graph, identifizieren.

Das Modell

Wir wollten wissen, ob sich diese Art von Datenbanken in unserem normalen Arbeitsumfeld sinnvoll einsetzen lassen und haben dazu ein einfaches Modell zur Analyse des Weges von Nutzern durch eine Website erstellt. Jedes Dokument stellt einen Knoten dar, der durch seine URL eindeutig beschrieben ist. Zwischen den Knoten werden Kanten aufgebaut, die den Wechsel von einem Dokument zum anderen beschreiben. Diese Kanten haben als Attributwerte die Session-ID und den Zeitpunkt des zugehörigen Zugriffs und sind darüber eindeutig bestimmt. Das Modell kann graphisch wie folgt dargestellt werden:

20190226_graphdb_beispiel.jpg

 

Der Test

Um das Modell zu testen, haben wir Daten einer großen Website herangezogen. Der analysierte Zeitraum enthielt Zugriffe auf 4,7 Millionen unterschiedliche Dokumente (= Knoten) und hat mehr als 68 Millionen Dokumentübergänge (= Kanten) beinhaltet. Zum Test verwendet wurde Neo4j in der Community Edition, eine weit verbreitete Implementierung aus dem Open-Source-Bereich.

Um die Datenbank zu testen, haben wir drei unterschiedliche Abfolgen von Dokumentzugriffen ausgewählt und anschließend abgefragt, welches das wahrscheinlich nächste Dokument in der Zugriffskette ist. Eine solche Funktionalität könnte man z.B. verwenden, um dem Nutzer weitere Dokumente zu empfehlen. Für die Messungen haben wir sowohl die Anzahl der aufeinanderfolgenden Dokumente (zwischen einem und vier Dokumenten) als auch die auszuwertende Datenmenge (in Schritten von 23 / 45 / 68 Millionen Übergängen) variiert.

Das Ergebnis

Die Auswertung der Messergebnisse zeigt, dass die Dauer der Abfragen linear mit der Menge der Daten und mit der Komplexität der Aufgabe skaliert. Dies ist gerade beim Vergleich der Abfrage von kürzeren und längeren Ketten nicht unbedingt zu erwarten und stellt definitiv einen Vorteil einer Graphdatenbank gegenüber einer Realisierung mit einer relationalen Datenbank dar. Die Antwortzeiten hängen dabei offensichtlich mehr von der Menge der gefundenen Treffer als von der Menge der zu untersuchenden Daten ab. Das bedeutet, dass die Technologie auch dafür geeignet ist, große Datenmengen zu untersuchen (obwohl unsere Testmenge auch nicht wirklich klein war). Insgesamt lag die Abfragegeschwindigkeit großteils unter einer Sekunde. Das ist ein beeindruckender Wert, wenn man bedenkt, dass keinerlei Optimierungen vorgenommen wurden und nur mit einer Community-Edition gearbeitet wurde, die in der Performance beschränkt ist.

Der Ausblick

Bei unseren Tests haben wir nur eine besondere Funktionalität, nämlich die Mustersuche, benutzt, die Graphdatenbanken auszeichnet. Daneben gäbe es noch weitere besondere Funktionalitäten, die einen näheren Blick darauf wert sind. Ein Beispiel ist, damit die Nutzeraktivität zu untersuchen, um Hotspots im Datenbestand, also besonders interessante Datensätze (und deren Veränderung über die Zeit), sichtbar zu machen. Solche Informationen können zu unterschiedlichsten Zwecken (Anpassung der Suchergebnisse, automatische Preisanpassung in Shops oder bei Werbeanzeigen, etc.) Verwendung finden.

Fazit

Graphdatenbanken sind eine interessante Technologie, die eine beeindruckende Geschwindigkeit besitzt und bei großen Datenmengen gut skaliert. Die Technologie eröffnet neue Möglichkeiten, die dazu dienen kann, eine Anwendung wesentlich zu verbessern oder die Rückschlüsse über das Nutzerverhalten zulassen, die bisher nicht möglich waren. Graphdatenbanken können auch neue Geschäftsfelder eröffnen.

Wenn Sie mehr zu diesem Thema wissen möchten, sprechen Sie uns an!

Weitere Meldungen

IIS-Logs mit Filebeat auslesen, in Elasticsearch speichern und mit Kibana visualisieren? OK!

Die Komponente "Filebeat" aus der "Elastic"-Famile ist ein leichtgewichtiges Tool, welche Inhalte aus beliebigen Logdateien an Elasticsearch übermitteln kann. Wir stellen hier ein praktisches Beispiel vor, wie mittels "Filebeat" die Inhalte der Logdateien des Microsoft Internet Information Server (IIS) an Elasticsearch übermittelt und anschließend mit Kibana visualisiert werden können.

IIS-Logs mit Filebeat auslesen...
Aus unserem Forschungs- und Entwicklungsteam – Text to Speech

Zahlen belegen, dass 15 bis 20 Prozent der Weltbevölkerung sprachbasierte Lernschwierigkeiten haben. Um auch Menschen mit Lese- oder Sehvermögenschwierigkeiten den Zugriff auf Text-Content im Internet zu ermöglichen, bietet die „Text to Speech“-Technologie spannende und komfortable Lösungen. Wir, das Forschungs- und Entwicklungsteam (FuE) von Beck.Media.Solutions, haben uns mit den Möglichkeiten befasst und dabei ein spezielles Produkt genauer unter die Lupe genommen: ResponsiveVoice.JS

Aus unserem Forschungs- und En...
PostgreSQL – Eine Alternative zu Microsoft SQL Server?

Die C.H.Beck.Media.Solutions setzt seit Jahren erfolgreich in zahlreichen Projekten den Microsoft SQL Server als Backend-Lösung ein. Dennoch stellt sich die Frage, ob vielleicht auch Alternativen existieren, welche es bzgl. Funktionsumfang & Leistungsverhalten mit dem SQL Server aufnehmen können. In diesem Artikel wollen wir daher das weit verbreitete Datenbankmanagementsystem PostgreSQL etwas genauer untersuchen und es dem RDBMS von Microsoft gegenüberstellen.

PostgreSQL – Eine Alternative ...