This article discusses the two types of storage options available with Windows Azure: Windows Azure storage services and Windows Azure SQL Database.

Storage Types

Windows Azure storage has certain advantages over SQL Database. It is inexpensive, and can be used in a vast area when compared to SQL Database. The monthly storage charge for Windows Azure is 15 cents per gigabyte, compared with 10 dollars per gigabyte with SQL Database. Windows Azure storage is scalable, and can be expanded as required.

SQL Database is basically SQL Server running in a cloud environment, but some of the features available in SQL Server 2008 are not available in SQL Database. Microsoft has provided a list of limitations at http://msdn.microsoft.com/en-us/library/ee336245.aspx

Windows Azure Types

Windows Azure has four types of storage, discussed in the sections that follow:

  • Tables
  • Blobs
  • Queues
  • Azure drives

Table Storage

Table storage is used to store structured data, which is similar to a table, but is not relational. Table storage is used to store business entities in a structured format, and has certain advantages. Tables are composed of a collection of properties and entities, and are further classified by name, types, etc. The only disadvantage that is apparent with table storage is that, similar to the data access procedure, we can’t use ADO.NET to connect to the database. Instead, we need to use RESTful access. See http://f5debug.table.core.winodws.net/mylearn

Blob Storage

Blob (binary large object) storage, as most developers know, is used to store images, documents, or videos that are larger than something normally stored in a database like a string or an ID. Basically, blob storage is used to storage binary data that are not easily compatible for storing larger data. Blog storage stores the data in the following two types of containers:

  • Block blob
  • Page blob

Block blobs are limited to 200 GB while page blobs are limited to 1 TB, which is used to store large data as and when required. Similar to table storage, blobs have the same disadvantage of not being accessible via ADO.NET. Instead, we can use RESTful access. See http://f5Debug.blob.core.windows.net/containername/blobname.

Queue Storage

Queue storage is used for transporting messages between applications as normally we can consider a MSMQ do that in cloud. Queue storage can handle transactions related to sending and receiving messages in real time. Queue messages are used to send messages of 8 KB each, and are not suitable for sending large objects as messages. Therefore, for handling transactions of large objects in real time, we can use a URI of the blob as a message.

The messages will remain in the queue unless they have been deleted. If a message is read by one application, that message will be marked as invisible to the other application, and will not be available online. Because of this, we are not sure in which order the process will happen for the message queues.

Azure Drives

Azure drives allow access by using standard NTFS as is normally done locally. The application that has the storage locally can be used to update the status locally. If we want to migrate this type of application to the cloud, we can use Azure drives.

Conclusion

In this article we have seen the different storage options available with Windows Azure. In upcoming articles we will see how to implement each of them, and the advantages each offers.

See Also