ArangoDB es un sistema de base de datos multimodelo nativo de código abierto y gratuito [1] desarrollado por ArangoDB GmbH. El sistema de base de datos admite tres modelos de datos (clave / valor, documentos, gráficos) con un núcleo de base de datos y un lenguaje de consulta unificado AQL (ArangoDB Query Language). El lenguaje de consulta es declarativo y permite la combinación de diferentes patrones de acceso a datos en una sola consulta. ArangoDB es un sistema de base de datos NoSQL , pero AQL es similar en muchos aspectos a SQL .
Desarrollador (es) | ArangoDB GmbH |
---|---|
Versión inicial | 2011 |
Lanzamiento estable | 3.7.9 / 1 de marzo de 2021 |
Repositorio | |
Escrito en | C ++ , JavaScript |
Tipo | Base de datos de múltiples modelos , datos de gráficos , base de datos documental , la base de datos clave / valor , la búsqueda de texto del motor |
Licencia | Licencia Apache 2.0 |
Sitio web | arangodb |
Se ha hecho referencia a ArangoDB como una base de datos universal [2], pero sus creadores se refieren a ella como una base de datos " multimodelo nativa" [3] para indicar que fue diseñada específicamente para permitir que los datos de clave / valor, documentos y gráficos sean almacenados juntos y consultados con un lenguaje común. [4]
Historia
Iniciada en 2011, la base de datos se publicó originalmente con el nombre AvocadoDB , pero se cambió a ArangoDB en 2012. [5] En inglés, la palabra "arango" es una moneda obsoleta que se hizo a partir de cornalina y se usó principalmente en el comercio de esclavos africanos. . [6]
Características
ArangoDB proporciona consultas escalables cuando se trabaja con datos gráficos. [7] [ página necesaria ] La base de datos usa JSON como formato de almacenamiento predeterminado, [8] pero internamente usa VelocyPack de ArangoDB, un formato binario rápido y compacto para serialización y almacenamiento. [9] ArangoDB puede almacenar de forma nativa un objeto JSON anidado como una entrada de datos dentro de una colección. Por lo tanto, no es necesario desensamblar los objetos JSON resultantes. Por lo tanto, los datos almacenados simplemente heredarían la estructura de árbol de los datos JSON. [10]
ArangoDB funciona en un clúster distribuido y es el primer DBMS certificado para el sistema operativo del centro de datos (DC / OS). [11] [se necesita una mejor fuente ] DC / OS permite al usuario implementar ArangoDB en la mayoría de los ecosistemas existentes: Amazon Web Services (AWS), Google Compute Engine y Microsoft Azure . Además, proporciona una implementación con un solo clic para el clúster del usuario. [12]
ArangoDB proporciona integración con microservicios de JavaScript nativos directamente en la parte superior del DBMS utilizando el marco Foxx, [10] que es análogo a Node.js multiproceso . [13]
La base de datos tiene su propio AQL (ArangoDB Query Language) y también proporciona GraphQL para escribir servicios web nativos flexibles directamente sobre el DBMS. [14]
ArangoSearch es una nueva función de motor de búsqueda en la versión 3.4. El motor de búsqueda combina capacidades de recuperación booleana con componentes de clasificación generalizados que permiten la recuperación de datos basada en un modelo de espacio vectorial preciso. [15]
Lenguaje de consulta
AQL ( ArangoDB Query Language ) es el lenguaje de consulta similar a SQL [16] utilizado en ArangoDB. Admite operaciones CRUD para documentos (nodos) y bordes, pero no es un lenguaje de definición de datos (DDL). AQL admite consultas geoespaciales .
AQL está orientado a JSON como se ilustra en la siguiente consulta, que también ilustra la notación intuitiva de "punto" para acceder a los valores de las claves:
PARA x EN [{ "a" : { "A" : 1 }}, { "a" : { "A" : 2 }}] FILTRO x.aA < 2 RETORNO x.a
Ejemplo
La siguiente es una consulta parametrizada para encontrar el número de descendientes de un nodo en particular ( @start
) en un gráfico nombrado @g
con @max
nodos:
FOR v IN 1 .. @max OUTBOUND @start GRAPH @g OPTIONS {uniqueVertices : "global" , bfs : true} RECOGER CON COUNT INTO c RETURN c
Las palabras en mayúscula son palabras clave AQL. Observe cómo AQL es consciente de los gráficos. El OPTIONS
son necesarias para garantizar la consulta se puede ejecutar en un gráfico con los ciclos; "bfs" significa búsqueda en amplitud.
Ediciones
ArangoDB Community Edition es una base de datos nativa multimodelo gratuita escrita en C ++ y disponible bajo una licencia de código abierto (Apache 2).
Además de la Community Edition, ArangoDB Enterprise es una suscripción paga que incluye SmartGraphs, Satellite Collections y muchas funciones de seguridad de nivel empresarial. [17]
Ver también
- Comparación de bases de datos multimodelo
Referencias
- ^ Leonard, Anghel (2013). Pro Hibernate y MongoDB . Presione. pag. 384. ISBN 9781430257943- a través de Google Play.
Bases de datos multimodelo (..., ArangoDB y más)
- ^ Vaish, Gaurav (2013). Introducción a Nosql . Packt Publishing Ltd. pág. 142. ISBN 9781849694995- a través de Google Play.
ArangoDB: Base de datos universal con soporte para almacenamiento de documentos, clave-valor y modelos de gráficos.
- ^ Weinberger, Claudio. "El modelo múltiple nativo puede competir con bases de datos de documentos y gráficos puros" . ArangoDB.com . Consultado el 20 de agosto de 2015 .
- ^ Celler, Frank. "Comentario de Hacker News" . Noticias de hackers . Consultado el 20 de agosto de 2015 .
- ^ Lübbert, Dorthe. " " AvocadoDB "se convierte en" ArangoDB " " . ArangoDB.com . Consultado el 20 de agosto de 2015 .
- ^ "Diccionario íntegro revisado de Webster" . G. & C. Merriam Co. 1913. "arango" . Consultado el 31 de mayo de 2021 .
- ^ Collins, Michael (2014). Seguridad de la red a través del análisis de datos: creación de conciencia situacional . O'Reilly Media, Inc. ISBN 9781449357887 - a través de Google Play.
- ^ Wiese, Lena (2015). Gestión avanzada de datos: para bases de datos SQL, NoSQL, en la nube y distribuidas . Walter de Gruyter GmbH & Co KG. pag. 374. ISBN 9783110433074- a través de Google Play.
... y varias bases de datos utilizan JSON como formato de almacenamiento principal, en particular, varias bases de datos de documentos de código abierto como ArangoDB, ...
- ^ Neunhöffer, Max (2016). "Un formato rápido y compacto para serialización y almacenamiento" . www.github.com . ArangoDB GmbH . Consultado el 28 de diciembre de 2016 .
- ^ a b Agoub, Amgad; Kunde, Felix; Kada, Martin (2016). "Potencial de las bases de datos gráficas para representar y enriquecer geodatos estandarizados" . Publikationen der DGPF . 25:10 - a través de ResearchGate.
- ^ Neunhöffer, Max (30 de noviembre de 2015). "Escalar ArangoDB a gigabytes por segundo en DCOS de Mesosphere" . www.mesosphere.com . Mesosfera . Consultado el 28 de diciembre de 2016 .
- ^ Streichardt, Andreas (mayo de 2016). "Ejecutando ArangoDB en DC / OS" . www.dcos.io . DC / OS . Consultado el 28 de diciembre de 2016 .
- ^ Weinberger, Claudius (junio de 2016). "ArangoDB Foxx" . www.arangodb.com . ArangoDB GmbH . Consultado el 28 de diciembre de 2016 .
- ^ Plum, Alan (17 de febrero de 2016). "Usando GraphQL con la base de datos NoSQL ArangoDB" . www.arangodb.com . ArangoDB GmbH . Consultado el 28 de diciembre de 2016 .
- ^ Abramov, Andrey (abril de 2018). "Descripción general de la arquitectura de ArangoSearch" . www.arangodb.com . ArangoDB GmbH . Consultado el 21 de septiembre de 2018 .
- ^ "Comparación SQL y AQL (ArangoDB Query Language)" . Arangodb.com . Consultado el 17 de diciembre de 2017 .
- ^ "Precios de ArangoDB 2018" . ArangoDB . Consultado el 27 de septiembre de 2018 .