EP Basics Heterogene Daten leichter mit Graphdatenbanken verknüpfen

Ein Gastbeitrag von Dirk Möller*

Anbieter zum Thema

Viele heterogene Daten lassen sich mit Graphdatenbanken miteinander verknüpfen. Der Beitrag zeigt, wie sie funktionieren, warum sie bei künstlicher Intelligenz eingesetzt werden und bei welchen Anwendungen sie punkten.

Heterogene Daten: Mit Graphdatenbanken lassen sich Daten miteinander verknüpfen. Auch bei der künstilchen Intelligenz helfen die Graphdatenbanken.
Heterogene Daten: Mit Graphdatenbanken lassen sich Daten miteinander verknüpfen. Auch bei der künstilchen Intelligenz helfen die Graphdatenbanken.
(Bild: (c) Alex - stock.adobe.com)

Graphdatenbanken stellen neben den sogenannten SQL- und NoSQL-Datenbanken (Not only SQL) eine eigene Kategorie dar und folgen einem nicht-relationalen Ansatz. Statt Daten in einem starren Tabellenschema zu speichern und Verknüpfungen über aufwändige Operationen (Joins) zu berechnen, werden Daten sowie ihre Beziehungen in Form eines Graphen abgelegt. Damit brechen sie mit der langen Tradition von relationalen Datenbankmanagementsystemen oder RDBMS (Relational Database Management System), Bild 1.

Ein Datenmodell aus Knoten und Kanten

Bild 1: Vergleich des starren Tabellenschema von relationalen Datenbanken mit dem flexiblen Datenmodell in Graphdatenbanken.
Bild 1: Vergleich des starren Tabellenschema von relationalen Datenbanken mit dem flexiblen Datenmodell in Graphdatenbanken.
(Bild: Neo4j)

Bild 2: In Graphdatenbanken werden Daten als Knoten und Datenbeziehungen als Kanten gespeichert.
Bild 2: In Graphdatenbanken werden Daten als Knoten und Datenbeziehungen als Kanten gespeichert.
(Bild: Neo4j)

Wie sieht ein solches Datenmodell aus? Als Graph bezeichnet man allgemein eine abstrakte Struktur, die eine Menge von Objekten sowie die bestehenden Verbindungen zwischen diesen Objekten repräsentiert. In der Mathematik werden Objekte als Knoten und Verbindungen als Kanten dargestellt. Sowohl Knoten als auch Kanten können Eigenschaften, sogenannte Properties besitzen (Labeled-Property-Graph). Im Resource Description Framework (RDF) besteht ein Graph aus Triplen (Knoten-Kante-Knoten).

Es klingt auf dem ersten Blick kompliziert. Doch jeder hat schon einmal auf einem Whiteboard geschrieben oder seinen Familienstammbaum nachgezeichnet. Werden zum Beispiel Personen als Kreise (Knoten) aufgemalt, die über Linien (Kanten) miteinander verbunden sind, ist das ein Graph. Jeder Kreis kann mit einem Namen, jede Linie mit einem Verwandtschaftsgrad (zum Beispiel verheiratet) versehen werden. Das sehr einfache Modell lässt sich auf unterschiedliche Datensätze übertragen: „Kunde A kauft Produkt B“, „Felge X passt auf Autotyp Y“ oder „die A9 verbindet München mit Berlin“, Bild 2.

Das bietet die Graphtechik

Bild 3: Live-Demo in einem Graphen zur Skalierung mit über 200 Milliarden Knoten und mehr als eine Billion Beziehungen.
Bild 3: Live-Demo in einem Graphen zur Skalierung mit über 200 Milliarden Knoten und mehr als eine Billion Beziehungen.
(Bild: Neo4j)

Bild 4: Darstellung von Daten im Graphen mit dem Visualisierungstool Neo4j Bloom.
Bild 4: Darstellung von Daten im Graphen mit dem Visualisierungstool Neo4j Bloom.
(Bild: Neo4j)

