Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Разработка приложений Облако/Azure Microsoft DocumentDB: статья первая, введение RSS

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

Текущий рейтинг: 0 (проголосовало 0)
 Посетителей: 400 | Просмотров: 502 (сегодня 0)  Шрифт: - +

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

*
Увеличить

  • Что это такое? Базовые концепции.
  • Как создать аккаунт?

Что такое Azure DocumentDB?

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

Azure DocumentDB — это:

  • Запросы с SQL-синтаксисом: хранение гетерогенных документов JSON внутри DocumentDB, запросы к ним.
  • Параллельная технология автоматического индексирования с содержимого документа свободная от блокировок (соответственно, без необходимости указывать schema hints, вторичные индексы или представления).
  • JavaScript внутри базы — логика как хранимые процедуры, триггеры и UDF, что значит, что можно логику класть поверх JSON без опасности получить рассинхронизацию между приложением и схемой базы.
  • Полноценное транзакционное выполнение логики на JavaScript в движке (INSERT, REPLACE, DELETE, SELECT в JavaScript как изолированная транзакция)
  • Настраиваемые уровни консистентности в количестве четырех — Strong, Bounded-Staleness, Session и Eventual.
  • Полная управляемость: нет необходимости в управлении базы и ресурсами машины, так как 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, состоит из следующих компонентов:

  • DietTracker: мониторинг ежедневной диеты — каждая запись содержит данные о калориях, жирах, протеине и др.
  • Exercise Tracker: мониторинг упражнений.
  • GPSTracker: трекинг GPS. Метаданные о происходящем хранятся в DocumentDB.
  • Pedometer: Шаги.
  • Weight Tracker. Вес.
  • Analysis: Исторические данные по диете, упражнениям, GPS и др.
  • Favoritesandcustom: закладки на любимую еду, упражнения, метаданные и др.

Новый портал 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, на базовые концепции сервиса, на пример использования и создали аккаунт. В следующей части – подробнее про концепции и использование.

Автор: Александр Белоцерковский  •  Иcточник: msdn.microsoft.com  •  Опубликована: 02.02.2015
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:   DocumentDB.


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.