Getting the Most From Azure Storage
The course is part of these learning pathsSee 3 more
The Azure Storage suite of services form the core foundation of much of the rest of the Azure services ecosystem. Blobs are low-level data primitives that can store any data type and size. Tables provide inexpensive, scalable NoSQL storage of key/value data pairs. Azure queues provide a messaging substrate to asynchronously and reliably connect distinct elements of a distributed system. Azure files provide an SMB-compatible file system for enabling lift-and-shift scenarios of legacy applications that use file shares. Azure disks provide consistent, high-performance storage for virtual machines running in the cloud.
In this Introduction to Azure Storage course you'll learn about the features of these core services, and see demonstrations of their use. Specifically, you will:
- Define the major components of Azure Storage
- Understand the different types of blobs and their intended use
- Learn basic programming APIs for table storage
- Discover how queues are used to pipeline cloud compute node together
- Learn to integrate Azure files with multiple applications
- Understand the tradeoffs between standard/premium storage and unmanaged/managed disks
Let's take a closer look at the Azure table storage service. As the name implies Azure table storage provides a table and row-oriented key value storage solution. Tables are given names unique within their parent storage account, and can contain terabytes of individual row data. Each row consists of up to 255 unique named keys and associated typed values.
As there is no formal schema definition rows in the same table are not required to have the same set of keys. Like other Azure storage services table storage automatically scales up or down to support changing request volume, and meet defined service level agreements. This is accomplished in part through the use of user-defined partition values for each row in a table.
This allows you to ultimately determine which records in a table are physically stored near one another and therefore optimized for use together. The table storage service does support the notion of transactional rights for entities in the same table and storage partition. The table storage service supports queries in each of the language-specific SDKs.
The . NET SDK also has a link provider for constructing queries using Flink syntax. There's also a more general purpose HTTP-based OData syntax for filters and projections from any platform capable of rest API calls. And finally, note that as a NoSQL data store table storage has no formal notion of foreign key relationships or query join syntax.
If you wish to maintain relationships between data elements in table storage you'll either need to manage that relationship metadata explicitly within your application or you can de-normalize your data and store related elements together within a single table entity. Either approach can work depending upon, among other things, how frequently the data or the relationships themselves may change.
Rows in table storage are known as entities. An entity consists of up to 255 key value pairs which includes three mandatory elements, a partition key value used to physically segment entities for horizontal partitioning purposes, a row key value which determines uniqueness for an entity within its partition, and a timestamp maintained for you by the table storage service, key support storage of the following value types, binary, boolean, datetime, double, guid, int32 and 64 and strings.
Note that the combined storage of all values for a single entity cannot exceed one megabyte in size. Let's take a closer look at table storage and how to use it in your own applications.
About the Author
Josh Lane is a Microsoft Azure MVP and Azure Trainer and Researcher at Cloud Academy. He’s spent almost twenty years architecting and building enterprise software for companies around the world, in industries as diverse as financial services, insurance, energy, education, and telecom. He loves the challenges that come with designing, building, and running software at scale. Away from the keyboard you'll find him crashing his mountain bike, drumming quasi-rythmically, spending time outdoors with his wife and daughters, or drinking good beer with good friends.