Bild 5: Unterschiedliche Graphdatenbanken verwenden unterschiedliche Abfragesprachen. Cypher verwendet eine vereinfachte Syntax und erlaubt Abragen in natürlicher Sprache.
Bild 5: Unterschiedliche Graphdatenbanken verwenden unterschiedliche Abfragesprachen. Cypher verwendet eine vereinfachte Syntax und erlaubt Abragen in natürlicher Sprache.
(Bild: Neo4j)

In Graphdatenbanken sind Beziehungen zwischen Daten nicht mehr bloße Metadaten, sondern stehen im Zentrum des Modells. Sie werden als eigene Entitäten behandelt, die sich abfragen und für Analysen heranziehen lassen. Damit eignet sich Graphtechnik, um heterogene Informationen über mehrere Systeme hinweg zu vernetzen und in einen semantischen Kontext zu stellen.

Das Graph-Datenmodell bietet gegenüber anderen Datenbanken einige Vorteile:

  • Echtzeit-Performance: Relationale Datenbanken stoßen bei komplexen Abfragen von großen Datenmengen schnell an ihre Grenzen. In Graphdatenbanken hängt die Abfragegeschwindigkeit nicht länger von der Komplexität oder Gesamtmenge des Datensatzes ab. Entscheidend ist die Anzahl der für eine gewünschte Abfrage relevanten Beziehungen. Statt Tabelle um Tabelle aufwändig zu vergleichen, springt man im Graphen von einem beliebigen Ausgangspunkt aus entlang der Kanten von Knoten zu Knoten (Traversieren). Graphdatenbanken schaffen mehrere Millionen Sprünge (Hops) pro Sekunde und sind dadurch im Durchschnitt 1.000-mal schneller als relationale Datenbanken. Responsezeiten bewegen sich bei wenigen Millisekunden.
  • Unbegrenzte Skalierbarkeit: Um die Abfrageperformance selbst bei wachsender Datenmenge hochzuhalten, sind Graphdatenbanken in der Regel horizontal skalierbar und bauen auf einer leistungsstarken und ACID-konformen Cluster-Architektur auf. Mit der Graphdatenbank Neo4j lassen sich analytische Workloads mit einem Single-Core-Server und beliebig vielen Read-Replicas unbegrenzt skalieren, Bild 3. Via Sharding wird der Datenbestand in mehrere Teile aufgeteilt (partioniert) – je nach Geschäftsanforderung, Geografie oder Latenzzeit. Mit Neo4j Fabric lassen sich die einzelne Abfragen wieder zusammenführen und als Ganzes analysieren (Federation). Das garantiert selbst bei Milliarden von Knoten und Billionen von Beziehungen die Ausführung von Transaktionen, Datenintegrität und hohe Performance.
  • Hohe Agilität: Statt eines rigiden, im Voraus fixierten Datenmodells sind Graphdatenbanken auf Grund des Knoten-Kanten-Prinzips hoch agil. Neue Informationen und Strukturen lassen sich in den Graphen integrieren, Labels und Properties von Knoten flexibel ändern, hinzufügen oder entfernen. Mit einigen Einschränkungen ist das auch für Kanten möglich. Anders als bei relationalen Datenbanken ist bei solchen Änderungen keine aufwendige Anpassung des Datenbankschemas oder eine Migration von Altdaten nötig. Laufende Applikationen werden nicht beeinflusst. Der Graph ist damit der wachsenden Dynamik rund um Big Data gewachsen und kann sich schneller verändernden Geschäftsanforderungen anpassen.
  • Visualisierung und einfache Abfragesprache: Dank der intuitiven Darstellung in Knoten und Kanten werden selbst komplexe Netzwerke und Strukturen im Graphen realitätsnah und nachvollziehbar abgebildet, Bild 4. Visualisierungs-Tools wie Neo4j Bloom unterstützen bei der Aggregation, Clusterfindung, Geo-Darstellung oder der Vergleichbarkeit über verschiedene Datensets. Anwender können im Graphen frei in alle Richtungen navigieren, Muster und Zusammenhänge aufdecken, Farbschema anlegen, relevante Ausschnitte heranzoomen oder einzelne Knoten fixieren. Technisches Know-how oder Kenntnisse einer Programmiersprache sind dabei kaum nötig. Eine einheitlich definierte Abfragesprache für Graphdatenbanken gibt es bislang noch nicht. 2019 stimmte das ISO der Einführung von GQL (Graph Query Language) als internationalen Standard für eine deklarative Abfragesprache von Property Graph Datenbanken zu. Noch nutzen unterschiedliche Graphdatenbanken unterschiedliche Abfragesprachen. Dazu gehören Gremlin, SPARQL, TigerGraph (GSQL) und AQL (ArangoDB). Zu den bekannten gehört Cypher, die über eine vereinfachte Syntax (ASCII-Art) verfügt und Abfragen in natürlicher Sprache erlaubt. Dabei ist sie kompakt und erfordert 10-mal weniger Code als SQL, Bild 5.

