Pull to refresh

DocumentDB: база данных NoSQL от Microsoft

Reading time2 min
Views20K
Пусть и с некоторым опозданием по сравнению с остальными компаниями, но Microsoft сделала необходимое и выпустила собственную нереляционную базу данных: она называется DocumentDB. И пусть это проприетарная система, которая привязана к сервису Azure, это не делает новость менее значимой.

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 запросов в секунду к коллекции с возвращением одного документа.
Tags:
Hubs:
+25
Comments28

Articles