- PVSM.RU - https://www.pvsm.ru -
Привет,
В августе мы зарелизили большое количество новых вещей на Microsoft Azure (пруфлинк), причем совершенно закономерно одной из самых интересных для нашей аудитории оказался сервис Document NoSQL Database по имени DocumentDB. Время пришло, и мы начинаем про неё писать — первая статья, как водится, введение:
В современном мире приложения постоянно производят и не всегда, но потребляют, большое количество данных. Данные, как и приложение, со временем мимикрируют, и вместе с ними изменяется и схема данных, что периодически приводит к мысли о том, что для таких сценариев хорошо подходят schema-free NoSQL базы — быстрое, простое и настраиваемое решение. Однако много таких технологий не позволяют выполнять сложные запросы и процессы, затрагивающие транзакции, что приводит к усложнению процесса управления нетривиальных моделей.
Microsoft Azure DocumentDB — это документоориентированная, NoSQL база данных, специально спроектированная для приложений в вебе и на мобильных устройствах — с гарантированно-быстрыми операциями чтения и записи, гибкостью схемы и возможностью быстро разворачивать и масштабировать базу вниз и вверх. Еще в DocumentDB есть сложные запросы с привлечением SQL-диалекта, поддержка JavaScript, обработка транзакций с многими документами и много еще хорошего. По умолчанию DocumentDB поддерживает для операций со схемой JSON, и глубокая интеграция с JavaScript помогает выполнять бизнес-логике прямо внутри движка с учетом транзакций.
Azure DocumentDB — это:
В Azure DocumentDB данные реплицируются и адресуются URI — для всех ресурсов выставлена простая RESTful-доступ. У вас есть аккаунт для базы, и он является уникальным глобальным пространством имен. Все ресурсы внутри пространства хранятся в JSON-документах с метаданными и коллекциями вещей. На картинке — отношения между ресурсами DocumentDB.
Аккаунт состоит из пачки баз данных, каждая из которых состоит из нескольких коллекций, каждая из которых содержит хранимые процедуры, триггеры, UDF, документы и сопутствующие аттачи. За базой можно закрепить пользователей с конкретными разрешениями по доступу к коллекциям, хранимым процедурам, триггерам, UDF, документам и др.
Раз Azure DocumentDB выставляет операции с ресурсами с REST API, запросы можно выполнять с любым языком, который умеет HTTP/HTTPS. Для нескольких языков есть специальные библиотеки, упрощающие работу с DocumentDB:
Как уже писалось, в Azure DocumentDB можно писать логику в виде JavaScript, «программы» затем регистрируются на коллекции и поддерживают операции на документах внутри этих коллекций. Приложение на JS можно зарегистрировать на исполнение для триггеров, хранимых процедур и UDF, триггеры и хранимые процедуры умеют CRUD, тогда как UDF не имеют доступа на запись. Вся логика JS исполняется внутри ambient ACID transaction со snapshot isolation, причем логика на JS считается как бы современной заменой для T-SQL. Если же во время исполнения JS выкинет исключение, то вся транзакция откатывается.
Посмотрим на пример! MSN.com [5]. MSN — это огромный портал, который посещает полмиллиарда пользователей в месяц. Отсюда необходимость в большом масштабируемом распределенном хранилище со свободной схемой. В определенный момент команда разработки решила перенести всё в Azure и создать там единую распределенную систему хранилища User Data Store со следующими требованиями:
Выбор пал на Azure DocumentDB. Одна из частей системы, Health and Fitness, состоит из следующих компонентов:
Новый портал MSN хранит данные пользователей в DocumentDB с 150 юнитами пропускной способности с SSD и тремя географическими регионами.
Размер документов варьируется от 1 до 10 килобайт, и не обладают никакой общей схемой. Большинство коллекций настроены таким образом, чтобы давать оптимальные значения пропускной способности, минимальный оверхед на индексирование.
UDS распределяет пользовательскую информацию по коллекциям, данные каждого пользователя хранятся в документах. В процессе происходит горизонтальное масштабирование и распределение по пользовательским ID.
Заходим на новый портал управления Microsoft Azure
Нажимаем New -> DocumentDB Account.
Либо можно сделать то же самое, дойдя до категории “Data, storage, + backup” и выбрав DocumentDBand.
В New DocumentDB (Preview) выберем нужную конфигурацию.
В Name введем имя — оно будет использоваться в адресации аккаунта (хосте). Настройку Pricing Tier поставить пока нельзя, так как функциональность находится в превью и доступен только один режим оплаты (подробнее про цены тут).В опциональных настройках можно указать емкость, которая будет выделена для аккаунта — она измеряется в юнитах, добавляя или убирая которые можно быстро масштабировать решение (юнит состоит из взвешенного количества хранилища и пропускной способности и по умолчанию для аккаунта выставляется 1 юнит). Подробнее про производительность и пропускную способность тут.
Создание аккаунта занимает несколько минут.
Аккаунт создан и готов к использованию. Режим консистентности по умолчанию выставляется в Session.
Посмотреть, что происходит с аккаунтами DocumentDB, можно в окне Browse.
Итого – мы посмотрели на то, что такое DocumentDB, на базовые концепции сервиса, на пример использования и создали аккаунт. В следующей части – подробнее про концепции и использование.
Автор: ahriman
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/oblako/72168
Ссылки в тексте:
[1] .NET: http://go.microsoft.com/fwlink/?linkid=402989&clcid=0x409
[2] Node.js: http://go.microsoft.com/fwlink/?linkid=402990&clcid=0x409
[3] JavaScript: http://go.microsoft.com/fwlink/?linkid=402991&clcid=0x409
[4] Python: http://go.microsoft.com/fwlink/?linkid=402992&clcid=0x409
[5] MSN.com: http://msn.com
[6] Попробовать Azure: http://aka.ms/azure_trial_free_rus
[7] Изучить курсы: http://aka.ms/gomvarus
[8] Загрузить: http://aka.ms/getvsrus
[9] Центр разработки Microsoft Azure (azurehub.ru): http://www.azurehub.ru/
[10] Twitter.com/windowsazure_ru: http://www.twitter.com/windowsazure_ru
[11] Сообществе Microsoft Azure на Facebook: http://www.facebook.com/groups/azurerus/
[12] Стать разработчиком: http://aka.ms/wpstartrus
[13] Источник: http://habrahabr.ru/post/240955/
Нажмите здесь для печати.