Neo4j und Co: Graphendatenbanken

Graphendatenbanken – Start-up-ready
Kommentare

Die Welt der Datenbanken befindet sich im Umbruch, NoSQL hat schon längst den bloßen Status des Buzzwords hinter sich gelassen. Doch auch in diesem Umfeld gibt es unterschiedliche Technologien. Wir möchten Ihnen fünf gute Gründe vorstellen, warum Sie auf Graphendatenbanken setzen sollten.

Die NoSQL-Welt besteht vor allem aus Datenbanken, die Variationen des Schlüssel-Wert-(Key-Value-)Modells darstellen. Im Vergleich zu relationalen Datenbanken haben diese so genannten aggregatorientierten [1] Datenbanken häufig Vorteile, besonders beim Verteilen großer, einfach strukturierter Datenmengen über große Servercluster; ihr Nachteil liegt in der geringen Fähigkeit zur Modellierung komplexerer Domänen. Im NoSQL-Universum finden sich jedoch auch Modelle, die – verglichen mit relationalen Datenbanken – sehr viel mehr Ausdrucksfähigkeit besitzen. Dies sind die Graphendatenbanken – eine Technologie, die die Welt der Datenspeicherung und -verarbeitung gerade im Sturm erobert. Unternehmen wie Cisco, Adobe und die Deutsche Telekom, ganz zu schweigen von zahlreichen innovativen Start-ups, setzen Graphendatenbanken bereits erfolgreich produktiv ein. Graphendatenbanken kommen in Onlinesystemen mit höchsten Anforderungen an Performance und Verfügbarkeit zum Einsatz. Mit ihrem agileren und flexibel anpassbaren Modell erzielen sie oft eine um den Faktor 1 000 bessere Leistung als relationale Datenbanken. Besonders häufig werden sie in Bereichen wie sozialen Netzwerken, Empfehlungserstellung, Betrugserkennung, Netzwerk- und Cloud-Management, Geodaten und MDM eingesetzt.

Wie der Name schon sagt, speichern Graphendatenbanken die Daten in einer Netzstruktur, in der die einzelnen Informationselemente durch Knoten repräsentiert werden, die bestimmte Eigenschaften besitzen. Diese Knoten sind über Beziehungen miteinander verbunden. Beziehungen wiederum können gerichtet und benannt sein und ebenfalls Eigenschaften besitzen. Die Beziehungen innerhalb des Graphen sind ebenso wichtig wie die Knoten, und sie tragen nicht unerheblich dazu bei, dass Graphendatenbanken so faszinierend anders und außergewöhnlich schnell sind. Beziehungen existieren nicht nur auf einer logischen Ebene, sondern stellen eine direkte physische Verbindung zwischen einzelnen Knoten in der Datenbank bereit. Auch auf einem handelsüblichen Computer erfolgt die Navigation von einem zum nächsten Element somit quasi verzögerungsfrei, und selbst die Navigation zwischen Millionen von zusammengehörigen Knoten liegt noch im Millisekundenbereich. Die Beziehungen zwischen den Mitgliedern eines Haushalts und dem Familienauto lassen sich beispielsweise ganz einfach in Form eines Graphen ausdrücken. Beachten Sie dabei, dass die Aussage: „James liebt Mary“ in dem Datenmodell exakt so ausgedrückt wird, wie wir uns das intuitiv vorstellen würden (Abb.  1).

Die fünf wichtigsten Gründe, warum Unternehmen eine Graphendatenbank einsetzen sollten, werden nachfolgend erläutert.

abb1

Abb. 1: James liebt Mary

Grund 1: Leistung

Relationale Datenbanken haben jahrzehntelang ihren Dienst verrichtet. Das ihnen zugrunde liegende Modell stößt aber bei großen Datenvolumen an seine Grenzen, besonders aber auch dann, wenn viele Tabellen verknüpft (bzw. rekursiv verknüpft) werden. Mit zunehmender Größe der Datenmenge dauern Abfragen deutlich länger (ein Faktum, das wir für selbstverständlich hinnehmen, das jedoch für Graphendatenbanken größtenteils nicht gilt). Abfragen von sehr großen Datenmengen bzw. über mehrere Verknüpfungen hinweg sind daher mit OLTP-Systemen oft nicht praktikabel. Dafür müssen zusätzlich dedizierte OLAP-Systeme installiert werden, die über eine massive Denormalisierung der Daten wieder ausreichende Leistung liefern können.

