ArangoDB

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
Developer(s)ArangoDB GmbH
Initial release2011 (2011)
Stable release
3.7.2.1 / September 16, 2020 (2020-09-16)
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 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]

Features

ArangoDB provides scalable queries when working with graph data.[6] The database uses JSON as a default storage format,[7] but internally it uses ArangoDB's VelocyPack – a fast and compact binary format for serialization and storage.[8] 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. [9]

ArangoDB works in a distributed cluster and is the first DBMS being certified for the Datacenter Operating System (DC/OS).[10] 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.[11]

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

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.[13]

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. [14]

Query language

AQL (ArangoDB Query Language) is the SQL-like query language[15] 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.[16]

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. Collins, Michael (2014). Network Security Through Data Analysis: Building Situational Awareness. O'Reilly Media, Inc. ISBN 9781449357887 via Google Play.
  7. 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,...
  8. Neunhöffer, Max (2016). "A fast and compact format for serialization and storage". www.github.com. ArangoDB GmbH. Retrieved December 28, 2016.
  9. Agoub, Amgad; Kunde, Felix; Kada, Martin (2016). "Potential of Graph Databases in Representing and Enriching Standardized Geodata". Publikationen der DGPF. 25: 10 via ResearchGate.
  10. Neunhöffer, Max (November 30, 2015). "Scaling ArangoDB to gigabytes per second on Mesosphere's DCOS". www.mesosphere.com. Mesosphere. Retrieved December 28, 2016.
  11. Streichardt, Andreas (May 2016). "Running ArangoDB on DC/OS". www.dcos.io. DC/OS. Retrieved December 28, 2016.
  12. Weinberger, Claudius (June 2016). "ArangoDB Foxx". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  13. Plum, Alan (February 17, 2016). "Using GraphQL with NoSQL database ArangoDB". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  14. Abramov, Andrey (April 2018). "ArangoSearch Architecture Overview". www.arangodb.com. ArangoDB GmbH. Retrieved September 21, 2018.
  15. "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
  16. "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.