Storage Services
Pavlo Revenkov
EPAM Cloud Computing Competency Center
Email: pavlo_revenkov@epam.com
Skype: rp_risingstar
Data management services

2

Web-role Worker-role
Worker-role

Worker-role

Web-role

Drive

SQL Azure

Blobs

Tables
Queues
Common information

3

• Access via REST API:
• http://<storage account>.table.core.windows.net/<table>
• http://<storage account>.queue.core.windows.net/<queue>
• http://<storage account>.blob.core.windows.net/<container>/<blob>
• Replication:
• Automatic triplication

• Emulation:
• Emulation is possible with some restrictions
• CDN support
Windows Azure Subscription
Subscription

Message size:
64 KB.
Two types:
• Block;
• Page.

Cloud services

SQL Azure
Databases

Storage Account
(200 TB)

Record size:
1 MB

Block blob max size:
200 GB

Properties count:
252

Page blob max size:
1 TB

Tables

Queues

Blobs

4
Tables
• NoSQL storage for structured non-relational data
• Table records (entities) are not described by predefined schema
• Mandatory fields:
• PartitionKey
• RowKey
• Timestamp
• Two types of entity declaration:
• ITableEntity interface
• TableEntity class

5
Queues

6

• Message queue accessible via REST API
• Frequent usages examples:
• Asynchronous messages processing
• Roles interaction

Worker-role

Web-role
Queue

Worker-role

Web-role
Worker-role
Blobs
• Object-oriented storage
• Two types:
• Block (max size – 200 GB)
• Page (max size – 1 TB)
• Blobs are stored in containers:
• Each storage account can have unlimited count of containers
• Each container can have unlimited count of blobs
• MIME-type definition support

7
Workflow
var storageAccount = CloudStorageAccount.Parse(
ConfigurationManager
.ConnectionStrings[ConnectionStringSetting]
.ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var queueClient = storageAccount.CreateCloudQueueClient();
var blobClient

= storageAccount.CreateCloudBlobClient();

Tables:
var table
var context

= tableClient.GetTableReference(tableName);
= tableClient.GetTableServiceContext();

Queues:
var queue

= queueClient.GetQueueReference(queueAddress);

Blobs:
var container = blobClient.GetContainerReference(containerName);
var pageBlob = container.GetPageBlobReference(blobName);

8
Demo

9
References

10

How to Use the Table/Queue/Blob Storage Service
 https://www.windowsazure.com/en-us/develop/net/how-to-guides/table-services/
 https://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/
 https://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/

Differences between the Storage Emulator and Windows
Azure Storage Services
 http://msdn.microsoft.com/en-us/gg433135
Questions?

11

Storage Services

  • 1.
    Storage Services Pavlo Revenkov EPAMCloud Computing Competency Center Email: pavlo_revenkov@epam.com Skype: rp_risingstar
  • 2.
    Data management services 2 Web-roleWorker-role Worker-role Worker-role Web-role Drive SQL Azure Blobs Tables Queues
  • 3.
    Common information 3 • Accessvia REST API: • http://<storage account>.table.core.windows.net/<table> • http://<storage account>.queue.core.windows.net/<queue> • http://<storage account>.blob.core.windows.net/<container>/<blob> • Replication: • Automatic triplication • Emulation: • Emulation is possible with some restrictions • CDN support
  • 4.
    Windows Azure Subscription Subscription Messagesize: 64 KB. Two types: • Block; • Page. Cloud services SQL Azure Databases Storage Account (200 TB) Record size: 1 MB Block blob max size: 200 GB Properties count: 252 Page blob max size: 1 TB Tables Queues Blobs 4
  • 5.
    Tables • NoSQL storagefor structured non-relational data • Table records (entities) are not described by predefined schema • Mandatory fields: • PartitionKey • RowKey • Timestamp • Two types of entity declaration: • ITableEntity interface • TableEntity class 5
  • 6.
    Queues 6 • Message queueaccessible via REST API • Frequent usages examples: • Asynchronous messages processing • Roles interaction Worker-role Web-role Queue Worker-role Web-role Worker-role
  • 7.
    Blobs • Object-oriented storage •Two types: • Block (max size – 200 GB) • Page (max size – 1 TB) • Blobs are stored in containers: • Each storage account can have unlimited count of containers • Each container can have unlimited count of blobs • MIME-type definition support 7
  • 8.
    Workflow var storageAccount =CloudStorageAccount.Parse( ConfigurationManager .ConnectionStrings[ConnectionStringSetting] .ConnectionString); var tableClient = storageAccount.CreateCloudTableClient(); var queueClient = storageAccount.CreateCloudQueueClient(); var blobClient = storageAccount.CreateCloudBlobClient(); Tables: var table var context = tableClient.GetTableReference(tableName); = tableClient.GetTableServiceContext(); Queues: var queue = queueClient.GetQueueReference(queueAddress); Blobs: var container = blobClient.GetContainerReference(containerName); var pageBlob = container.GetPageBlobReference(blobName); 8
  • 9.
  • 10.
    References 10 How to Usethe Table/Queue/Blob Storage Service  https://www.windowsazure.com/en-us/develop/net/how-to-guides/table-services/  https://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/  https://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/ Differences between the Storage Emulator and Windows Azure Storage Services  http://msdn.microsoft.com/en-us/gg433135
  • 11.