ArangoDB
Developer(s) | ArangoDB GmbH |
---|---|
Initial release | 2011 |
Stable release | 3.6.0
/ January 8, 2020 |
Repository | |
Written in | C++, JavaScript |
Type | Multi-model database, Graph database, Document-oriented database, Key/Value database, Full-text Search Engine |
License | Apache License 2.0 |
Website | 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 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][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 JSON 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
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
- ^ Leonard, Anghel (2013). Pro Hibernate and MongoDB. Apress. p. 384. ISBN 9781430257943 – via Google Play.
Multimodel databases (..., ArangoDB and more)
- ^ 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.
- ^ Weinberger, Claudius. "Native multi-model can compete with pure document and graph databases". ArangoDB.com. Retrieved 20 August 2015.
- ^ Celler, Frank. "Hacker News comment". Hacker News. Retrieved 20 August 2015.
- ^ Lübbert, Dorthe. ""AvocadoDB" becomes "ArangoDB"". ArangoDB.com. Retrieved 20 August 2015.
- ^ Collins, Michael (2014). Network Security Through Data Analysis: Building Situational Awareness. O'Reilly Media, Inc. ISBN 9781449357887 – via Google Play.
- ^ 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,...
- ^ Neunhöffer, Max (2016). "A fast and compact format for serialization and storage". www.github.com. ArangoDB GmbH. Retrieved December 28, 2016.
- ^ 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.
- ^ Neunhöffer, Max (November 30, 2015). "Scaling ArangoDB to gigabytes per second on Mesosphere's DCOS". www.mesosphere.com. Mesosphere. Retrieved December 28, 2016.
- ^ Streichardt, Andreas (May 2016). "Running ArangoDB on DC/OS". www.dcos.io. DC/OS. Retrieved December 28, 2016.
- ^ Weinberger, Claudius (June 2016). "ArangoDB Foxx". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
- ^ Plum, Alan (February 17, 2016). "Using GraphQL with NoSQL database ArangoDB". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
- ^ Abramov, Andrey (April 2018). "ArangoSearch Architecture Overview". www.arangodb.com. ArangoDB GmbH. Retrieved September 21, 2018.
- ^ "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
- ^ "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.