Введение в облачные решения Microsoft

Windows Azure Blob: введение, модель данных, REST - интерфейс

Показывать лекцию целиком

Общие сведения

Аббревиатура BLOB расшифровывается как Binary Large Object, т.е. большой бинарный объект - массив двоичных данных. В СУБД BLOB - специальный тип данных, предназначенный, в первую очередь, для хранения медиа- информации и компилированного программного кода.

Blob - хранилище в Azure может быть представлено в виде специального табличного хранилища в "облаке". Windows Azure Blob расширяет табличное хранилище и рассчитано на хранение больших объемов информации. Разница между Table и Blob хранилищами заключается в следующем:

  • Табличное хранилище для управления таблицами использует ключи секций и строк. Бинарное хранилище для управления использует контейнер хранения ( storage container ) и идентификатор ( blob ID ).
  • Табличное хранилище может работать со всеми основными форматами данных, как то символы, строки, целые и действительные числа, XML и т.д. Бинарное хранилище рассчитано только на, очевидно из названия, бинарный тип данных, при этом данных хранятся в виде блоков (data chunks).
  • Доступ к Blob - хранилищу осуществляется через пользовательскую учетную запись. Одна учетная запись может создать несколько Blob - контейнеров. В свою очередь, Blob - контейнер может включать в себя несколько Blob - объектов. (см. рис 18.1).

    (рис 18.1)

    Модель данных

    Рассмотрим модель данных Windows Azure Blob более детально. Выделим основные термины:

  • Учетная запись. Любой доступ к Windows Azure Storage и его сервисам, осуществляется посредством учетной записи. Как уже отмечалось, одна учетная запись может иметь несколько Blob - контейнеров.
  • Blob - контейнер. Контейнер группирует Blob - объекты. При этом политики использования данных задаются на уровне контейнера.
  • Blob (blob - объект). Хранится в контейнере. Каждый объект может быть размером до 50 Гб и имеет уникальное строковое имя в рамках контейнера. С бинарными объектами могут быть ассоциированы метаданные (рис 18.1), задающиеся в виде пары "имя - значение" размером до 8Кб.
  • На рис 18.2 приведена структура данных Windows Azure Blob, полученная средствами MS SQL Server 2008.

    Отметим ряд особенностей работы с бинарными объектами и контейнерами:

  • контейнеры хранятся распределено;
  • область действия одного контейнера ограничена учетной записью пользователя;
  • при удалении контейнера, возможно возникновение задержек при повторном его создании, особенно при наличии большого количества объектов, т.е. до тех пор пока система не очистит blob - объекты попытки создать контейнер с тем же именем, что и удаляемый, будут вызывать ошибку;
  • подтверждение команд создания и удаления контейнера возвращаются от сервера клиенту, даже в случае если данные процессы занимают длительное время.
  • (рис 18.2)

    REST - интерфейс Blob - объектов

    Любой доступ к Windows Azure Blob осуществляется через стандартные HTTP - команды PUT, Get и DELETE интерфейса REST.

    Приведем перечень поддерживаемых HTTP/REST команд операций с Blob - объектами и контейнерами:

    Blob-операции
    ОперацииМетод HTTPОписание
    List Containers GET Список всех контейнеров данной учетной записи
    Create Container PUT Создание нового контейнера в рамках учетной записи
    Get Container Properties GET/HEAD Возвращает все свойства и метаданные контейнера
    Get Container Metadata GET/HEAD Возвращает только определенные пользователем метаданные указанного контейнера
    Set Container Metadata PUT Задает заголовки метаданных контейнера
    Get Container ACL GET/HEAD Получение списка управления доступом ( Access Control List - ACL ) и политик доступа контейнера
    Set Container ACL PUT Задает ACL и политики доступа контейнера
    Delete Container DELETE Удаление контейнера и всех его blob - объектов
    List Blobs GET Список всех blob - объектов контейнера
    Put Blob PUT Создание нового blob - объекта, или перемещение существующего
    Get Blob GET Чтение или загрузка blob - объекта, включая все свойства и метаданные
    Get Blob Properties HEAD Возвращает все свойства и метаданных blob - объекта
    Set Blob Properties PUT Задает свойства blob - объекта
    Get Blob Metadata GET/HEAD Возвращает заголовки метаданных blob - объекта
    Set Blob Metadata PUT Задание свойств большого двоичного объекта
    Delete Blob DELETE Удаление blob - объекта
    Lease Blob PUT Установка одноминутной блокировки записи blob-объекта.
    Snapshot Blob PUT Создание снимка blob - объекта. Копирование исходного blob- объекта в blob - назначения, в рамках одной и той же учетной записи

    Более полный перечень команд можно найти по ссылке в списке материалов для самостоятельного изучения.

    СПИСОК МАТЕРИАЛОВ ДЛЯ САМОСТОЯТЕЛЬНОГО ИЗУЧЕНИЯ

    Windows Azure Blob

  • http://msdn.microsoft.com/ru-ru/library/ee872420.aspx
  • Windows Azure Blob - блоки и страницы

  • http://msdn.microsoft.com/en-us/library/ee691964.aspx
  • Blob Service API

  • http://msdn.microsoft.com/ru-ru/library/dd135733.aspx
  • http://blogs.msdn.com/b/windowsazurestorage/archive/2011/02/18/windows-azure-blob-md5-overview.aspx
  • Вернуться к учебному плану