Многомодельная база данных
ArangoDB — это графовая система баз данных , разработанная ArangoDB Inc. ArangoDB — это многомодельная система баз данных, поскольку она поддерживает три модели данных (графы, документы JSON , ключ/значение ) [1] с одним ядром базы данных и унифицированным языком запросов AQL (ArangoDB Query Language). AQL — это в основном декларативный язык [2] и позволяет комбинировать различные шаблоны доступа к данным в одном запросе. [3]
ArangoDB — это система баз данных NoSQL [4], но AQL во многом похож на SQL , [5] он использует RocksDB в качестве механизма хранения.
История
ArangoDB GmbH была основана в 2014 году Клаудиусом Вайнбергером и Фрэнком Целлером. [6] Первоначально они назвали систему базы данных «Универсальный контейнер объектов», или сокращенно AVOC, что привело к тому, что они назвали базу данных AvocadoDB. [7] [8] [9] Позже они изменили название на ArangoDB. [10] Слово «аранго» относится к малоизвестному сорту авокадо, выращиваемому на Кубе. [11]
В январе 2017 года ArangoDB привлекла посевные инвестиции в размере 4,2 млн евро под руководством Target Partners. В марте 2019 года ArangoDB привлекла 10 млн долларов в рамках финансирования серии A [12] под руководством Bow Capital. В октябре 2021 года ArangoDB привлекла 27,8 млн долларов в рамках финансирования серии B под руководством Iris Capital . [13]
История релизов
Функции
- JSON: ArangoDB использует JSON в качестве формата хранения по умолчанию, [14] но внутренне он использует ArangoDB VelocyPack — быстрый и компактный двоичный формат для сериализации и хранения. [15] ArangoDB может изначально хранить вложенный объект JSON как запись данных внутри коллекции. Поэтому нет необходимости разбирать полученные объекты JSON. Таким образом, сохраненные данные просто унаследуют древовидную структуру данных JSON.
- Предсказуемая производительность: ArangoDB написан в основном на C++ [16] и управляет собственной памятью, чтобы избежать непредсказуемой производительности, возникающей из-за сборки мусора .
- Масштабирование: ArangoDB обеспечивает масштабирование посредством кластеризации. [17]
- Надежность: ArangoDB обеспечивает репликацию между центрами обработки данных. [18]
- Kubernetes: ArangoDB работает на Kubernetes, включая облачные сервисы Kubernetes Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) и Microsoft Azure Kubernetes Service (AKS). [19]
- Микросервисы: ArangoDB обеспечивает интеграцию с собственными микросервисами JavaScript непосредственно поверх СУБД с использованием фреймворка Foxx. [20]
- Несколько языков запросов: база данных имеет собственный язык запросов AQL (язык запросов ArangoDB), а также предоставляет GraphQL для написания гибких собственных веб-сервисов непосредственно поверх СУБД. [21]
- Поиск: поисковая система ArangoDB сочетает в себе возможности поиска булевых значений с обобщенными компонентами ранжирования, что позволяет извлекать данные на основе точной модели векторного пространства . [22]
- Алгоритм Pregel: Pregel — это система для обработки крупномасштабных графов. [23] Pregel реализован в ArangoDB и может использоваться с предопределенными алгоритмами, например PageRank, Single-Source Shortest Path и Connected components. [24]
- Транзакции: ArangoDB поддерживает определяемые пользователем транзакции. Транзакции в ArangoDB являются атомарными, последовательными, изолированными и долговечными ( ACID ), но только если данные не сегментированы. [25]
AQL (ArangoDB Query Language) — это SQL -подобный язык запросов [26], используемый в ArangoDB. Он поддерживает операции CRUD как для документов (узлов), так и для ребер, но не является языком определения данных (DDL). AQL поддерживает геопространственные запросы.
AQL ориентирован на JSON :
// Возвращает каждый документ в коллекции FOR doc IN collection RETURN doc // Подсчитывает количество документов в коллекции FOR doc IN collection COLLECT WITH COUNT INTO length RETURN length // Добавить новый документ в нашу коллекцию INSERT { _key : "john" , name : "John" , age : 45 } INTO collection // Обновить документ с ключом «john», чтобы возраст был 46. ОБНОВЛЕНИЕ { _key : «john» , age : 46 } В коллекции // Добавить атрибут numberOfLogins для всех пользователей со статусом active: FOR u IN users FILTER u . active == true UPDATE u WITH { numberOfLogins : 0 } IN users
Издания
- Community Edition: ArangoDB Community Edition — это графовая база данных с собственными возможностями многомодельной базы данных, написанная в основном на C++ и доступная по лицензии с открытым исходным кодом (Apache 2) до октября 2023 года. Затем она была изменена на «ArangoDB Community License, которая ограничивает ее использование в коммерческих целях и накладывает ограничение в 100 ГБ на размер набора данных в пределах одного кластера» [27]
- Коммерческое самостоятельное управление: ArangoDB Enterprise — это платная подписка, которая включает в себя сегментирование с учетом графов (называемое «SmartGraphs») [28] и репликацию коллекций (называемую «Satellite Collections») для сокращения времени запросов [29] и повышения безопасности [30] .
- Облако: ArangoDB предлагается как облачный сервис под названием Oasis, предоставляющий базы данных ArangoDB как услугу ( DBaaS ). ArangoDB Oasis обеспечивает функциональность кластерного развертывания ArangoDB, сводя к минимуму объем требуемых административных усилий. [31] ArangoDB Oasis работает на нескольких поставщиках облачных сервисов, включая AWS, Azure и Google Cloud. [32]
Смотрите также
Ссылки
- ^ "Преимущества собственной многомодельности в ArangoDB". ArangoDB . Получено 2022-07-26 .
- ^ "Введение в язык запросов ArangoDB (AQL) | Документация ArangoDB". www.arangodb.com . Получено 26.07.2022 .
- ^ "Шаблоны и примеры запросов AQL | Документация ArangoDB". www.arangodb.com . Получено 2022-07-26 .
- ^ Целлер, Фрэнк (2012-03-07). "Цели проектирования ArangoDB". ArangoDB . Получено 2022-07-26 .
- ^ "Введение в язык запросов ArangoDB (AQL) | Документация ArangoDB". www.arangodb.com . Получено 26.07.2022 .
- ^ "База данных сортов". www.avocadosource.com . Получено 2022-07-27 .
- ^ Ортелл, Билл (2021-03-08), AvocadoDB , получено 2022-07-27
- ^ Объяснение AvocadoDB , получено 27.07.2022
- ^ AvocadoDB Query Language Ян Стиманн на английском языке , получено 27.07.2022
- ^ ""AvocadoDB" становится "ArangoDB"". ArangoDB . 2012-05-09 . Получено 2022-07-27 .
- ^ "База данных сортов". www.avocadosource.com . Получено 2022-08-05 .
- ^ Вайнбергер, Клавдий (14.03.2019). "ArangoDB получает финансирование серии A под руководством Bow Capital". ArangoDB . Получено 27.07.2022 .
- ^ "ArangoDB объявляет о $27,8 млн инвестиций серии B для ускорения разработки следующего поколения Graph ML, предоставляющего расширенные возможности аналитики и искусственного интеллекта в масштабе предприятия". ArangoDB . Получено 27.07.2022 .
- ^ Объяснение AvocadoDB , получено 2022-08-05
- ^ AvocadoDB Query Language Ян Стиманн на английском языке , получено 2022-08-05
- ^ ArangoDB, ArangoDB, 05 августа 2022 г. , получено 5 августа 2022 г.
- ^ "Кластер | Режимы развертывания ArangoDB | Архитектура | Руководство | Документация ArangoDB". www.arangodb.com . Получено 2022-08-05 .
- ^ "DC2DC Replication | ArangoDB Documentation". www.arangodb.com . Получено 2022-08-05 .
- ^ "Kubernetes | Учебники | Руководство | Документация ArangoDB". www.arangodb.com . Получено 2022-08-05 .
- ^ "Foxx Microservices | Документация ArangoDB". www.arangodb.com . Получено 2022-08-05 .
- ^ ArangoDB, ArangoDB, 05 августа 2022 г. , получено 5 августа 2022 г.
- ^ "ArangoSearch - полнотекстовая поисковая система, включающая возможности ранжирования по схожести". ArangoDB . Получено 2022-08-05 .
- ^ «Белая книга Стэнфордского университета Прегеля» (PDF) .
- ^ "Pregel | Наука о данных | Руководство | Документация ArangoDB". www.arangodb.com . Получено 2022-08-05 .
- ^ "Транзакции | Руководство | Документация ArangoDB". www.arangodb.com . Получено 2022-08-05 .
- ^ "Кластер | Режимы развертывания ArangoDB | Архитектура | Руководство | Документация ArangoDB". www.arangodb.com . Получено 2022-08-11 .
- ^ ArangoDB, ArangoDB, 13 октября 2023 г. , получено 13 октября 2023 г.
- ^ "ArangoDB SmartGraphs | Документация ArangoDB". www.arangodb.com . Получено 2022-08-11 .
- ^ "ArangoDB SatelliteCollections | Документация ArangoDB". www.arangodb.com . Получено 2022-08-11 .
- ^ "ArangoDB Enterprise Features". ArangoDB . Получено 2022-08-11 .
- ^ «Начало работы с ArangoDB Oasis | Документация ArangoDB». www.arangodb.com . Получено 11 августа 2022 г.
- ^ "Оазис ArangoDB" . ArangoDB Оазис . Проверено 11 августа 2022 г.