Andere Arten von NoSQL-Datenbanken funktionieren gut für einfache Datenabfragen und eignen sich damit besonders für eng umrissene Einsatzbereiche. Für hochkomplexe Abfragen sind sie jedoch nicht performant einsetzbar, da sie nicht dafür ausgelegt sind, in Echtzeit Beziehungen zwischen Daten herzustellen. Manche NoSQL-Infrastrukturen wie beispielsweise Hadoop können im Batch-Verfahren Beziehungen innerhalb großer Datenmengen herstellen, indem sie (Teil-)Sätze der Massendaten verarbeiten. Dabei kommt üblicherweise ein Map-Reduce-Programm zum Einsatz. Die daraus resultierende Latenzzeit verträgt sich aber weder mit dem OLTP-Ansatz noch mit der geforderten Echtzeitverarbeitung.

Graphendatenbanken leiden nicht unter dem Join-Problem der relationalen Datenbanken, die Beziehungen zur Abfragezeit berechnen, anstelle ihnen zu folgen. Und auch nicht unter dem Berechnungsproblem von aggregatbasierten Datenbanken, bei denen Verbindungen entweder in der Aggregatstruktur vorhanden sein oder durch Map-Reduce-Operationen aus den Massendaten ermittelt werden müssen. Graphendatenbanken sind auf Ad-hoc-Abfragen ausgelegt, nicht auf nachgelagerte Batch-Verarbeitung. Beziehungen werden in der Graphendatenbank zum Einfügezeitpunkt erzeugt und stehen ab dann sofort zur Verfügung. Bei Abfragen geht die Datenbank von Startknoten aus und navigiert den Graphen dann, indem sie den Beziehungen zwischen den Knoten folgt. Da sich die Abfragedauer proportional zur Ergebnismenge und nicht zur Gesamtdatenmenge verhält, ist ein und dieselbe Abfrage ähnlich schnell, unabhängig von der Menge der Daten in der Datenbank. Dies führt zu konstant schnellen Abfragen, Vermeidung von Join-Problemen und nur teilweiser Verarbeitung der totalen Datenmenge – gut für Caching und Skalierbarkeit.

Bei typischen Szenarien eines sozialen Netzwerkes, z. B. dem Auffinden der Freunde von Freunden bis hin zu einer angemessenen Suchtiefe, sind Graphendatenbanken um Größenordnungen schneller als konkurrierende Technologien. Sie ermöglichen Echtzeitabfragen innerhalb von Webanwendungen und damit unmittelbare, präzise und nutzbringende Interaktionen. Dasselbe gilt für Risikoanalyse, Netzwerkfehleranalyse, Routenoptimierung innerhalb eines Netzwerks und vieles mehr.

Grund 2: Agilität

Im Laufe ihrer Betriebszeit unterstützen die in den Datenbanken gehaltenen Daten meist zahlreiche Systeme und Geschäftsprozesse, die sich wiederum stetig weiterentwickeln. Da Graphen komplexe Datenstrukturen unterstützen, ohne Beschränkungen zu unterliegen, die einem starren Schema geschuldet sind, sind sie von Natur aus erweiterungsfähig und bestens für die kontinuierliche Datenevolution geeignet.

Noch besser: Weil die Aktualisierungen und Strukturänderungen, mit denen ein Unternehmen seine Möglichkeiten erweitert, meist additiver Natur sind, lassen sich neue Strukturen in den Graphen einspeisen, ohne dass bestehende Applikationen dadurch nachteilig beeinflusst werden. Existierende Abfragen ignorieren üblicherweise die neuen Strukturen, für deren Beziehungen sie nicht entwickelt wurden. Die daraus folgende Agilität des Datenmodells liegt weit über derjenigen von relationalen Modellen, bei denen größere Änderungen an Applikationen stets mit komplizierten Schemamigrationen einhergehen.

Migration der Daten im Graphen ist natürlich auch möglich, wenn es erforderlich sein sollte. Falls Validierung und Regeln über die Datenstruktur erforderlich sind, können sie in der Anwendung abgebildet und modelliert werden. Damit wird relativ wenig Anwendungslogik in der Datenbank gehalten.

Auch auf der Ebene der Geschäftsprozesse ermöglicht das flexible Datenmodell mehr Agilität. Da sich die unternehmenskritischen Daten ohne weitere Reibungsverluste weiterentwickeln können, lassen sich auch die entscheidungsunterstützenden Prozesse, die auf diese Daten zugreifen, als Abhängigkeits- oder Regelgraphen darstellen, einfach weiterentwickeln und versionieren. Im Allgemeinen werden Geschäftsprozesse sowieso als Graphen modelliert.

