ArangoDB
Developer(s) | ArangoDB GmbH |
---|---|
Initial release | 2011 |
Stable release | 3.9.2
/ June 7, 2022 |
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 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.[11]
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[12] led by Bow Capital. In October 2021 ArangoDB raised 27.8 million dollars in series B funding led by Iris Capital.[13]
Main features
JSON. ArangoDB uses JSON as a default storage format,[14] but internally it uses ArangoDB 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.
Predictable performance. ArangoDB is written mainly in C++[16] and manages its own memory to avoid unpredictable performance arising from garbage collection.
Scaling. ArangoDB provides scaling through clustering.[17]
Reliability. ArangoDB provides datacenter-to-datacenter replication.[18]
Kubernetes. ArangoDB runs on Kubernetes, including cloud-based Kubernetes services Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and Microsoft Azure Kubernetes Service (AKS).[19]
Microservices. ArangoDB provides integration with native JavaScript microservices directly on top of the DBMS using the Foxx framework.
Multiple query languages. The database has its own query language, AQL (ArangoDB Query Language), and also provides GraphQL to write flexible native web services directly on top of the DBMS.
Search. ArangoDB’s search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise vector space model.
Pregel algorithm. Pregel is a system for large scale graph processing. Pregel is implemented in ArangoDB and can be used with predefined algorithms, e.g. PageRank, Single-Source Shortest Path and Connected components.
Transactions. ArangoDB supports user-definable transactions. Transactions in ArangoDB are atomic, consistent, isolated, and durable (ACID), but only if data is not sharded.
Query language
AQL (ArangoDB Query Language) is the SQL-like query language[20] 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.[21]
See also
References
- ^ "Advantages of native multi-model in ArangoDB". ArangoDB. Retrieved 2022-07-26.
- ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ "AQL Query Patterns & Examples | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ Celler, Author Frank (2012-03-07). "ArangoDB's design objectives". ArangoDB. Retrieved 2022-07-26.
{{cite web}}
:|first=
has generic name (help) - ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ "Variety Database". www.avocadosource.com. Retrieved 2022-07-27.
- ^ Ortell, Bill (2021-03-08), AvocadoDB, retrieved 2022-07-27
- ^ AvocadoDB explained, retrieved 2022-07-27
- ^ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-07-27
- ^ ""AvocadoDB" becomes "ArangoDB"". ArangoDB. 2012-05-09. Retrieved 2022-07-27.
- ^ "Variety Database". www.avocadosource.com. Retrieved 2022-08-05.
- ^ 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) - ^ "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.
- ^ AvocadoDB explained, retrieved 2022-08-05
- ^ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-08-05
- ^ ArangoDB, ArangoDB, 2022-08-05, retrieved 2022-08-05
- ^ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "DC2DC Replication | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "Kubernetes | Tutorials | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "SQL and AQL (ArangoDB Query Language) Comparison". Arangodb.com. Retrieved 17 December 2017.
- ^ "ArangoDB Pricing 2018". ArangoDB. Retrieved 2018-09-27.