【发布时间】:2015-05-25 07:01:39
【问题描述】:
我们正在创建一个多租户应用程序,该应用程序必须在租户之间隔离数据。每个租户将保存各种文档,每个文档都可以分为几个不同的文档类别。我们计划为这些文档使用 Azure Blob 存储。但是,鉴于我们的用户群以及文档的数量和每个文档的大小,我们不确定如何使用当前的 Azure 订阅来最好地管理存储帐户。
这里有一些需要考虑的数字。有 5,000 个用户,每个用户每年 27,000 个 8Mb 文档,即每年总计 1080TB。每个存储帐户的存储容器最大容量为 500TB。
所以我的问题是存储这些数据并保持在 Azure 限制范围内的最有效和最具成本效益的方法是什么?
我们考虑了以下几点:
为每个客户端创建一个存储帐户。这不起作用,因为每个订阅只能有 100 个存储帐户(这将是最理想的解决方案)。
为每个客户端创建一个 Blob 容器。一个存储帐户最多可以有 500 TB,因此这可能会起作用,除非最终我们必须拆分为其他存储帐户。如果最终用户在两个帐户中拥有数据,我不确定这将如何工作。可能会弄得一团糟。
也许我们在这里遗漏了一些基本简单的东西。
更新 目前,我们的想法是使用 Azure 表存储,并为每种文档类型提供一个表。在每个表中,分区键是租户的 ID,行键是文档 ID。每行还包含文档的元数据类型信息,以及链接到 blob 本身的 URI(或其他内容)。
【问题讨论】:
-
您会将客户端/文件关系存储在某种表中吗?例如,将存储所有客户端的所有文件列表的主表?
-
@Gaurav Mantri:好问题!我已提供更新以解决您的问题。
标签: azure azure-storage multi-tenant