ArangoDB

From Wikipedia, the free encyclopedia
ArangoDB
Developer(s)ArangoDB GmbH
Initial release2011; 10 years ago (2011)
Stable release
3.7.9 / March 1, 2021; 9 months ago (2021-03-01)
Repository
Written inC++, JavaScript
TypeMulti-model database, Graph database, Document-oriented database, Key/Value database, Full-text Search Engine
LicenseApache License 2.0
Websitearangodb.com

ArangoDB is a free and open-source native multi-model database system[1] developed by ArangoDB GmbH. The database system supports three data models (key/value, documents, graphs) with one database core and a unified query language AQL (ArangoDB Query Language). The query language is declarative and allows the combination of different data access patterns in a single query. ArangoDB is a NoSQL database system but AQL is similar in many ways to SQL.

ArangoDB has been referred to as a universal database[2] but its creators refer to it as a "native multi-model"[3] database to indicate that it was designed specifically to allow key/value, document, and graph data to be stored together and queried with a common language.[4]

History[]

Started in 2011, the database was originally released under the name AvocadoDB, but changed to ArangoDB in 2012.[5] The word "arango" refers to a little-known avocado variety.[6]

Features[]

ArangoDB provides scalable queries when working with graph data.[7][page needed] The database uses JSON as a default storage format,[8] but internally it uses ArangoDB's VelocyPack – a fast and compact binary format for serialization and storage.[9] ArangoDB can natively store a nested JSON object as a data entry inside a collection. Therefore, there is no need to disassemble the resulting JSON objects. Thus, the stored data would simply inherit the tree structure of the JSON data. [10]

ArangoDB works in a distributed cluster and is the first DBMS being certified for the Datacenter Operating System (DC/OS).[11][better source needed] DC/OS allows the user to deploy ArangoDB on most existing ecosystems: Amazon Web Services (AWS), Google Compute Engine and Microsoft Azure. Moreover, it provides single-click deployment for the user's cluster.[12]

ArangoDB provides integration with native JavaScript microservices directly on top of the DBMS using the Foxx framework,[10] which is analogous to multithreaded Node.js.[13]

The database has its own AQL (ArangoDB Query Language) and also provides GraphQL to write flexible native web services directly on top of the DBMS.[14]

ArangoSearch is a new search engine feature in the 3.4 release. The search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise vector space model. [15]

Query language[]

AQL (ArangoDB Query Language) is the SQL-like query language[16] used in ArangoDB. It supports CRUD operations for both documents (nodes) and edges, but it is not a data definition language (DDL). AQL does support geospatial queries.

AQL is JSON-oriented as illustrated by the following query, which also illustrates the intuitive "dot" notation for accessing the values of keys:

 FOR x IN [{"a": {"A": 1}}, {"a": {"A": 2}}]
     FILTER x.a.A < 2
     RETURN x.a

Example[]

The following is a parameterized query for finding the number of descendants of a particular node (@start) in a graph named @g with @max nodes:

 FOR v IN 1 .. @max OUTBOUND @start GRAPH @g
     OPTIONS {uniqueVertices: "global", bfs: true }
 COLLECT WITH COUNT INTO c
 RETURN c

The uppercase words are AQL keywords. Notice how AQL is graph-aware. The OPTIONS are necessary to ensure the query can be run on a graph with cycles; "bfs" stands for breadth-first search.

Editions[]

ArangoDB Community Edition is a free native multi-model database written in C++ and available under an open-source license (Apache 2).

In addition to the Community Edition, ArangoDB Enterprise is a paid subscription that includes SmartGraphs, Satellite Collections and many enterprise-level security features.[17]

See also[]

References[]

  1. ^ Leonard, Anghel (2013). Pro Hibernate and MongoDB. Apress. p. 384. ISBN 9781430257943 – via Google Play. Multimodel databases (..., ArangoDB and more)
  2. ^ Vaish, Gaurav (2013). Getting Started with Nosql. Packt Publishing Ltd. p. 142. ISBN 9781849694995 – via Google Play. ArangoDB: Universal database with support for document store, key-value and graph models.
  3. ^ Weinberger, Claudius. "Native multi-model can compete with pure document and graph databases". ArangoDB.com. Retrieved 20 August 2015.
  4. ^ Celler, Frank. "Hacker News comment". Hacker News. Retrieved 20 August 2015.
  5. ^ Lübbert, Dorthe. ""AvocadoDB" becomes "ArangoDB"". ArangoDB.com. Retrieved 20 August 2015.
  6. ^ ""Variety Database"". AvocadoSource.com. Hofshi Foundation. Retrieved 30 November 2021.
  7. ^ Collins, Michael (2014). Network Security Through Data Analysis: Building Situational Awareness. O'Reilly Media, Inc. ISBN 9781449357887 – via Google Play.
  8. ^ Wiese, Lena (2015). Advanced Data Management: For SQL, NoSQL, Cloud and Distributed Databases. Walter de Gruyter GmbH & Co KG. p. 374. ISBN 9783110433074 – via Google Play. ...and several databases use JSON as their primary storage format – in particular, several open source document databases like ArangoDB,...
  9. ^ Neunhöffer, Max (2016). "A fast and compact format for serialization and storage". www.github.com. ArangoDB GmbH. Retrieved December 28, 2016.
  10. ^ a b Agoub, Amgad; Kunde, Felix; Kada, Martin (2016). "Potential of Graph Databases in Representing and Enriching Standardized Geodata". Publikationen der DGPF. 25: 10 – via ResearchGate.
  11. ^ Neunhöffer, Max (November 30, 2015). "Scaling ArangoDB to gigabytes per second on Mesosphere's DCOS". www.mesosphere.com. Mesosphere. Retrieved December 28, 2016.
  12. ^ Streichardt, Andreas (May 2016). "Running ArangoDB on DC/OS". www.dcos.io. DC/OS. Retrieved December 28, 2016.
  13. ^ Weinberger, Claudius (June 2016). "ArangoDB Foxx". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  14. ^ Plum, Alan (February 17, 2016). "Using GraphQL with NoSQL database ArangoDB". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  15. ^ Abramov, Andrey (April 2018). "ArangoSearch Architecture Overview". www.arangodb.com. ArangoDB GmbH. Retrieved September 21, 2018.
  16. ^ "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
  17. ^ "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.
Retrieved from ""