Graph Database-as-a-Service (GDBaaS)

Bild 6: Community-Detection-Algorithmen identifizieren auffällige Cluster innerhalb von großen Datenmengen.
Bild 6: Community-Detection-Algorithmen identifizieren auffällige Cluster innerhalb von großen Datenmengen.
(Bild: Neo4j)

Anbieter stellen ihre Graphdatenbanken mittlerweile als Cloud-Service zur Verfügung. Darunter Neo4j AuraDB, eine vollständig verwaltete native Cloud-Graphdatenbank. Der Weg in die Cloud bietet mehrere Vorteile: So entfällt die Verwaltung der Infrastruktur. Gleichzeitig lassen sich graphbasierte Anwendungen schneller und kosteneffizienter entwickeln.

Um Server-, Netzwerk- und Speicherinfrastruktur zu managen, kommen Standard-Container-Orchestrierungssysteme wie Kubernetes zum Einsatz. Sie verteilen die Prozesse so auf die vorhandenen Server, dass die Arbeitslasten und Services jederzeit über die nötigen Ressourcen zur Ausführung verfügen. Damit steigt die Verfügbarkeit und Zuverlässigkeit von Graphdatenbanken.

Neben der Datenbank selbst umfasst die Graphtechechnik das Feld der Graph Data Science für Predictive Analytics und Machine Learning. Die Daten-Analytik, einschließlich des Trainings von ML-Modellen, findet direkt im Graphen statt. Zeitaufwendiges Extrahieren und Modellieren von Daten entfällt.

Bei der Analyse kommen skalierbare Graph-Algorithmen zum Einsatz, die sich in fünf Kategorien einteilen lassen: Pathfinding, Centrality, Community Detection, Link Prediction und Similarity, Bild 6. Die Algorithmen sind teilweise direkt in die Graphdatenbank integriert (Graph Data Science Library) und finden automatisch auffällige Cluster oder ermitteln den kürzesten Weg zwischen zwei Knoten.

Am wohl bekanntesten ist der PageRank-Algorithmus, der im Graphen Knoten anzeigt, die mit besonders vielen anderen (ebenfalls wichtigen) Knoten verknüpft sind. In der Smart Factory können Hersteller im Rahmen des Qualitätsmanagements die Fehlerquelle von defekten Produkten und Bauteilen ausfindig machen.

Prädiktive Parameter für Machine-Learning-Modelle

Graph-Algorithmen identifizieren darüber hinaus prädiktive Parameter, die als Grundlage von Machine-Learning-Modellen dienen. Findet ein Algorithmus beispielsweise ein für einen Produktfehler charakteristisches Merkmal, lässt sich dieses als Knoten oder Kante im Graphen speichern.

Dazu werden die Merkmale zunächst validiert und anschließend in ein Modell zur Klassifizierung überführt. Es entstehen sogenannte Graph Features, die zusätzliche Regeln und Suchkriterien festlegen und bei allen weiteren Abfragen im Graphen in die Analyse einfließen – ein Ausgangspunkt für Deep Learning. Damit zählen Graphdatenbanken zu den Basistechnologien für KI-Anwendungen.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

10 Anwendungsgebiete von Graphdatenbanken

