Jump to content

ArangoDB

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Asargent (talk | contribs) at 21:48, 26 July 2022 (New intro paragraph with a couple of footnotes; will add more footnotes later.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ArangoDB
Developer(s)ArangoDB GmbH
Initial release2011; 13 years ago (2011)
Stable release
3.9.1 / April 7, 2022; 2 years ago (2022-04-07)
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 graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models (graphs, JSON documents, key/value)[1] with one database core and a unified query language AQL (ArangoDB Query Language). AQL is mainly a declarative language[2] 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.

History

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

Features

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

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

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

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

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

Query language

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

See also

References

  1. ^ "Advantages of native multi-model in ArangoDB". ArangoDB. Retrieved 2022-07-26.
  2. ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
  3. ^ Lübbert, Dorthe. ""AvocadoDB" becomes "ArangoDB"". ArangoDB.com. Retrieved 20 August 2015.
  4. ^ ""Variety Database"". AvocadoSource.com. Hofshi Foundation. Retrieved 30 November 2021.
  5. ^ Collins, Michael (2014). Network Security Through Data Analysis: Building Situational Awareness. O'Reilly Media, Inc. ISBN 9781449357887 – via Google Play.
  6. ^ 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,...
  7. ^ Neunhöffer, Max (2016). "A fast and compact format for serialization and storage". www.github.com. ArangoDB GmbH. Retrieved December 28, 2016.
  8. ^ 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.
  9. ^ Neunhöffer, Max (November 30, 2015). "Scaling ArangoDB to gigabytes per second on Mesosphere's DCOS". www.mesosphere.com. Mesosphere. Retrieved December 28, 2016.
  10. ^ Streichardt, Andreas (May 2016). "Running ArangoDB on DC/OS". www.dcos.io. DC/OS. Retrieved December 28, 2016.
  11. ^ Weinberger, Claudius (June 2016). "ArangoDB Foxx". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  12. ^ Plum, Alan (February 17, 2016). "Using GraphQL with NoSQL database ArangoDB". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  13. ^ Abramov, Andrey (April 2018). "ArangoSearch Architecture Overview". www.arangodb.com. ArangoDB GmbH. Retrieved September 21, 2018.
  14. ^ "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
  15. ^ "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.