Suchen

Neo4j Version 4.0 Graph-Datenbank Neo4j wird noch skalierbarer

| Autor / Redakteur: Michael Matzer / Nico Litzel

Neo4j, ein Anbieter von Graph-Datenbanktools, hat die Version 4.0 seiner Plattform verfügbar gemacht. Zu den Neuerungen gehören eine unbegrenzte Skalierbarkeit, eine mandantenfähige Multidatenbanknutzung, die Integration von Apache Kafka und die besonders für Unternehmen wichtige feingranulare Steuerung von Datensicherheit und Datenschutz.

Firmen zum Thema

Neo4j hat die Version 4.0 seiner Plattform vorgestellt.
Neo4j hat die Version 4.0 seiner Plattform vorgestellt.
(Bild: gemeinfrei / Pixabay )

Neu in Neo4j 4.0 ist die Fähigkeit der Datenbank, auf demselben Cluster mehrere Datenbanken auszuführen. Das soll nicht nur mehr Effizienz im Datenbankbetrieb erlauben, sondern auch mehr Agilität und Sicherheit hinsichtlich der B2B-SaaS-Mandantenfähigkeit, der regulatorischen Konformität und im Entwicklungsbereich. Michael Bachmann vom Neo4j-Partner GraphAware führte als Einsatzbereiche Audits sowie Visualisierungen von Wissens-Graphen an.

Die horizontale Skalierbarkeit wurde erheblich gesteigert. Einerseits lassen sich große Non-Graph-Datenbanken durch Sharding partitionieren und so leichter auf einem Rechnerknoten verwalten. Transaktionen können jedoch keine Shards überspannen, denn sonst würden die ACID-Prinzipien verletzt werden, die beispielsweise für Konsistenz sorgen. Transaktionen werden zudem nur innerhalb eines Shards ausgeführt. Ein Blogbeitrag erläutert das Sharding, wie es in Version 4.0 mit der Data Fabric realisiert ist.

Bildergalerie
Bildergalerie mit 6 Bildern

Andererseits können im föderativen Ansatz des Data Fabric große Graph-Volumina auf ihrer Datenquelle verbleiben, werden aber durch föderierte Abfragen über unverbundene Graphen zugänglich. Das erspart prinzipiell einen erheblichen Aufwand an Datenbewegungen. Queries werden in der Regel mit der Abfragesprache Cypher realisiert, die Neo4j seit Jahren nutzt.

Höhere Abfrageperformance

Die beiden Methoden, die in Version 4.x kombiniert sind, sollen eine höhere Abfrageperformance als bei einer relationalen oder NoSQL-Datenbank liefern. Dies wurde mit dem LDCB-Benchmark für Social Networks gemessen. Neo4j geht ganz weg von der herkömmlichen Abfragesprache SQL und hat Cypher mit seinem numerischen Index gekoppelt. So ist es Neo4j möglich, auch Cypher for Apache Spark (CAPS) zu nutzen. Auf der Lambda-Architektur von Spark werden bevorzugt ETL-Workloads ausgeführt.

Cypher-Abfragen können nun mehrere Graphen überspannen. Damit dies in vertretbarer Dauer erfolgt, werden die Abfragen parallelisiert und/oder verkettet ausgeführt sowie die Ergebnisse aggregiert. Sie lassen sich in Echtzeit analysieren und mit dem neuen Neo4j-Tool Bloom visualisieren. Bloom ist für das Navigieren, Erforschen und Visualisieren eines Graphen ausgelegt, wobei der Aspekt der Kollaboration nicht zu kurz kommt. Für die Visualisierungen lassen sich Stilregeln anwenden.

Bloom ergänzt Neo4j Aura, das nur in der Cloud läuft, und Neo4j Desktop, der auch On-Premises auf Linux und Windows ausgeführt werden kann. „Wir unterstützen Multi-Clouds, denn wir sind hinsichtlich der Provider völlig agnostisch“, sagt CEO Emil Eifrem: „Ob auf Azure, Google oder AWS, ist gleichgültig.“ Seit der Version 3.3 wird Intra-Cluster-Verschlüsselung realisiert, die auf Zertifikaten und dem TLS-Protokoll basiert.

Reaktive Datenbank

Reaktive Systeme werden laut Neo4j als schnell antwortend, elastisch, belastbar und Message-getrieben charakterisiert, damit sie maximale Skalierbarkeit und Leistung liefern können. Damit vor allem Entwickler diesen Zweck unterstützen, ist Neo4j bestrebt, ihnen die volle Kontrolle über die Art und Weise zu geben, wie ihre Applikationen mit der Graph-Datenbank interagieren.

Dazu gehört die Unterstützung von robusten Daten-Pipelines, Streaming-Daten, Machine Learning und mehr. Neo4j unterstützt verschiedene Programmiersprachen wie Java, JavaScript, Spring, .NET und Python. In der neuen Version hat Neo4j auch einen Konnektor zu Apache Kafka.

Im Desktop sollen noch 2020 Entwicklungs-Workflows realisierbar sein. Zeppelin-Notebooks werden bereits unterstützt. Allerdings gibt es einen kleinen Haken: Reaktive Programmierung führe zu einer „reaktiven Architektur“ und erfordere daher einen anderen Programmcode als die Version 3.x.

Neue Sicherheitsarchitektur

In der neuen Version wird Entwicklern und Admins mehr Kontrolle über die Zugriffsrechte in die Hand gegeben. Diese Rechte sind nun rollenbasiert, lassen sich also über die Directorys wie etwa MS Active Directory oder LDAP verwalten. Die feingranulare Sicherheitskontrollen sollen sicherstellen, dass nur befugte Nutzer Zugang zu vertraulichen Daten erhalten. Die neue Fähigkeit soll neue Anwendungsbereiche wie etwa in der Verwaltung von Patienten in der medizinischen Forschung erlauben.

Machine Learning und KI

Cypher, Machine Learning und Deep Learning (KI) sollen zunehmend die alte Abfragesprache SQL in Neo4j ablösen. Zu den Anwendungsfällen gehören PageRanks, NLP, Text-Ranking, Banking und viele mehr. Seit kurzem ist die Graph Data Science Library GDS 1.0 im Download Center verfügbar, ebenso Neo4j Graph Algorithms 3.5.14. Die Neo4j-Expertin Ljubica Lazarevic, zuständig für Developer Relations, gibt an, dass die GDS über 40 Algorithmen in fünf Kategorien zur Verfügung stelle, ebenso „Graph-Rezepte“ und „Analytikprojektionen“. Sie erwähnt zudem, dass GDS nur auf Neo4j laufe. Auch gebe es noch keine Unterstützung für GPUs, wohl aber für Docker.

Editionen

Hinsichtlich einer Subskription kann der Kunde weiterhin unter der Community Edition, der Enterprise Edition und Neo4j Aura (für die Cloud) wählen. Eine detaillierte Tabelle vergleicht die drei Editionen hinsichtlich ihres Funktionsumfangs. So sind etwa die Community- und die Aura-Edition auf einen Graph-Umfang von 34 Milliarden Nodes begrenzt, die Enterprise Edition aber nicht. Es dürfte nicht überraschen, dass auch alle neuen Leistungsmerkmale der Version 4.0 nur in der Enterprise Edition zu finden sind.

(ID:46463155)

Über den Autor