Microsoft DocumentDB: статья первая, введение

OSzone.net » Microsoft » Разработка приложений » Облако/Azure » Microsoft DocumentDB: статья первая, введение
Автор: Александр Белоцерковский
Иcточник: msdn.microsoft.com
Опубликована: 02.02.2015

В августе мы выпустили большое количество новых продуктов на Microsoft Azure, причем совершенно закономерно одной из самых интересных для нашей аудитории оказался сервис Document NoSQL Database по имени DocumentDB. Время пришло, и мы начинаем про него писать — первая статья, как водится, введение.

*
Увеличить

Что такое Azure DocumentDB?

Microsoft Azure DocumentDB — это документоориентированная, NoSQL база данных, специально спроектированная для приложений в вебе и на мобильных устройствах — с гарантированно-быстрыми операциями чтения и записи, гибкостью схемы и возможностью быстро разворачивать и масштабировать базу вниз и вверх. Еще в DocumentDB есть сложные запросы с привлечением SQL-диалекта, поддержка JavaScript, обработка транзакций со многими документами и много чего хорошего.

Azure DocumentDB — это:

Ресурсы Azure DocumentDB


В Azure DocumentDB данные реплицируются и адресуются URI — для всех ресурсов выставлен простой RESTful-доступ. У вас есть аккаунт для базы, и он является уникальным глобальным пространством имен. Все ресурсы внутри пространства хранятся в JSON-документах с метаданными и коллекциями вещей. На картинке — отношения между ресурсами DocumentDB.


*
Увеличить


Аккаунт состоит из пачки баз данных, каждая из которых состоит из нескольких коллекций, каждая из которых содержит хранимые процедуры, триггеры, UDF, документы и сопутствующие аттачи. За базой можно закрепить пользователей с конкретными разрешениями по доступу к коллекциям, хранимым процедурам, триггерам, UDF, документам и др.

Разработка с Azure DocumentDB

Раз Azure DocumentDB выставляет операции с ресурсами с REST API, запросы можно выполнять с любым языком, который умеет HTTP/HTTPS. Для нескольких языков есть специальные библиотеки, упрощающие работу с DocumentDB:

Транзакции и исполнение JavaScript

Как уже упоминалось, в Azure DocumentDB можно писать логику в виде JavaScript, «программы» затем регистрируются на коллекции и поддерживают операции на документах внутри этих коллекций. Приложение на JS можно зарегистрировать на исполнение для триггеров, хранимых процедур и UDF, триггеры и хранимые процедуры умеют CRUD, тогда как UDF не имеют доступа на запись. Вся логика JS исполняется внутри ambient ACID transaction со snapshot isolation, причем логика на JS считается как бы современной заменой для T-SQL. Если же во время исполнения JS выкинет исключение, то вся транзакция откатывается.


Посмотрим на пример MSN.com. MSN — это огромный портал, который посещает полмиллиарда пользователей в месяц. Отсюда необходимость в большом масштабируемом распределенном хранилище со свободной схемой. В определенный момент команда разработки решила перенести всё в Azure и создать там единую распределенную систему хранилища User Data Store со следующими требованиями:

  1. Масштабирование до +425 миллионов уникальных пользователей +100 миллионов уже аутентифицировавшихся в системе пользователей
  2. 20 терабайт хранилища
  3. Латентность на запись — до 15 мс
  4. Отсутствие фиксированной схемы
  5. Поддержка транзакций
  6. Hadoop-аналитика поверх данных
  7. Географическая распределенность и доступность

Выбор пал на Azure DocumentDB. Одна из частей системы, Health and Fitness, состоит из следующих компонентов:

Новый портал MSN хранит данные пользователей в DocumentDB с 150 юнитами пропускной способности с SSD и тремя географическими регионами.

Размер документов варьируется от 1 до 10 килобайт, и не обладают никакой общей схемой. Большинство коллекций настроены таким образом, чтобы давать оптимальные значения пропускной способности, минимальные накладные расходы на индексирование.

*
Увеличить


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

Создаем аккаунт DocumentDB

Заходим на новый портал управления Microsoft Azure

Нажимаем New -> DocumentDB Account.
*

Либо можно сделать то же самое, дойдя до категории “Data, storage, + backup” и выбрав DocumentDBand.

*
Увеличить

В New DocumentDB (Preview) выберем нужную конфигурацию.

*

В Name введем имя — оно будет использоваться в адресации аккаунта (хосте). Настройку Pricing Tier поставить пока нельзя, так как функциональность находится в превью и доступен только один режим оплаты (подробнее про цены тут).В опциональных настройках можно указать емкость, которая будет выделена для аккаунта — она измеряется в юнитах, добавляя или убирая которые можно быстро масштабировать решение (юнит состоит из взвешенного количества хранилища и пропускной способности и по умолчанию для аккаунта выставляется 1 юнит). Подробнее про производительность и пропускную способность тут.

Создание аккаунта занимает несколько минут.



*

*

Аккаунт создан и готов к использованию. Режим консистентности по умолчанию выставляется в Session.

*
Увеличить


Посмотреть, что происходит с аккаунтами DocumentDB, можно в окне Browse.

*
Увеличить

Итого – мы посмотрели на то, что такое DocumentDB, на базовые концепции сервиса, на пример использования и создали аккаунт. В следующей части – подробнее про концепции и использование.


Ссылка: http://www.oszone.net/26152/DocumentDB-1