ArangoDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:11, 27 декабря 2017.
ArangoDB
fraimed
Разработчики: ArangoDB GmbH
Постоянный выпуск: 3.3 / December 20, 2017 (2017-12-20)
Написана на: JavaScript,C++
Операционная система: Linux,OS X,Debian,Windows
Тип ПО: Графовая БД,документо-ориентированная БД, хранилище ключей, мультимодельная БД
Веб-сайт www.arangodb.com

ArangoDB — это распределенная СУБД,разработанная triAGENS GmbH. Система базы данных поддерживает три важные модели данных (ключ / значение, документы, графики) с одним ядром БД и единым языком запросов AQL (язык запросов ArangoDB) . Язык запросов является декларативным и позволяет сочетать разные шаблоны доступа к данным в одном запросе. Эта БД позволет создавать высокопроизводительные приложения, используя удобный язык запросов SQL или JavaScript, а так же можно в случае нужды, использовать ACID-транзакции.


Описание

ArangoDB - многоцелевая открытая СУБД , предоставляющая гибкие модели хранения документов, графов и данных в формате ключ-значение. Работа с базой осуществляется через SQL-подобный язык запросов AQL или через специальные расширения на языке JavaScript. Средства для хранения данных соответствуют требованиям ACID (атомарность, согласованность, изолированность, надежность), поддерживают транзакции и обеспечивают как горизонтальную, так и вертикальную масштабируемость. Управление СУБД может производиться через web-интерфейс или консольный клиент ArangoSH. Проект написан на языках C и JavaScript.

Пошаговое руководство работы с ArangoDB

Рассматриваются следующие случаи:

  • Как установить и запустить локальный сервер ArangoDB;
  • Как использовать веб-интерфейс для взаимодействия с ним;
  • Как хранить данные примера в базе данных;
  • Как отправлять запросы в базу данных для получения данных;
  • Как редактировать и удалять существующие данные в БД.

Скачиваем с официального сайта ArangoDB [Источник 1]

Если в Linux установлен бинарный пакет, сервер автоматически запускается. Если вы установили ArangoDB с использованием homebrew под MacOS X, запустите сервер, запустив его

 /usr/local/sbin/arangod 

Если вы установили ArangoDB под Windows в качестве службы, сервер автоматически запустится.

Обеспечение безопасности установки

Установка по умолчанию содержит одну базу данных _system и пользователь с именем root . Пакеты на базе Debian и установщик Windows будут запрашивать пароль во время процесса установки. Пакеты на основе Red Hat будут устанавливать случайный пароль. Для всех других установочных пакетов вам необходимо выполнить

 shell> arango-secure-installation 

Это потребует пароль root и устанавливает этот пароль.

Web-интерфейс

Сам сервер ( arangod ) говорит HTTP / REST, но вы можете использовать графический веб-интерфейс, чтобы он был простым. Существует также arangosh , синхронная оболочка для взаимодействия с сервером. Если вы разработчик, вы можете предпочесть оболочку над графическим интерфейсом. Однако он не предоставляет таких функций, как подсветка синтаксиса. ArangoDB shell ( arangosh ) - это инструмент командной строки, который может использоваться для администрирования ArangoDB, включая запуск специальных запросов. Веб-интерфейс станет доступен вскоре после того, как вы запустите arangod. Вы можете получить доступ к нему в своем браузере по адресу

http://127.0.0.1:8529 

По умолчанию аутентификация включена. Пользователь по умолчанию root. В зависимости от используемого метода установки процесс установки либо запрашивает пароль root, либо пароль root по умолчанию пуст. Если все работает так, как ожидалось, вы увидите окно входа в систему:

Веб-интерфейс ArangoDB

Затем вам будет предложено использовать базу данных. Каждый экземпляр сервера поставляется с _system базой данных. Выберите эту базу данных, чтобы продолжить.

Выбор базы данных

Затем вам должна быть представлена ​​панель мониторинга с статистикой сервера следующим образом:

Панель мониторинга с статистикой сервера

Запрос базы данных

Время для получения нашего документа с использованием языка запросов AQL, ArangoDB. Мы можем напрямую просмотреть документ, который мы создали через _id, но есть и другие варианты. Щелкните элемент меню QUERIES, чтобы открыть редактор запросов и введите следующее (скорректируйте идентификатор документа в соответствии с вашим документом):

 RETURN DOCUMENT("users/9883") 