Geschäftsprozesse, die unter Verwendung von Graphen modelliert werden (ein offensichtlich „natürliches“ Paradigma), können innerhalb kürzester Zeit überarbeitet und sogar formal verifiziert werden. Indem die Unternehmen strukturiert und gewissenhaft, aber auch schnell und wiederholbar auf Prozessänderungen und Prozessmanagement reagieren können, erhöht sich ihre geschäftliche Agilität.

Ein weiterer wichtiger Aspekt ist die leichte Speicherung von Domänenobjektnetzen in einem Graphen Die von relationalen Datenbanken bekannten Probleme (Object-Relational Impedance Mismatch, N+1 Select, usw.) treten im Graphen nicht auf, da verknüpfte Objektstrukturen direkt auf das Graphenmodell abbildbar sind. Des Weiteren ist die Integration verschiedener Domänenmodelle (z.B. Geo, Social, Produkte, Bewertungen) in einer Datenbank ein mächtiges Mittel, um Einsichten und wertvolle Antworten auf herausfordernde Fragen zu bekommen.

Grund 3: Einfachheit

Die Datenmodellierung für einen Graphen ist kinderleicht. Der Grund ist die Whiteboard-Freundlichkeit von Graphendatenbanken: Man entwirft und diskutiert einfach mit Kollegen oder Domänenexperten die Konzepte und zeichnet sie als Elemente und Pfeile auf ein Whiteboard. Ein Modell, das auf einem Whiteboard gut aussieht, kann meist genau so in die Datenbank übernommen werden. Dies bedeutet, dass die semantische Kluft zwischen den Domänenexperten einerseits und den gespeicherten Daten anderseits deutlich verkleinert wird – im Gegensatz hierzu steht das relationale Modell, bei dem zunächst eine Normalisierung (zur Vermeidung von Redundanzen und Konsistenzfehlern) und anschließend eine Denormalisierung (zur Beschleunigung des Datenzugriffs) notwendig ist bzw. eine Aggregation durchgeführt wird, wenn die Datenmodellierung über die Applikation und ohne Beschränkungen durch die Datenbank erfolgt.

So kann man beispielsweise das komplette Diagramm eines Rechenzentrums und seinen Cloud-Implementierungen anschaulich vor Augen haben (Abb. 2) und ganz konkrete Fragen stellen: Wo liegen die Schwachstellen? Welche Kunden müssten mit einem Serviceausfall rechnen, wenn bestimmte Hardware ausfällt? Welcher Konfigurationsfehler hat dazu geführt, dass zwei gänzlich verschiedene Kundengruppen Serviceausfälle gemeldet haben?

Diese Art der Netzwerkanalyse lässt sich mit Graphendatenbanken problemlos realisieren, so dass man seine Netzwerkinfrastruktur (auf Carrier-Niveau) schnell und flexibel modellieren und managen kann. Die Netzwerkmodellierung ist im Prinzip nichts anderes als die Verbindung von Knoten und Beziehungen und die Identifizierung von Schwachstellen. Um eine gemeinsame Ursache für Problemberichte zu ermitteln, muss man einfach die entsprechenden Pfade bis zu ihrer Quelle zurückverfolgen.

Das graphenorientierte Modell ist aber auch für „normale“ Unternehmensnutzer leicht verständlich. Techniker, die Fehler beheben, Systemarchitekten, die künftige Kapazitäten und Roll-outs planen, oder Streckenplaner, die Logistiknetze optimieren, können das Modell problemlos verstehen und weiterentwickeln, während die strukturelle Integrität des Graphen und der zugehörigen Infrastruktur gewahrt bleibt.

abb2

Abb. 2: Diagramm eines Rechenzentrums inkl. Cloud-Implementierungen

Grund 4: Zuverlässigkeit

Moderne Graphendatenbanken bieten ausgereifte Funktionen für die Erstellung verlässlicher Systeme. So erfüllt die weltweit führende Graphendatenbank Neo4j z. B. die ACID-Anforderungen an Transaktionen und erzielt durch Clustering eine hohe Verfügbarkeit und Durchsatzrate für erfolgreiche Applikationen. Derartige Konfigurationen schließen die Lücke zwischen OLAP und OLTP, da semantisch angereicherte Graphdaten nicht nur für Onlinesysteme, sondern auch für die Langzeitanalyse zur Verfügung stehen. Hierfür können dem Cluster dedizierte OLAP-Server hinzugefügt werden.

