Azure blob存储限​​制和过滤器

Hit*_*esh 12 azure azure-storage azure-storage-blobs

适用于多租户应用程序的Azure存储.我们正在开发Azure上的多租户应用程序,每个租户需要大约10,000个租户和大约100 GB到1 TB的数据存储.该应用程序将分别维护文档和二进制内容以及每个租户的元数据.我们正在考虑使用Azure Block Blob存储来存储数据.因为,要求是为每个租户分开数据,我们遇到了以下方法.

  • 为每个租户创建一个单独的存储帐户
  • 这有助于保持使用租户明智,这也有助于计费
  • 在每个存储帐户中创建一个单独的容器,以根据类别进行隔离
  • 将文档与元数据一起存储在块blob存储中.

我们对我们的方法有以下疑问:

  1. 将块blob中的文档或二进制内容与元数据一起存储是一个好主意吗?或者有没有更好的方法来实现它(可能使用SQL Azure用于元数据和blob用于内容,或更好)?
  2. 如何使用元数据上的某些过滤条件查询数据?即检索metadat1 = value1和metadata2 = value2的所有blob
  3. 为每个租户创建一个单独的存储帐户是个好主意吗?
    一个.如果没有,那么我们可以在Azure存储和应用程序中存储租户特定数据的模型可以有效地使用它们吗?
  4. 在可扩展性和高可用性的背景下,Blob存储上读取/写入数据的请求数量是否存在带宽或任何其他限制?
  5. 根据天蓝色定价模型,他们对存储充电,即首先1 TB $ 0.095/GB,接下来49 TB $ 0.08/GB.此费用是针对每个存储帐户还是针对每个订阅的应用程序?
    一个.同样,交易成本适用于每个存储帐户或每个订阅?

Gau*_*tri 14

  1. 将块blob中的文档或二进制内容与元数据一起存储是一个好主意吗?或者有没有更好的方法来实现它(可能使用SQL Azure用于元数据和blob用于内容,或更好)?
  2. 如何使用元数据上的某些过滤条件查询数据?即检索metadat1 = value1和metadata2 = value2的所有blob

要回答1和2,您无法查询blob存储中的元数据.所以我猜你最好的选择是使用SQL Azure或Azure表存储,因为它们都具有查询功能.鉴于你将存储大量的blob(甚至更多的元数据),我更倾向于表存储,但这需要特殊的设计考虑,如正确的分区.

为每个租户创建一个单独的存储帐户是个好主意吗?一个.如果没有,那么我们可以在Azure存储和应用程序中存储租户特定数据的模型可以有效地使用它们吗?

我可以想到为什么每个租户拥有一个单独的存储帐户是个好主意的3个原因:

  1. 它简化了您的结算.
  2. 它将帮助您维护可伸缩性目标.
  3. 由于您提到每个租户最多可以存储1 TB的数据,因此当前存储帐户限制为200 TB,每个存储帐户最多只能维持200个租户.之后,您需要找到另一个存储帐户并开始在那里存储数据.

总而言之,这是一个保持独立存储帐户/租户的优雅解决方案.挑战在于将默认限制从20个存储帐户/订阅增加.您需要与支持人员聊天.

在可扩展性和高可用性的背景下,Blob存储上读取/写入数据的请求数量是否存在带宽或任何其他限制?

是的,请阅读Windows Azure Blob存储团队的可扩展性目标博客:http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability -targets.aspx

根据天蓝色定价模型,他们对存储充电,即首先1 TB $ 0.095/GB,接下来49 TB $ 0.08/GB.此费用是针对每个存储帐户还是针对每个订阅的应用程序?一个.同样,交易成本适用于每个存储帐户或每个订阅?

不确定这一点,但我猜它是每个存储帐户.您可能需要联系支持人员.

希望这可以帮助.