Пусть и с некоторым опозданием по сравнению с остальными компаниями, но Microsoft сделала необходимое и выпустила собственную нереляционную базу данных: она называется DocumentDB. И пусть это проприетарная система, которая привязана к сервису Azure, это не делает новость менее значимой.
DocumentDB автоматически индексирует содержимое всех документов, допускает обработку запросов в реальном времени, полностью поддерживает требования ACID к транзакциям (атомарность, согласованность, изолированность, надёжность). Система очень похожа на MongoDB как эффективное хранилище JSON-документов с богатыми API для запросов, в то же время выгодно отличается от MongoDB по масштабируемости и надёжности работы, глубокой интеграции JavaScript, поддержке RESTful API, асинхронных запросов и др.
Как и MongoDB, DocumentDB представляет собой иерархию баз данных, коллекций и документов.
Запросы на SQL-подобном синтаксисе в DocumentDB обрабатываются как есть, без необходимости выбирать индексы.
Вот как выглядят SQL-подобные запросы в DocumentDB.
DocumentDB исполняет скрипты JavaScript внутри базы данных. Различные хранимые в базе процедуры, функции и триггеры можно писать на JavaScript (скрипты лежат в коллекциях для последующего выполнения). Вся логика JavaScript исполняется в рамках гарантированной ACID-надёжности с изоляцией снэпшотов. Во время исполнения, если скрипт выбрасывает exception, вся транзакция отменяется.
Клиентские библиотеки для работы с хранилищем DocumentDB:
Стоимость использования DocumentDB в облаке Azure измеряется в юнитах (capacity units) и начинается от $22,50 за юнит (учитывая скидку 50% на пробный период). Один юнит — это 10 ГБ места на SSD-диске, 2000 операций чтения в секунду, 500 операций в секунду вставки/замены/удаления, 1000 запросов в секунду к коллекции с возвращением одного документа.
DocumentDB автоматически индексирует содержимое всех документов, допускает обработку запросов в реальном времени, полностью поддерживает требования ACID к транзакциям (атомарность, согласованность, изолированность, надёжность). Система очень похожа на MongoDB как эффективное хранилище JSON-документов с богатыми API для запросов, в то же время выгодно отличается от MongoDB по масштабируемости и надёжности работы, глубокой интеграции JavaScript, поддержке RESTful API, асинхронных запросов и др.
Как и MongoDB, DocumentDB представляет собой иерархию баз данных, коллекций и документов.
Запросы на SQL-подобном синтаксисе в DocumentDB обрабатываются как есть, без необходимости выбирать индексы.
Вот как выглядят SQL-подобные запросы в DocumentDB.
SELECT *
FROM teams T
WHERE T.city = 'Melbourne'
SELECT T
FROM teams T
JOIN person IN T.members
WHERE person.age >= 18
SELECT ApplySalesTax(item, 'Australia')
FROM item in cart.items
DocumentDB исполняет скрипты JavaScript внутри базы данных. Различные хранимые в базе процедуры, функции и триггеры можно писать на JavaScript (скрипты лежат в коллекциях для последующего выполнения). Вся логика JavaScript исполняется в рамках гарантированной ACID-надёжности с изоляцией снэпшотов. Во время исполнения, если скрипт выбрасывает exception, вся транзакция отменяется.
Клиентские библиотеки для работы с хранилищем DocumentDB:
Стоимость использования DocumentDB в облаке Azure измеряется в юнитах (capacity units) и начинается от $22,50 за юнит (учитывая скидку 50% на пробный период). Один юнит — это 10 ГБ места на SSD-диске, 2000 операций чтения в секунду, 500 операций в секунду вставки/замены/удаления, 1000 запросов в секунду к коллекции с возвращением одного документа.