Лекція 13. Windows Azure Blob: введення, модель даних, REST - інтерфейс
Загальні відомості
Абревіатура BLOB розшифровується як Binary Large Object, тобто великий бінарний об'єкт - масив двійкових даних. В СУБД BLOB - спеціальний тип даних, призначений, в першу чергу, для зберігання медіа інформації і компілює програмного коду.
Blob - сховище в Azure може бути представлено у вигляді спеціального табличного сховища в "хмарі". Windows Azure Blob розширює табличное сховище і розраховане на зберігання великих обсягів інформації. Різниця між Table і Blob сховищами полягає в наступному:
1. Табличне сховище для управління таблицями використовує ключі секцій і рядків. Бінарне сховище для управління використовує контейнер зберігання (storage container) і ідентифікатор (blob ID).
2. Табличне сховище може працювати з усіма основними форматами даних, як то символи, рядки, цілі і дійсні числа, 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 - об'єктами і контейнерами:
Таблиця 18.1. 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 | Видалення blob - об'єкта |
Delete Blob | DELETE | Установка однохвилинне блокування записи blob-об'єкта. |
Lease Blob | PUT | Створення знімка blob - об'єкта |
Snapshot Blob | PUT | Копіювання вихідного blob- об'єкта в blob - призначення, в рамках однієї і тієї ж облікового запису |
Більш повний перелік команд можна знайти за посиланням в списку матеріалів для самостійного вивчення.
СПИСОК МАТЕРІАЛІВ ДЛЯ САМОСТІЙНОГО ВИВЧЕННЯ
Windows Azure Blob
Windows Azure Blob - блоки і сторінки
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
(Для ознайомлення з повним текстом статті необхідно залогінитись)