Tras el artículo sobre Visualizaciones de Datos hemos querido is buscando alternativas, simples y opensource. Las bases de datos de grafos eran una buena alternativa, como por ejemplo: Neo4j, GraphDB o OrientDB. Pero me habían hablado, bien, de ArangoDB como “JSON + Graph + Key Value” database y era una más que interesante propuesta. Pero veamos un poco más: ¿qué es entonces ArangoDB?
¿Qué es ArangoDB?
ArangoDB es una base de datos multi-modelo que combina Clave/Valor, Documentos y Grafos, como ArangoDB Query Language (AQL). Lo cual nos va a permitir realizar consultas entre los diferentes modelos de datos (al más puro estilo SQL).
Como tiene una base documental, aprovecha la potencia de los documentos generando, a la vez, un identificador único para almacenar la información como su valor asociado en la misma. Como que también es una base de datos de grafos, hace uso de los atributos _from
y _to
los cuales nos van a permitir crear las conexiones entre la información y mediante vértices e índices podremos procesar las consultas de grafos con un gran rendimiento. Es muy interesante el poder realizar distintos tipos de consultas, estamos hablando de modelo documento, modelo relacional y modelo de grafos, todo esto sin salir de la base de datos o tener que cambiar de drivers o métodos de conexión.
A nivel de operación responde al teorema de CAP y de forma parecida al modelo de MongoDB, donde por ejemplo: ante un problema de red, ArangoDB elige la consistencia de la información vs la disponibilidad y, la arquitectura de los componentes, nos garantizan que ante un eventual fallo, no se colapse el sistema por completo.
ArangoDB incluye Foxx, un framework JavaScript para poder escribir microservicios focalizados en las estrategias Data Centric y que se ejecutan directamente dentro de ArangoDB. A su vez trae integrada la librería GraphQL-Sync para implementar un servidor GraphQL y dar la posibilidad de crear rápidamente visualizaciones de datos.
Empezando con ArangoDB
Para empezar rápidamente recomiendo utilizar el contenedor Docker que está públicado en: https://hub.docker.com/r/arangodb/arangodb/ y lanzar la command siguiente:
docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -d --name arangodb-instance -p 8529:8529 arangodb
NOTA: podemos escoger tres opciones por lo que se refiere a seguridad de acceso de nuestro usuario root
, tanto para la base de datos como para su interfície web HTTP, veamos:
ARANGO_RANDOM_ROOT_PASSWORD=1
, esta opción nos generaré un password random y tendremos que buscarlo luego en los log de despliegue del Docker.ARANGO_NO_AUTH=1
, esta opción es la menos recomendable ya que deshabilitará el uso de password.ARANGO_ROOT_PASSWORD=somepassword
, podremos especificar el password que queremos concretamente.
Realmente la documentación oficial que hay de ArangoDB es muy completa, por ejemplo podemos encontrarla en: https://docs.arangodb.com/3.3/Manual/ y con simples pasos podremos creamos representaciones gráficas, por ejemplo, como la que acompañamos a continuación:
En resumen, ArangoDB es una base de datos NoSQL muy completa, que utiliza pocos recursos, de simple interfaz web de administración, muy sencilla para usarla, intuitiva y liviana. Realmente es una buena opción para montarla en nuestras infraestructuras de datos.
Autor: Joakim Vivas