ArangoDB es una Base de Datos open-source NoSQL Multi-Model, es decir que a diferencia del estándar en este mundo (o eres Document, Key-Value, Grafos, Columnar,…) soporta modelos documentales (JSON), grafos y key-value:

ArangoDB está construida en C++ y sus características pueden concretarse en:

ArangoDB es open-source (licencia Apache 2), tiene una versión Community sin coste ni soporte y dos versiones soportadas en función de las necesidades de soporte y funcionalidades:

La versión Enterprise incluye:

ArangoDB incluye una Web UI que permite a los administradores ver un dashboard con el estado de la BD:

crear consultas,

Ver Grafos:

ArangoDB también soporta consultas geoespaciales:

Primero creo el índice:

Y luego busco:

(en este ejemplo estoy buscando en la colección places_to_eat los documentos ordenados por la distancia al punto (50.93,6.93) y quedándome con el más cercano).

ArangoDB soporta Clustering con fail-over automático, replicación síncrona, mantenimiento sencillo. ArangoDB siguiendo el modelo CAP sigue el modelo Master-Master CP con NoSPoF.

Al estilo de Mongo ArangoDB puede extenderse en Javascript (con el motor Google V8) a través del framework Foxx.

ArangoDB ofrece drivers para un gran número de lenguajes y frameworks, además de uno para el lenguaje de grafos Gremlin

Para realizar las consultas ArangoDB ofrece el lenguaje AQL, que es un lenguaje SQL-like para todos los modelos que soporta. Podemos ver cómo compara con SQL aquí.

Por ejemplo un INSERT múltiple:

O un INSERT INTO SELECT:

FILTERS:

GROUPS:

Para trabajar en ArangoDB, por ejemplo en Java:

Creando una BD:

Creando una colección:

Creando un documento tipo Key-Value:

Haciendo una consulta en AQL:

A nivel de grafos hay bastante documentación, en este ejemplo de actores y películas sobre el shell de ArangoDB (arangosh)

Los relaciono:

Y ya puedo hacer consultas sobre el grafo, como los actores que actuaron en Matrix:

ArangoDB ofrece paquetes para instalar sobre un gran número de sistemas operativos y servicios Cloud:

(Ah, el instalador de Windows es una maravilla :))

En la web del producto existen comparativas:

De ArangoDB con MongoDB: donde ArangoDB soporta multi-model, joins, lenguaje declarativo, transacciones, escalabilidad,…

O de ArangoDB vs Neo4J: donde ArangoDB soporta multi-model, escalabilidad, extensibilidad, rendimiento…

También tienen diversos estudios de rendimiento comparando con otras bases de datos: