Windows Azure Blob, как список блоков. Примеры REST - запросов
Блоки и страницы
Кроме уже рассмотренных нами основ blob - объектов и хранилищ, необходимо так же пояснить термины "блок" и "страница".
"Блок" и "страница" - способы организации хранения бинарных объектов.
Blob -блок
Бинарный объект размером до десятков гигабайт, с целью обеспечения его эффективной загрузки, разбивается на блоки.
Блоки оптимизированы для потоковой передачи информации. Запись блоков осуществляется в два этапа: сначала загружаются отдельные блоки информации, являющиеся частью одного бинарного объекта, затем необходимо подтвердить добавление блоков. В течении процесса подтверждения можно добавлять, удалять и изменять блоки бинарного объекта. При создании блока нет необходимости задавать его размер, блоки просто добавляются бинарному объекту. Также необязательно создавать блоки в строго определенной последовательности, упорядочить и редактировать блоки можно позднее.
Структура и атрибуты блока указаны на рис. 19.1 (среда MS SQL Server 2008)
Подытоживая вышесказанное. Блок бинарных объектов состоит из частей (блоки блока) , каждый из которых идентифицируется по идентификатору (ID). Создать или изменить blob-блок можно после загрузки его частей. Максимальный размер каждой части блока 4Мб, сам блок бинарного объекта ограничен размером в 200Гб, или до 50000 частей.
Blob - страница
Как blob-блоки состоят из блоков, так и blob-страницы представляют собой коллекцию страниц.
При создании страницы необходимо указать ее предельный размер. Добавление или обновление blob-страницы осуществляется при помощи Put Page операции.
Чтение и запись данных в страницу можно начать с любого произвольного набора данных.
Blob - страница ограничена размером 1Тб.
Структура и атрибуты страницы указаны на рис. 19.2 (среда MS SQL Server 2008)
Windows Azure Blob, как набор блоков
При загрузке blob - объекта размером в десятки гигабайт реализовывается следующий сценарий (рис. 19.3):
- загружаемый объект разбивается на блоки, максимальный размер которых 4Мб;
- каждому блоку присваивается уникальный идентификатор в пределах бинарного объекта;
- блоки загружаются в "облако";
- после загрузки всех составных блоков бинарного объекта, определяются список блоков, которые должны использоваться blob - объекте.
Доступ к blob - объектам, осуществляется при помощи операций PUT и GET.
Таким образом, Blob-блок может быть создан:
- при размере меньше 64Мб, он может быть загружен при помощи Put Blob операции;
- при размере более 64Мб, blob разбивается на части размером 4Мб или меньше, которые после загрузки собираются в определенном порядке.