Microsoft Azure 储存体

Azure 储存服务 (Azure Storage) 是 Microsoft Azure 平台内实作的资料储存服务，目前为 Azure 平台服务的主要资料保存地。
Azure 储存服务提供了四种不同格式的储存体，用来提供给Azure上运行的应用程式储存资料使用。依据不同的储存格式会有不同的限制，因为这些储存服务都是以分散式巨量储存（Distributed Mass Storage）为核心概念所设计出来的，为了要达成快速在分散式储存空间中储存与管理资料（还包含高可用度的赘余储存管理），微软有在资料的储存上做一些限制。
不论是哪一种储存服务，Azure都有REST API，并符合Simple Cloud的标准。
Azure 储存服务提供 99.9% 的服务水准，而唯读式备援的唯读端 (备援端) 为 99.99%。
Blob.
Blob （大型二进位物件）资料是用来储存像是档案，图片，视讯档，可执行档，压缩档等二进位格式的档案，基本上它的储存单位就是档案，为了要让BLOB的功能应用更宽广，微软也在 Blob 服务上开发了内容传递网路（Content Delivery Network）的服务，让 Blob 可以作为大容量的档案或资料储存与供应的地方，以支持类似YouTube这样的大型Web应用程式的服务。
Blob 依照性质分为两种：
Blob 服务由 Blob 本身以及其收纳容器（Container）构成，容器可视为一般本机上的资料夹。而容器和 Blob 都支援额外的Metadata设定，这些Metadata会附挂在HTTP Header中传输给用户端，每一个Metadata的大小限制为8KB。Blob 也支援权限管理的功能，透过Shared Access Signature可设定 Blob 或Container的存取权限与有效期限等。
private void EnsureContainerExists(）
 var container = GetContainer();
 container.CreateIfNotExist();
 var permissions = container.GetPermissions();
 permissions.PublicAccess = BlobContainerPublicAccessType.Container;
 container.SetPermissions(permissions);
private CloudBlobContainer GetContainer()
 var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
 var client = account.CreateCloudBlobClient();
 return client.GetContainerReference(RoleEnvironment.GetConfigurationSettingValue("ContainerName"));
Table.
Table（表格）是给具结构化资料的应用程式储存与管理的一种储存服务，它在Azure储存区中会以Key-Value键值对方式储存，并且由Partition来切割在Azure储存区的储存位置，它实际的资料是XML，透过REST API呼叫时，会需要依据SDK上的说明，自行建置XML的要求与解析回应的资料，但若是.NET Framework的开发人员，在Azure SDK中提供的Microsoft.WindowsAzure.StorageClient命名空间就有提供辅助的API以及类别，将这件事在API中处理掉了。SDK提供的辅助组件所应用的技术是WCF Data Services，因此若对WCF Data Services熟悉的开发人员，会很容易的上手Table储存的开发。
namespace TableExample
 public class Contact : TableServiceEntity
 public Contact()
 base.PartitionKey = "ContactTable";
 base.RowKey = Guid.NewGuid().ToString();
虽然Table可以储存结构化的资料，但它并不是关联性资料库，所以像是join，汇总函数等都无法使用，要由开发人员另外处理。
Queue.
Queue（伫列）是一种先到先服务（First-Come, First-Serve），或称为FIFO（先入先出）的储存服务，它可以允许应用程式将讯息储存到伫列中排队，然后由负责处理的应用程式（通常是Worker）由伫列提取讯息并处理以后，将讯息由伫列中移除。讯息可以是字串或是最长8KB的二进位资料，伫列经常会作为跨执行个体通讯以及工作切割通知的讯息传递之用。
protected void cmdAddQueue_Click（object sender, EventArgs e）
 CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"）;
 CloudQueueClient queueClient = account.CreateCloudQueueClient();
 CloudQueue queue = queueClient.GetQueueReference("theaterseatorders");
 queue.CreateIfNotExist();
 queue.AddMessage(new CloudQueueMessage("SEATNUM=1-1,EMAIL=test@test.com"));
 queue = null;
File.
档案服务是 Azure 近期 (2014) 才加入的新规资料储存服务，它也是用来储存二进位档案，但它和 Blob 不同的是 Blob 是 Internet-facing (面向 Internet) 的档案储存服务，档案服务则是给同一区域内的 Azure 服务 (如虚拟机器服务) 共享档案资源的服务，它使用 SMB 2.1 (推出时) 与 SMB 3.0 (GA时) 网路芳邻的方式简化存取档案的工作，同时也可以支援由资料中心外部的网路芳邻连线。
备援.
自v1.5版起的 Azure Storage 开始支援异地备援 (Geo-replication)的功能，只要应用程式将资料传送到TABLE或BLOB储存，Azure会自动将资料往邻近的资料中心传递，以备援储存服务，当主要的资料中心发生断线或是无法提供服务时，Azure核心中的DNS Service会自动将要求导向到备援的资料中心继续提供服务。
目前 Azure 储存服务支援下列备援类型：
凉储存.
凉储存 (Cool Storage) 是微软在 Build 2016 研讨会中所发表的新储存功能，它可以将资料储存在较持久的储存装置，并且利用资料保存技术将储存成本压低，以适用于长时间储存又不需经常存取的资料 (经常存取的称为热资料)，凉储存仅适用于区块式 Blob 储存体 (Block Blob)，每单位 GB 的储存成本比一般储存功能便宜约 50%，但由凉储存将资料取出或存入时除本身的交易成本外，尚需要支付额外每 GB 单位的取出与写入成本 (Data Retrival/Data Write)，取出成本比写入成本要高。