I migliori database grafici

I database a grafo, che esprimono esplicitamente le connessioni tra i nodi, sono più efficienti nell'analisi delle reti (computer, umane, geografiche o altro) rispetto ai database relazionali. Ciò fornisce ai database a grafo un vantaggio per applicazioni come il rilevamento delle frodi e i sistemi di raccomandazione.

Uno dei principali vantaggi dei database a grafo è la capacità di eseguire algoritmi computazionali su grafo. Vengono utilizzati per attività che non si prestano bene ai database relazionali, come la ricerca di grafici, il pathfinding, la centralità, il PageRank e il rilevamento della comunità. Gli algoritmi di grafi sono principalmente supportati nei database di grafi analitici (OLAP e HTAP), sebbene alcuni database di grafi transazionali (OLTP) come Neo4j li supportino.

Tutti i database grafici discussi qui hanno una buona scalabilità orizzontale. Alcuni supportano anche repliche di lettura, distribuzione globale e partizionamento orizzontale automatico.

Amazon Nettuno

Amazon Neptune è un servizio di database a grafo transazionale (OLTP) completamente gestito con proprietà ACID e consistenza immediata, che ha come base un motore di database a grafi appositamente costruito e ad alte prestazioni ottimizzato per memorizzare miliardi di relazioni e interrogare il grafico con millisecondi latenza. Neptune supporta due dei più popolari linguaggi di query a grafo open source, Apache TinkerPop Gremlin e W3C SPARQL.

I cluster di database Neptune possono avere fino a 64 TB di archiviazione con scalabilità automatica in sei repliche dei dati su tre zone di disponibilità e più se si abilita l'alta disponibilità utilizzando repliche di lettura in zone aggiuntive. Neptune rileva automaticamente gli arresti anomali del database e si riavvia, in genere in 30 secondi o meno, senza la necessità di eseguire un ripristino di arresto anomalo o di ricostruire la cache del database, poiché la cache è isolata dai processi del database e può sopravvivere a un riavvio. Se un'intera istanza primaria non riesce, Neptune eseguirà automaticamente il failover su una delle massimo 15 repliche di lettura. I backup vengono continuamente trasmessi in streaming su Amazon S3.

Puoi scalare i cluster di Neptune su e giù modificando le istanze o, per evitare tempi di inattività, aggiungendo un'istanza della dimensione desiderata e chiudendo la vecchia istanza una volta che una copia dei dati è stata migrata e hai promosso la nuova istanza a primaria. Le dimensioni delle istanze VM di Neptune vanno da db.r4.large (due vCPU e 16 GiB di RAM) a db.r4.8xlarge (32 vCPU e 244 GiB di RAM), offrendo a Neptune un intervallo dinamico di 16x per le scritture e un intervallo dinamico di 256x per reads (contando le repliche di lettura).

Leggi la mia recensione di Amazon Neptune.

AnzoGraph

AnzoGraph è un database grafico OLAP in memoria massicciamente parallelo che funziona con origini dati aziendali ed esegue carichi di dati paralleli di formati RDF e CSV. AnzoGraph può essere distribuito in sandbox a nodo singolo o in cluster con tutti i nodi necessari per la produzione. AnzoGraph ha proprietà di transazione ACID.

AnzoGraph utilizza dati RDF tripli e quadrupli standard W3C e query SPARQL 1.1. Supporta grafici di proprietà etichettati come parte dell'archivio RDF, conforme agli standard RDF * e SPARQL * proposti, e ha estensioni a SPARQL per supportare algoritmi di grafi, inferenze, aggregazioni di finestre, funzioni BI e viste con nome. È previsto il supporto per il linguaggio OpenCypher compatibile con Neo4j e il protocollo Neo4j Bolt.

AnzoGraph offre esecuzione di query con grafici ad alte prestazioni e scalabilità fino a miliardi e persino trilioni di triple, oltre a veloci caricamenti paralleli di dati che non richiedono di portare il database offline. I cluster AnzoGraph possono essere distribuiti su CentOS, Kubernetes e AWS. Le distribuzioni di Google Cloud Platform e Azure di AnzoGraph vengono generalmente trattate come distribuzioni Kubernetes. AnzoGraph ha dimostrato la scalabilità a 40 nodi in un benchmark sintetico.

Leggi la mia recensione di AnzoGraph.

Neo4j

Neo4j è un database grafico OLTP scalabile con alcune funzionalità OLAP. Neo4j era il database grafico originale, creato per la prima volta nel 1999, e continua ad essere un leader di mercato.

Mentre la Neo4j Community Edition open source è limitata a un singolo server, la Neo4j Enterprise Edition ti consente di aggiungere tutti i nodi di cui hai bisogno a un cluster per scopi di prestazioni.

Ogni nodo in un cluster ad alta disponibilità Neo4j contiene il database e un componente di gestione del cluster, ed è possibile accedere al cluster tramite un bilanciatore del carico. Il grafico completo viene replicato su ogni istanza del cluster e la capacità di lettura di ogni cluster HA aumenta linearmente con il numero di istanze del server. Neo4j può eseguire il commit di decine di migliaia di scritture al secondo mantenendo le transazioni completamente ACID.

In un cluster causale Neo4j , un cluster principale di server di lettura / scrittura è combinato con uno o più cluster aggiornati in modo asincrono di repliche di lettura. A qualsiasi applicazione è garantita la coerenza causale, il che significa che è garantita la lettura almeno delle proprie scritture, anche quando l'hardware e le reti si guastano. Le repliche di lettura in un cluster causale possono essere distribuite geograficamente per migliorare le prestazioni delle query per gli utenti vicini alle repliche.

Leggi la mia recensione di Neo4j.

TigerGraph

TigerGraph è un database grafico HTAP parallelo nativo in tempo reale disponibile per la distribuzione nel cloud o in locale. TigerGraph supporta le proprietà ACID, ha la compressione dei dati incorporata, partiziona automaticamente un grafico all'interno di un cluster e afferma di essere più veloce della concorrenza. Utilizza un'architettura di passaggio dei messaggi che è intrinsecamente parallela in un modo che si adatta alle dimensioni dei dati.

TigerGraph è stato progettato per essere in grado di eseguire analisi di deep link, nonché l'elaborazione delle transazioni online in tempo reale e il caricamento di grandi volumi di dati. Con "analisi dei collegamenti profondi", TigerGraph significa seguire le relazioni da un vertice attraverso il grafico per tre o più salti e analizzare i risultati.

Sebbene diversi linguaggi di query a grafo open source siano stati ampiamente adottati, come Cypher, Gremlin e SPARQL, TigerGraph ha un nuovo linguaggio di query, GSQL. GSQL combina la sintassi delle query simile a SQL con la navigazione del grafico simile a Cypher, oltre alla programmazione procedurale e alle funzioni definite dall'utente. TigerGraph può convertire Cypher in GSQL per le persone che si spostano da un database Neo4j.

TigerGraph ha un'offerta cloud gestita che è attualmente in anteprima limitata. TigerGraph ha dimostrato una velocità di 6,7 volte durante l'esecuzione di un cluster di lettura / scrittura con otto macchine, ma non ha detto nulla sulle repliche di lettura o sulla distribuzione geografica.

Leggi la mia recensione di TigerGraph.