Zu den Top zehn Anwendungsbereichen für Graphtechnik zählen:

  • Betrugsaufdeckung: Die Analyse komplexer Netzwerke liefert Hinweise auf verdächtige Akteure (Cluster), um kriminelle Banden und Betrugsversuche präventiv aufzudecken.
  • Recommendation Engines: Graphbasierte Empfehlungsdienste verknüpfen unterschiedliche Daten entlang der Customer/User Journey, um das Serviceerlebnis zu verbessern.
  • Knowledge Graphen: Semantische Wissensdatenbanken, wie in der Forschung, ermöglichen es, Informationen innerhalb ihres Kontextes zu evaluieren und fundierte Entscheidungen zu treffen.
  • Geldwäsche bekämpfen: Anti-Money-Laundering- (AML-)Anwendungen unterstützen Compliance-Manager, die strengen Auflagen beim Monitoring und der Analyse von Transaktionen zu erfüllen.
  • Stammdatenmanagement (MDM): Graphdatenbanken brechen Datensilos auf und schaffen eine konsistente Sicht auf komplexe und hierarchische Datensätze über das ganze Unternehmen hinweg.
  • Netzwerk und IT Operations- Management: Graphdatenbanken vereinfachen Workflows beispielsweise in der Telekommunikation, der Impact-Analyse sowie bei der Verwaltung von Cloud-Plattformen, Rechenzentren und IT-Assets.
  • Data Lineage: Im Graphen lassen sich Daten über unterschiedliche Systeme bis zu ihrem Ursprung zurückverfolgen, um Anforderung rund um Data Governance (DSGVO, KYC) zu erfüllen.
  • Identity und Access Management (IAM): Graphtechnik garantiert feingranulare Sicherheit bei der Verwaltung von Benutzerkonten und Ressourcen sowie den damit verbundenen Zugriffsberechtigungen.
  • Bill of Materials (BOM): Komponenten von komplexen Produkten lassen sich im Graphmodell detailliert und transparent aufschlüsseln (Zulieferer, Verfügbarkeit, Kosten oder Lebensdauer).

Im Fokus: Graphtechnik für das IoT

Bild 7: Beispiel der Graphtechnik in der Smart Factory.
Bild 7: Beispiel der Graphtechnik in der Smart Factory.
(Bild: Neo4j)

Einsatzszenarien von Graphdatenbanken finden sich entlang des ganzen Produktlebenszyklus: Vom Produktdesign über die Fertigung und Qualitätskontrolle bis hin zur Supply Chain und Aftermarket Services (Biild 7). Dank der 360-Grad-Ansicht eines Produkts können Entwickler schnell einsehen, wie sich Konstruktionsänderung einer Komponente auf das Gesamtsystem auswirken. Mit entsprechenden Analytikverfahren lassen sich Schleifen (Loops) im Systemdesign identifizieren, Cluster erkennen, die ideale Sequenz von Prozessen definieren und die Projektplanung optimieren.

In der Prozessindustrie ermöglicht die Vernetzung von Produktionsplanungsdaten eine Punktlandung bei der Ressourcenallokation in Anlagen. Dabei können die komplexen Abhängigkeiten zwischen den Fertigungsschritten modelliert und für jede einzelne Produktlinie in eine Kosten-Nutzen-Rechnung überführt werden. Im Rahmen von Predictive Maintenance können Hersteller, Produkt- und Sensor-Daten beispielsweise Druck und Temperatur verknüpfen und mittels Graph-Analytik Störungen vorhersagen, entsprechende Instandhaltungsmaßnahmen initiieren und Ausfälle verhindern.

Lesen Sie außerdem

* Dirk Möller ist Area Director of Sales CEMEA bei Neo4j. Er ist seit über 20 Jahren in der IT-Branche. Seine Stationen waren leitende Positionen bei Symantec, MongoDB und Couchbase. Als Area Director of Sales CEMEA bei Neo4j unterstützt er mit neuen Datenbank-Anwendungen, um einen Mehrwert aus den Daten zu gewinnen.

(ID:48526207)