Loading AI tools
来自维基百科,自由的百科全书
Azure 储存服务 (Azure Storage) 是 Microsoft Azure 平台内实作的资料储存服务,目前为 Azure 平台服务的主要资料保存地。
Azure 储存服务提供了四种不同格式的储存体,用来提供给Azure上运行的应用程序储存资料使用。依据不同的储存格式会有不同的限制,因为这些储存服务都是以分散式巨量储存(Distributed Mass Storage)为核心概念所设计出来的,为了要达成快速在分散式储存空间中储存与管理资料(还包含高可用度的赘余储存管理),微软有在资料的储存上做一些限制。
不论是哪一种储存服务,Azure都有REST API[1],并符合Simple Cloud的标准[2]。
Azure 储存服务提供 99.9% 的服务水准,而只读式备援的只读端 (备援端) 为 99.99%。
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(表格)是给具结构化资料的应用程序储存与管理的一种储存服务,它在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 string Name { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public string Cellphone { get; set; }
public Contact()
{
base.PartitionKey = "ContactTable";
base.RowKey = Guid.NewGuid().ToString();
}
}
}
虽然Table可以储存结构化的资料,但它并不是关联性数据库,所以像是join,汇总函数等都无法使用,要由开发人员另外处理。
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;
}
档案服务是 Azure 近期 (2014) 才加入的新规资料储存服务,它也是用来储存二进制档案,但它和 Blob 不同的是 Blob 是 Internet-facing (面向 Internet) 的档案储存服务,档案服务则是给同一区域内的 Azure 服务 (如虚拟机器服务) 共享档案资源的服务,它使用 SMB 2.1 (推出时) 与 SMB 3.0 (GA时) 网络芳邻的方式简化存取档案的工作,同时也可以支援由资料中心外部的网络芳邻连线。
自v1.5版起的 Azure Storage 开始支援异地备援 (Geo-replication)的功能[3],只要应用程序将资料传送到TABLE或BLOB储存,Azure会自动将资料往邻近的资料中心传递,以备援储存服务,当主要的资料中心发生断线或是无法提供服务时,Azure核心中的DNS Service会自动将要求导向到备援的资料中心继续提供服务。
目前 Azure 储存服务支援下列备援类型:
凉储存 (Cool Storage) 是微软在 Build 2016 研讨会中所发表的新储存功能,它可以将资料储存在较持久的储存装置,并且利用资料保存技术将储存成本压低,以适用于长时间储存又不需经常存取的资料 (经常存取的称为热资料),凉储存仅适用于区块式 Blob 储存体 (Block Blob),每单位 GB 的储存成本比一般储存功能便宜约 50%,但由凉储存将资料取出或存入时除本身的交易成本外,尚需要支付额外每 GB 单位的取出与写入成本 (Data Retrival/Data Write),取出成本比写入成本要高。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.