Die besten Grafikdatenbanken

Diagrammdatenbanken, die explizit die Verbindungen zwischen Knoten ausdrücken, sind bei der Analyse von Netzwerken (Computer, Mensch, Geografie oder auf andere Weise) effizienter als relationale Datenbanken. Dies gibt Grafikdatenbanken einen Vorsprung für Anwendungen wie Betrugserkennungs- und Empfehlungssysteme.

Eine der Hauptattraktionen von Graphendatenbanken ist die Fähigkeit, Graphberechnungsalgorithmen auszuführen. Diese werden für Aufgaben verwendet, die sich nicht gut für relationale Datenbanken eignen, z. B. Diagrammsuche, Pfadfindung, Zentralität, PageRank und Community-Erkennung. Diagrammalgorithmen werden hauptsächlich in analytischen (OLAP und HTAP) Diagrammdatenbanken unterstützt, obwohl einige Transaktionsdiagrammdatenbanken (OLTP) wie Neo4j sie unterstützen.

Alle hier diskutierten Graphendatenbanken weisen eine gute horizontale Skalierbarkeit auf. Einige unterstützen auch Lesereplikate, globale Verteilung und automatisches horizontales Sharding.

Amazon Neptun

Amazon Neptune ist ein vollständig verwalteter OLTP-Graphendatenbankdienst (Transaction) mit ACID-Eigenschaften und sofortiger Konsistenz, der im Kern über eine speziell entwickelte, leistungsstarke Graphendatenbank-Engine verfügt, die für das Speichern von Milliarden von Beziehungen und das Abfragen des Graphen innerhalb von Millisekunden optimiert ist Latenz. Neptune unterstützt zwei der beliebtesten Open-Source-Abfragesprachen für Grafiken, Apache TinkerPop Gremlin und W3C SPARQL.

Neptune-Datenbankcluster können in sechs Replikaten Ihrer Daten in drei Verfügbarkeitszonen über bis zu 64 TB Speicher für die automatische Skalierung verfügen. Wenn Sie die Hochverfügbarkeit aktivieren, indem Sie Lesereplikate in zusätzlichen Zonen verwenden. Neptune erkennt Datenbankabstürze automatisch und startet neu - normalerweise innerhalb von 30 Sekunden oder weniger -, ohne dass eine Absturzwiederherstellung durchgeführt oder der Datenbankcache neu erstellt werden muss, da der Cache von den Datenbankprozessen isoliert ist und einen Neustart überstehen kann. Wenn eine gesamte Primärinstanz ausfällt, wird Neptune automatisch auf eine von bis zu 15 Lesereplikaten umgeschaltet. Backups werden kontinuierlich an Amazon S3 gestreamt.

Sie können Neptune-Cluster nach oben und unten skalieren, indem Sie entweder Instanzen ändern oder, um Ausfallzeiten zu vermeiden, eine Instanz der gewünschten Größe hinzufügen und die alte Instanz herunterfahren, sobald eine Kopie der Daten migriert wurde und Sie die neue Instanz zur primären Instanz heraufgestuft haben. Die Instanzgrößen von Neptune VM reichen von db.r4.large (zwei vCPUs und 16 GiB RAM) bis db.r4.8xlarge (32 vCPUs und 244 GiB RAM), wodurch Neptune einen 16x-Dynamikbereich für Schreibvorgänge und einen 256x-Dynamikbereich für erhält Lesevorgänge (Zählen der gelesenen Replikate).

Lesen Sie meine Rezension zu Amazon Neptune.

AnzoGraph

AnzoGraph ist eine massiv parallele speicherinterne OLAP-Diagrammdatenbank, die mit Unternehmensdatenquellen arbeitet und parallele Datenladevorgänge in RDF- und CSV-Formaten ausführt. AnzoGraph kann in Sandboxen mit einem Knoten oder in Clustern mit so vielen Knoten bereitgestellt werden, wie für die Produktion benötigt werden. AnzoGraph verfügt über ACID-Transaktionseigenschaften.

AnzoGraph verwendet W3C-Standard-RDF-Triple- und Quad-Daten sowie SPARQL 1.1-Abfragen. Es unterstützt beschriftete Eigenschaftsdiagramme als Teil des RDF-Speichers, die den vorgeschlagenen RDF * - und SPARQL * -Standards entsprechen, und es verfügt über Erweiterungen zu SPARQL, um Diagrammalgorithmen, Inferenzen, Fensteraggregate, BI-Funktionen und benannte Ansichten zu unterstützen. Die Unterstützung der Neo4j-kompatiblen OpenCypher-Sprache und des Neo4j-Protokolls Bolt ist geplant.