Gegenwärtig erleben wir einen Wendepunkt in der Business Intelligence: Hochgradig verfügbare, extrem zuverlässige Low-Latency-Systeme werden zum Fundament für die Echtzeit-BI. Damit wird BI nicht mehr in ein nachgelagertes OLAP-System abgeschoben, sondern unmittelbar in den Clickstream von Anwendungen integriert, wobei Analyse- und Online-Intelligence in ein und denselben Graphen eingebettet werden. Da sowohl die Online- als auch die analytische Intelligenz entscheidend für den Unternehmenserfolg sind, wenden wir das hohe Maß an Systemverlässlichkeit und Datentransparenz auch auf diese beiden Anwendungsfälle an.

 

OLTP und OLAP

Zum tieferen Verständnis: OLTP und OLAP unterscheiden sich tendenziell in der Dauer, die einer Abfrage zugeordnet ist, wobei diese ungefähr mit dem Umfang des traversierten Graphen gleichzusetzen ist. Während OLTP-Abfragen meist von einem einzigen Startknoten ausgehen (z. B. einem Benutzer oder einem Produkt), analysieren OLAP-Abfragen die Daten von einem höheren Niveau aus (z. B. über sämtliche Benutzerverhalten oder alle Produkte einer Kategorie hinweg).

Grund 5: Dateneinsicht

Während viele Nutzer ihre Graphendatenbanken lediglich aus den genannten Gründen verwenden, wollen manche einen tiefergehenden Einblick in die verknüpften Informationen, bei dem die ausgefeilten mathematischen Fundamente der Graphentheorie zum Tragen kommen. Das Datenmodell von Graphendatenbanken baut auf der dreihundertjährigen Arbeit an den theoretischen Grundlagen, an der diskreten Mathematik und an der Erforschung der menschlichen Verhaltensweisen (Soziologie, Psychologie, Anthropologie usw.) auf (Abb. 3).

Die semantisch stark angereicherten, miteinander verknüpften Daten eignen sich selbstverständlich zur schnellen Ausführung klassischer Algorithmen wie der Suche nach dem kürzesten Pfad, der Breiten- und der Tiefensuche.

Analysen wie Ähnlichkeitssuche für Empfehlungsalgorithmen für Produkte, Partner, Freunde oder Medien stellen eine weitere Stärke von Graphendatenbanken dar. Des Weiteren ist Wegefindung und -optimierung (besonders in Zusammenhang mit Geoinformationen) ein verbreiteter Anwendungsfall für Graphendatenbanken.

Zugleich steht der Graph aber auch für die vorhersagende Analyse unter Verwendung von Verfahren aus der Graphentheorie zur Verfügung. So können wir z. B. innerhalb eines bestimmten organisatorischen Rahmenwerks Experten, Kommunikationsengpässe und instabile Managementstrukturen ausfindig machen, indem einige einfache mathematische Grundsätze (z. B. starke/schwache Beziehungen in Triaden, lokale Verbindungen, Gleichgewicht) auf den Graphen angewendet werden.

Noch leistungsfähiger wird diese Analyse, da die genannten Grundsätze bekanntermaßen prädiktive Qualitäten aufweisen, mit denen wir „Was wäre wenn“-Szenarien modellieren und sehen können, wie unsere Organisation (oder das Netzwerk unseres Rechenzentrums oder unsere Marktstellung) auf versuchsweise durchgeführte Änderungen reagiert.

abb3

Abb. 3: Graphenmodell zur Wortfolgehäufigkeit von Jugend Forscht – Projekt „typology.de“

Zusammenfassung

Graphendatenbanken sind zweifellos ein wichtiges Thema des Informationsmanagements. Das ihnen zugrunde liegende Modell bietet eine beeindruckende Aussagekraft, Flexibilität und Dateneinsicht und basiert auf reifen, verlässlichen Technologien. Der Siegeszug der Graphendatenbanken wird sich auch 2013 und danach weiter fortsetzen und den verschiedensten Anwendungen neuen Schub verleihen – von sozialen Netzen und der Empfehlungsermittlung über Risiko- und Portfoliomanagement und -Governance bis hin zu Rechenzentrumsverwaltung, Supply Chain und Logistik – und das ist erst der Anfang.

Für einen praktischen Einstieg in Graphendatenbanken ist neo4j.org als die populärste Open-Source-Graphendatenbank eine hilfreiche Anlaufstelle. Die dort bereitstehenden Informationen und Videos erlauben, schnell selbst aktiv zu werden.

Links & Literatur

[1] http://martinfowler.com/bliki/AggregateOrientedDatabase.html

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -