ArangoDB ist ein Graphdatenbanksystem , entwickelt von ArangoDB Inc. Es handelt sich um ein Multi-Modell-Datenbanksystem, da es drei Datenmodelle (Graphen, JSON- Dokumente, Schlüssel/Wert ) [ 1 ] mit einem Datenbankkern und der einheitlichen Abfragesprache AQL (ArangoDB Query Language) unterstützt. AQL ist hauptsächlich eine deklarative Sprache [ 2 ] und ermöglicht die Kombination verschiedener Datenzugriffsmuster in einer einzigen Abfrage. [ 3 ]
ArangoDB ist ein NoSQL- Datenbanksystem [ 4 ] , aber AQL ist in vielerlei Hinsicht SQL ähnlich [ 5 ] , es verwendet RocksDB als Speichermodul.
Geschichte
Die ArangoDB GmbH wurde 2014 von Claudius Weinberger und Frank Celler gegründet. [ 6 ] Ursprünglich nannten sie das Datenbanksystem „A Versatile Object Container“, kurz AVOC, was sie dazu veranlasste, die Datenbank AvocadoDB zu nennen. [ 7 ] [ 8 ] [ 9 ] Später änderten sie den Namen in ArangoDB. [ 10 ] Das Wort „Arango“ bezieht sich auf eine wenig bekannte Avocado-Sorte, die in Kuba angebaut wird. [ 11 ]
Im Januar 2017 schloss ArangoDB eine Seed-Finanzierungsrunde über 4,2 Millionen Euro unter der Führung von Target Partners ab. Im März 2019 erhielt ArangoDB in einer von Bow Capital angeführten Serie-A-Finanzierungsrunde 10 Millionen US-Dollar [ 12 ] . Im Oktober 2021 sammelte ArangoDB in einer von Iris Capital angeführten Serie-B-Finanzierungsrunde 27,8 Millionen US-Dollar ein . [ 13 ]
Veröffentlichungshistorie
| Freigeben | Erste Veröffentlichung | Neueste Nebenversion | Neueste Veröffentlichung | Funktionshinweise | Referenz |
|---|---|---|---|---|---|
| 3.11 | 30.05.2023 | 3.11.5 | 09.11.2023 |
| Versionshinweise |
| 3.10 | 04.10.2022 | 3.10.11 | 19.10.2023 |
| Versionshinweise |
| 3.9 | 15.02.2022 | 3.9.12 | 23.08.2023 |
| Versionshinweise |
| 3.8 | 29.07.2021 | 3.8.9 | 27.03.2023 |
| Versionshinweise |
| 3.7 | 16.09.2020 | 3.7.17 | 01.02.2022 |
| Versionshinweise |
| 3.6 | 08.01.2020 | 3.6.16 | 06.09.2021 |
| Versionshinweise |
| 3,5 | 21.08.2019 | 3.5.7 | 30.12.2020 |
| Versionshinweise |
| 3.4 | 06.12.2018 | 3.4.11 | 09.09.2020 |
| Versionshinweise |
| 3.3 | 22.12.2017 | 3.3.25 | 28.02.2020 |
| Versionshinweise |
| 3.2 | 20.07.2017 | 3.2.18 | 02.02.2019 |
| Versionshinweise |
| 3.1 | 03.11.2016 | 3.1.29 | 23.06.2018 |
| Versionshinweise |
| 3.0 | 23.07.2016 | 3.0.12 | 23.11.2016 |
| Freigeben |
Merkmale
- JSON: ArangoDB verwendet JSON als Standardspeicherformat [ 14 ] , intern jedoch ArangoDB VelocyPack – ein schnelles und kompaktes Binärformat für Serialisierung und Speicherung [ 15 ] . ArangoDB kann verschachtelte JSON-Objekte nativ als Dateneintrag in einer Collection speichern. Daher ist es nicht notwendig, die resultierenden JSON-Objekte zu disassemblieren. Die gespeicherten Daten übernehmen somit einfach die Baumstruktur der JSON-Daten.
- Vorhersehbare Leistung: ArangoDB ist hauptsächlich in C++ geschrieben [ 16 ] und verwaltet seinen eigenen Speicher, um unvorhersehbare Leistungseinbußen durch die automatische Speicherbereinigung zu vermeiden .
- Skalierung: ArangoDB bietet Skalierung durch Clustering. [ 17 ]
- Zuverlässigkeit: ArangoDB bietet Replikation zwischen Rechenzentren. [ 18 ]
- Kubernetes : ArangoDB läuft auf Kubernetes, einschließlich der Cloud-basierten Kubernetes-Dienste Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) und Microsoft Azure Kubernetes Service (AKS). [ 19 ]
- Microservices: ArangoDB bietet die Integration nativer JavaScript- Microservices direkt auf dem DBMS mithilfe des Foxx-Frameworks. [ 20 ]
- Mehrere Abfragesprachen: Die Datenbank verfügt über eine eigene Abfragesprache, AQL (ArangoDB Query Language), und bietet außerdem GraphQL , um flexible native Webdienste direkt auf dem DBMS zu schreiben. [ 21 ]
- Suche: Die Suchmaschine von ArangoDB kombiniert Boolesche Suchfunktionen mit allgemeinen Ranking-Komponenten und ermöglicht so den Datenabruf auf Basis eines präzisen Vektorraummodells . [ 22 ]
- Pregel-Algorithmus: Pregel ist ein System zur Verarbeitung großer Graphen. [ 23 ] Pregel ist in ArangoDB implementiert und kann mit vordefinierten Algorithmen wie PageRank , Single-Source Shortest Path und Connected Components verwendet werden. [ 24 ]
- Transaktionen: ArangoDB unterstützt benutzerdefinierbare Transaktionen. Transaktionen in ArangoDB sind atomar, konsistent, isoliert und dauerhaft ( ACID ), jedoch nur, wenn die Daten nicht fragmentiert sind. [ 25 ]
AQL (ArangoDB Query Language) ist die SQL -ähnliche Abfragesprache [ 26 ], die in ArangoDB verwendet wird. Sie unterstützt CRUD- Operationen sowohl für Dokumente (Knoten) als auch für Kanten, ist aber keine Datendefinitionssprache (DDL). AQL unterstützt Geodatenabfragen .
AQL ist JSON -orientiert:
// Gibt alle Dokumente einer Sammlung zurück: FOR doc IN collection RETURN doc // Zählt die Anzahl der Dokumente in einer Sammlung: FOR doc IN collection COLLECT WITH COUNT INTO length RETURN length// Füge ein neues Dokument in unsere Sammlung ein: INSERT { _ key : "john" , name : "John" , age : 45 } INTO collection// Aktualisiere das Dokument mit dem Schlüssel „john“ und weise ihm das Alter 46 zu. UPDATE { _ key : "john" , age : 46 } IN collection// Füge allen Benutzern mit dem Status „aktiv“ das Attribut „numberOfLogins“ hinzu: FOR u IN users FILTER u . active == true UPDATE u WITH { numberOfLogins : 0 } IN usersAusgaben
- Community Edition: Die ArangoDB Community Edition ist eine Graphdatenbank mit nativen Multi-Modell-Datenbankfunktionen, die hauptsächlich in C++ geschrieben wurde und unter einer Open-Source-Lizenz ( Apache 2.0 ) verfügbar war. Im Oktober 2023 wurde die Quellcode-Lizenz von Apache 2.0 auf die Business Source License geändert , während die Lizenz für die vorkompilierten Binärdateien von Apache 2.0 auf eine „ArangoDB Community License“ geändert wurde, die „die kommerzielle Nutzung einschränkt und die Größe von Datensätzen innerhalb eines einzelnen Clusters auf 100 GB begrenzt“ [ 27 ].
- Kommerziell selbstverwaltet: ArangoDB Enterprise ist ein kostenpflichtiges Abonnement, das Graph-Aware Sharding (genannt „SmartGraphs“) [ 28 ] und Collection-Replikation (genannt „Satellite Collections“) zur Reduzierung der Abfragezeiten [ 29 ] sowie erhöhte Sicherheit [ 30 ] beinhaltet.
- Cloud: ArangoDB wird als Cloud-Service namens Oasis angeboten und stellt ArangoDB-Datenbanken als Service ( DBaaS ) bereit. ArangoDB Oasis bietet die Funktionalität eines ArangoDB-Clusters bei minimalem Verwaltungsaufwand. [ 31 ] ArangoDB Oasis ist mit verschiedenen Cloud-Anbietern kompatibel , darunter AWS, Azure und Google Cloud. [ 32 ]
Siehe auch
Referenzen
- ^ „Vorteile des nativen Multi-Modells in ArangoDB“ . ArangoDB . Abgerufen am 26.07.2022 .
- ^ „Einführung in die ArangoDB-Abfragesprache (AQL) | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 26.07.2022 .
- ^ „AQL-Abfragemuster & Beispiele | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 26.07.2022 .
- ^ Celler, Frank (07.03.2012). „Designziele von ArangoDB“ . ArangoDB . Abgerufen am 26.07.2022 .
- ^ „Einführung in die ArangoDB-Abfragesprache (AQL) | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 26.07.2022 .
- ^ „Sortendatenbank“ . www.avocadosource.com . Abgerufen am 27.07.2022 .
- ^ Ortell, Bill (08.03.2021), AvocadoDB , abgerufen am 27.07.2022
- ^ AvocadoDB erklärt , abgerufen am 27.07.2022
- ^ AvocadoDB-Abfragesprache, Jan Steemann (Englisch) , abgerufen am 27.07.2022
- ^ ""AvocadoDB" wird zu "ArangoDB"" . ArangoDB . 2012-05-09 . Abgerufen am 2022-07-27 .
- ^ „Sortendatenbank“ . www.avocadosource.com . Abgerufen am 05.08.2022 .
- ^ Weinberger, Claudius (14.03.2019). „ArangoDB erhält Series-A-Finanzierung unter der Führung von Bow Capital“ . ArangoDB . Abgerufen am 27.07.2022 .
- ^ „ArangoDB gibt eine Investition von 27,8 Millionen US-Dollar in der Serie B bekannt, um die Entwicklung von Graph ML der nächsten Generation zu beschleunigen und fortschrittliche Analyse- und KI-Funktionen im Unternehmensmaßstab bereitzustellen . “ ArangoDB . Abgerufen am 27.07.2022 .
- ^ AvocadoDB erklärt , abgerufen am 05.08.2022.
- ^ AvocadoDB-Abfragesprache, Jan Steemann (Englisch) , abgerufen am 05.08.2022
- ^ ArangoDB , ArangoDB, 05.08.2022 , abgerufen am 05.08.2022
- ^ „Cluster | ArangoDB-Bereitstellungsmodi | Architektur | Handbuch | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ „DC2DC-Replikation | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ „Kubernetes | Tutorials | Manual | ArangoDB Documentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ „Foxx Microservices | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ ArangoDB , ArangoDB, 05.08.2022 , abgerufen am 05.08.2022
- ^ „ArangoSearch – Volltextsuchmaschine mit Ähnlichkeitsranking-Funktion“ . ArangoDB . Abgerufen am 05.08.2022 .
- ^ „Stanford University Pregel White paper“ (PDF) .
- ^ „Vorgabe | Data Science | Handbuch | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ „Transaktionen | Handbuch | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 05.08.2022 .
- ^ „Cluster | ArangoDB-Bereitstellungsmodi | Architektur | Handbuch | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 11.08.2022 .
- ^ ArangoDB , ArangoDB, 13.10.2023 , abgerufen am 13.10.2023
- ^ „ArangoDB SmartGraphs | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 11.08.2022 .
- ^ „ArangoDB SatelliteCollections | ArangoDB Documentation“ . www.arangodb.com . Abgerufen am 11.08.2022 .
- ^ „ArangoDB Enterprise Features“ . ArangoDB . Abgerufen am 11.08.2022 .
- ^ „Erste Schritte mit ArangoDB Oasis | ArangoDB-Dokumentation“ . www.arangodb.com . Abgerufen am 11.08.2022 .
- ^ „ArangoDB-Oase“ . ArangoDB Oasis . Abgerufen am 11.08.2022 .