Затем нажмите Execute, чтобы выполнить запрос. Результат появляется под редактором запросов:

 [
  {
    "_key": "9883",
    "_id": "users/9883",
    "_rev": "9883",
    "age": 32,
    "name": "John Smith"
  }
]) 

Как вы можете видеть, возвращается весь документ, включая системные атрибуты. DOCUMENT () - это функция для получения одного документа или списка документов, о которых вы знаете _keys или _ids. Мы возвращаем результат вызова функции как наш результат запроса, который является нашим документом внутри массива результатов (мы могли бы вернуть несколько результатов с другим запросом, но даже для одного документа в результате мы все равно получаем массив на верхнем уровне).

Удаление одного из пользовательских документов:

 REMOVE "9883" IN users 

Он удаляет пользователя John ( _key: "9883"). Можно также удалить документы в цикле ( то же самое касается INSERT, UPDATE и REPLACE):

 
  FOR user IN users
      FILTER user.age >= 30
      REMOVE user IN users

Ключевые особенности

Ключевые особенности ArangoDB:

  • Отсутствие необходимости определения схемы хранения данных (Schema-free), данные структурируются в форме документов, в которых метаданные и информация о структуре отделена от пользовательских данных;
  • Возможность использования ArangoDB в качестве сервера для web-приложений на языке JavaScript. Поддержка доступа к базе через REST/Web API;
  • Использование JavaScript как для обращающихся к БД браузерных приложений, так и для обработчиков, выполняемых на стороне СУБД;
  • Многопоточная архитектура, распределяющая нагрузку на все ядра CPU;
  • Гибкая модель хранения данных, в которой могут быть комбинированы пары ключ-значение, документы и параметры, определяющие связи между записями (предоставляются средства для обхода вершин графа[Источник 2]. );
  • Возможность выбора типа индекса, соответствующего решаемым задачам (например, можно использовать индекс для полнотекстового поиска);
  • Настраиваемая надёжность: приложение само может определять, что для него важнее: более высокая надёжность или более высокая производительность;
  • Эффективное хранилище, в котором в полной мере используются возможности современного оборудования (например, SSD-накопители) и могут применяться большие кэши;
  • Транзакции: возможность запускать запросы сразу для нескольких документов или коллекций с опциональной согласованностью транзакций и изоляцией;
  • Поддержка репликации и шардинга: возможность создания master-slave конфигураций и разнесения наборов данных на разные серверы в зависимости от определённого признака.
  • Поддержка конструкций ECMAScript 6, таких как итераторы, тип symbol, типизированные массивы, списки (sets) и хэши (maps)

Особенности и возможности:

  • Мульти-модель: Документы, графики и пары ключ-значение - возможные модели для использования так, как вы нужно для приложения.
  • Соединения: Удобное объединение того, что выполняется вместе с помощью нерегламентированных запросов, уменьшение избыточности данных.
  • Операции: Разработка приложений для хранения данных безопасно.

Вот запрос AQL, который использует все этих особенности:

Запрос AQL


Соединения и операции являются ключевыми характеристиками для гибких, безопасных конструкций данных, широко используемые в реляционных базах данных, но их не хватает во многих NoSQL БД.В ArangoDB можно использовать соединения без ущерба для производительности и масштабируемости [Источник 3].

Кроме того, ArangoDB предлагает основу JavaScript под названием Foxx, который выполняется на сервере базы данных с прямым доступом к данным. Можно создать microservices, ориентированные на данные с помощью нескольких строк кода:

Foxx Microservices

Установка ArangoDB

Ниже представлена демонстрация установки БД ArangoDB, а так же и работа с интерфейсом администратора:


Источники

  1. Официальный сайт ArangoDB [Электронный ресурс] // ArangoDB. URL: https://www.arangodb.com/download/ (дата обращения: 23.12.2017)
  2. Визуализация графиков с помощью ArangoDB и KeyLines [Электронный ресурс] // Cambridge Intelligence 2017. URL: https://cambridge-intelligence.com/visualize-arangodb/ (дата обращения: 23.12.2017)
  3. Масштабирование ArangoDB до гигабайт в секунду в DCOS Mesosphere [Электронный ресурс] // Mesosphere. URL: https://mesosphere.com/blog/arangodb-benchmark-dcos/ (дата обращения: 23.12.2017)