ArangoDB

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
ArangoDB
Developer(s)ArangoDB GmbH
Initial release2011; 9 years ago (2011)
Stable release
3.6.0 / January 8, 2020; 8 days ago (2020-01-08)
Repository Edit this at Wikidata
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[edit]

Started in 2011, the database was originally released under the name AvocadoDB, but changed to ArangoDB in 2012.[5]

Features[edit]

ArangoDB provides scalable queries when working with graph data.[6][page needed] 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 XML data. [9]

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

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[edit]

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[edit]

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[edit]

References[edit]

  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. ^ 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.
  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.