📜  Azure表和队列存储

📅  最后修改于: 2021-01-07 04:29:12             🧑  作者: Mango

Azure表和队列存储

Azure表存储用于存储大量结构化数据。此服务是NoSQL数据存储,它接受来自Azure云内部和外部的身份验证调用。它是存储结构化和非关系数据的理想选择。

如果要存储关系数据,则不应使用Azure数据库。与关系数据库不同,关系数据库的表具有固定的列数,并且表中的每一行在Azure表(即NoSQL数据存储)中都应具有这些列。每个表可以具有实体,并且每个实体可以具有不同的属性。因此,通常,不会对属于表的对象强制实施架构。

表存储的典型用途包括:

  • 表存储用于存储能够为Web规模的应用程序提供服务的结构化数据的TB。
  • 它用于存储不需要复杂联接,外键或存储过程的数据集,并且可以进行非规范化以实现快速访问。
  • 它用于使用聚簇索引快速查询数据。
  • 有两种访问数据的方法,一种是使用OData协议,另一种是具有WCF数据服务和.NET库的LINQ查询。

Azure表结构

我们需要先创建一个存储帐户,因为Azure表存储在该存储帐户下提供,然后您在该存储帐户中有表。例如,您可以创建员工表,地址表,并且每个表将包含实体,并且实体还将在员工表中包含键值对,例如姓名电子邮件。

但是,此处与Azure表的主要区别在于NoSQL数据存储和关系数据库。这些实体可以具有不同的架构,因此第一个实体可以具有名称,电子邮件,第二个实体也可以具有名称,电子邮件和电话号码。

Azure表存储概念

  • 帐户:对Azure存储服务的每次访问都是通过存储帐户完成的,对Azure Cosmos DB的所有访问都是通过Table API帐户完成的。因此,Azure中有两种类型的表存储服务可用。第一个是Azure表存储,第二个是高级版本,位于Cosmos的DB中。因此,如果您正在寻找低延迟的出色性能,那么请选择Cosmos的DB,尤其是在处理关键任务应用程序时。如果您可以在性能上有所妥协,但又想优化成本,那么可以选择表存储。
  • 表:它是实体的集合。众所周知,表不会在实体上放置架构,这意味着单个表可以包含具有不同属性集的实体。
  • 实体:它是一组属性,与数据库行类似。 Azure存储的实体大小可以为1MB。但是,如果我们使用的是高级版本Azure Azure Cosmos DB,则其大小可能为2MB。
  • 属性:这是一个“名称/值”对,其中每个实体最多可以包含252个属性来存储数据,并且除了用户属性外,还意味着您添加的功能。还有一些系统属性可以指定分区键,行键和时间戳。因此,每个实体都将默认具有这三个属性。当我们查询数据时,我们可以根据分区键和行键携带数据,并且在单个分区下,该行键应该是唯一的。因此,当我们查询数据时,我们使用分区键和行键查询数据。通常,当我们从单个分区中获取实体时,这将很快,因为所有属于一个单独分区的对象将存储在Azure后台的一台服务器中。

当您找到查询时,它只需要转到一台服务器来获取数据,但是如果您的查询包含存在于2-3个分区中的数据,那么该问题通常会在后台转到多个服务器,从而提高了性能该查询将受到影响。因此,在设计此表存储时,需要牢记这一点。

有两个接入点

  • Azure表存储:如果我们使用Azure表存储,则可以拥有http:// .table.core.windows.net /
  • Azure Cosmos DB Table API:如果使用高级版本,则需要使用http:// .table.cosmosdb.Azure.com /
  • 表存储查询

    查询从表中检索数据,因为一个表只有一个索引。查询性能通常与PartitionKey和RowKey属性有关。

    这是从服务器检索数据的示例查询:

    .windows.core.net / registrations(PartitionKey =“ 2011纽约市马拉松赛全程”,RowKey =“ 1234_Ankit_M_55”)

    Azure队列存储服务

    它是一个队列服务,但是Azure中有一个更高级的队列服务,它是服务总线队列。

    • 它是一项用于在云中存储大量消息的服务,可以使用HTTP和HTTPS从世界任何地方访问这些消息。
    • 队列包含一组消息。队列名称必须全部小写。
    • 单个队列消息的最大大小为64KB。一条消息最多可以保留7天
    • URL格式为http:// <存储帐户> .queue.core.windows.net /
    • 从队列中检索到消息后,消息将保持不可见状态30秒钟。需要从队列中明确删除一条消息,以避免被另一个应用程序接收。