AnzoGraph bietet eine leistungsstarke Ausführung von Grafikabfragen und Skalierbarkeit auf Milliarden und sogar Billionen von Tripeln sowie schnelle parallele Datenladevorgänge, bei denen die Datenbank nicht offline geschaltet werden muss. AnzoGraph-Cluster können unter CentOS, Kubernetes und AWS bereitgestellt werden. Google Cloud Platform- und Azure-Bereitstellungen von AnzoGraph werden normalerweise als Kubernetes-Bereitstellungen behandelt. AnzoGraph hat in einem synthetischen Benchmark die Skalierbarkeit auf 40 Knoten demonstriert.

Lesen Sie meine Rezension zu AnzoGraph.

Neo4j

Neo4j ist eine skalierbare OLTP-Grafikdatenbank mit einigen OLAP-Funktionen. Neo4j war die ursprüngliche Grafikdatenbank, die erstmals 1999 erstellt wurde und weiterhin Marktführer ist.

Während die Open Source Neo4j Community Edition auf einen einzelnen Server beschränkt ist, können Sie mit der Neo4j Enterprise Edition einem Cluster so viele Knoten hinzufügen, wie Sie für Leistungszwecke benötigen.

Jeder Knoten in einem Neo4j- Hochverfügbarkeitscluster enthält die Datenbank und eine Clusterverwaltungskomponente. Auf den Cluster kann über einen Load Balancer zugegriffen werden. Das vollständige Diagramm wird auf jede Instanz des Clusters repliziert, und die Lesekapazität jedes HA-Clusters steigt linear mit der Anzahl der Serverinstanzen. Neo4j kann Zehntausende von Schreibvorgängen pro Sekunde ausführen, während die ACID-Transaktionen vollständig verwaltet werden.

In einem kausalen Neo4j- Cluster wird ein Kerncluster von Lese- / Schreibservern mit einem oder mehreren asynchron aktualisierten Clustern von Lesereplikaten kombiniert. Jeder Anwendung wird eine kausale Konsistenz garantiert, was bedeutet, dass sie zumindest ihre eigenen Schreibvorgänge lesen kann, selbst wenn Hardware und Netzwerke ausfallen. Die gelesenen Replikate in einem kausalen Cluster können geografisch verteilt sein, um die Abfrageleistung für Benutzer in der Nähe der Replikate zu verbessern.

Lesen Sie meine Bewertung zu Neo4j.

TigerGraph

TigerGraph ist eine native parallele HTAP-Diagrammdatenbank in Echtzeit, die für die Bereitstellung in der Cloud oder vor Ort verfügbar ist. TigerGraph unterstützt ACID-Eigenschaften, verfügt über eine integrierte Datenkomprimierung, partitioniert automatisch ein Diagramm innerhalb eines Clusters und behauptet, schneller als die Konkurrenz zu sein. Es wird eine Nachrichtenübermittlungsarchitektur verwendet, die von Natur aus parallel ist und mit der Größe der Daten skaliert.

TigerGraph wurde entwickelt, um Deep-Link-Analysen sowie Online-Transaktionsverarbeitung in Echtzeit und das Laden von Daten mit hohem Datenvolumen durchführen zu können. Unter „Deep Link-Analyse“ versteht TigerGraph das Verfolgen von Beziehungen von einem Scheitelpunkt durch das Diagramm für drei oder mehr Sprünge und das Analysieren der Ergebnisse.

Während mehrere Open-Source-Grafikabfragesprachen wie Cypher, Gremlin und SPARQL weit verbreitet sind, verfügt TigerGraph über eine neue Abfragesprache, GSQL. GSQL kombiniert SQL-ähnliche Abfragesyntax mit Cypher-ähnlicher Diagrammnavigation sowie prozeduraler Programmierung und benutzerdefinierten Funktionen. TigerGraph kann Cypher für Benutzer, die aus einer Neo4j-Datenbank wechseln, in GSQL konvertieren.

TigerGraph verfügt über ein verwaltetes Cloud-Angebot, das sich derzeit in einer eingeschränkten Vorschau befindet. TigerGraph hat eine 6,7-fache Beschleunigung beim Ausführen eines Lese- / Schreibclusters mit acht Computern gezeigt, jedoch nichts über Lesereplikate oder die geografische Verteilung gesagt.

Lesen Sie meine Rezension zu TigerGraph.