Jump to content

ArangoDB

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Crism87 (talk | contribs) at 22:50, 27 July 2022 (Updated the history section and added new footnotes.). 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; 14 years ago (2011)
Stable release
3.9.1 / April 7, 2022; 3 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[3]. ArangoDB is a NoSQL database system[4] but AQL is similar in many ways to SQL[5].

History

ArangoDB Inc. was founded in 2015 by Claudius Weinberger and Frank Celler[6]. They originally called the database system “A Versatile Object Container", or AVOC for short, leading them to call the database AvocadoDB[7][8][9]. Later, they changed the name to ArangoDB[10]. The word "arango" refers to a little-known avocado variety grown in Cuba.

In January 2017 ArangoDB raised a seed round investment of 4.2 million Euros led by Target Partners. In March 2019 ArangoDB raised 10 million dollars in series A funding[11] led by Bow Capital. In October 2021 ArangoDB raised 27.8 million dollars in series B funding led by Iris Capital[12].

Features

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

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

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

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

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

Query language

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

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. ^ "AQL Query Patterns & Examples | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
  4. ^ Celler, Author Frank (2012-03-07). "ArangoDB's design objectives". ArangoDB. Retrieved 2022-07-26. {{cite web}}: |first= has generic name (help)
  5. ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
  6. ^ "Variety Database". www.avocadosource.com. Retrieved 2022-07-27.
  7. ^ Ortell, Bill (2021-03-08), AvocadoDB, retrieved 2022-07-27
  8. ^ AvocadoDB explained, retrieved 2022-07-27
  9. ^ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-07-27
  10. ^ ""AvocadoDB" becomes "ArangoDB"". ArangoDB. 2012-05-09. Retrieved 2022-07-27.
  11. ^ Weinberger, Author Claudius (2019-03-14). "ArangoDB receives Series A Funding led by Bow Capital". ArangoDB. Retrieved 2022-07-27. {{cite web}}: |first= has generic name (help)
  12. ^ "ArangoDB Announces $27.8 Million Series B Investment to Accelerate Development of Next-Generation Graph ML, Providing Advanced Analytics and AI Capabilities at Enterprise Scale". ArangoDB. Retrieved 2022-07-27.
  13. ^ Collins, Michael (2014). Network Security Through Data Analysis: Building Situational Awareness. O'Reilly Media, Inc. ISBN 9781449357887 – via Google Play.
  14. ^ 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,...
  15. ^ Neunhöffer, Max (2016). "A fast and compact format for serialization and storage". www.github.com. ArangoDB GmbH. Retrieved December 28, 2016.
  16. ^ 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.
  17. ^ Neunhöffer, Max (November 30, 2015). "Scaling ArangoDB to gigabytes per second on Mesosphere's DCOS". www.mesosphere.com. Mesosphere. Retrieved December 28, 2016.
  18. ^ Streichardt, Andreas (May 2016). "Running ArangoDB on DC/OS". www.dcos.io. DC/OS. Retrieved December 28, 2016.
  19. ^ Weinberger, Claudius (June 2016). "ArangoDB Foxx". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  20. ^ Plum, Alan (February 17, 2016). "Using GraphQL with NoSQL database ArangoDB". www.arangodb.com. ArangoDB GmbH. Retrieved December 28, 2016.
  21. ^ Abramov, Andrey (April 2018). "ArangoSearch Architecture Overview". www.arangodb.com. ArangoDB GmbH. Retrieved September 21, 2018.
  22. ^ "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
  23. ^ "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.