Sia ArangoDB e Neo4j sono in grado di fare il lavoro che avete in mente. Entrambi i progetti hanno una documentazione straordinaria e ottenere risposte per entrambi è facile. Entrambi possono essere utilizzati da Java (anche se Neo4j can be embedded).
Una cosa che potrebbe aiutare il processo decisionale è riconoscere che molti database NoSQL risolvono un problema molto più ristretto di quanto la gente apprezzi.
Sarah Mei ha scritto un epic blog post about MongoDB, utilizzando un esempio con alcuni dati sugli spettacoli TV. Dal sommario:
Il caso d'uso ideale di MongoDB è ancora più stretto dei nostri dati televisivi. L'unica cosa buona è la memorizzazione di pezzi arbitrari di JSON.
ritengo che Neo4j risolve un problema simile stretta, come dimostra come è comune utilizzare Neo4j alongsidesome other archivio dati.
Non so che la memorizzazione di immagini o dati video è una grande idea in ArangoDB o Neo4j.Vorrei cercare di salvarlo su un altro server (come S3) e salvare l'URL in quel file in Neo4j/Arango.
Mentre è vero che it is possible to create queries that only a graph database can answer, le prestazioni del database grafico su una determinata query varies wildly e possono darti dei risultati piuttosto sorprendenti. Per esempio, qui è a paper from the International Journal of Computer Science and Information Technologies facendo un confronto tra Neo4j vs MySQL, Vertica e VoltDB con le query si potrebbe pensare Neo4j sarebbe incredibile a:
L'idea è che un "social network" non implica automaticamente la superiorità, o anche l'uso di un database di grafici (soprattutto dal momento che sono stati rilasciati GraphQL e).
Per rispondere alla domanda sui linguaggi di query. Non esiste una lingua standard per i database di diagrammi.
AQL è un linguaggio di query che fornisce un'interfaccia unificata per lavorare con dati chiave/valore, documenti e grafici.
Cypher è un linguaggio di query grafico.
Badwolf Query Language è un linguaggio SPARQL ispirato per i grafici temporali.
Queste lingue esistono perché affrontano diversi problemi. I database che li supportano affrontano anche diversi problemi.
Neo4j ha an example di "persistenza poliglotta" sul loro sito:
Penso che è il problema che ArangoDB e AQL è fuori da risolvere, l'ipotesi è che è possibile risolvere quello senza essere peggio di specialisti come Neo4j. Finora sembra che siano might be right.
Cypher sta diventando uno sforzo aperto, vedere opencypher.org –