多租户应用的Azure存储。我们正在开发一款在Azure上的多租户应用程序,大约有10,000个租户,每个租户需要约100 GB到1 TB的数据存储,该应用程序需要单独维护每个租户的文档、二进制内容以及元数据。我们想采用Azure块Blob存储来存储数据。由于要为每个租户单独维护数据,因此我们考虑了以下方法。
- 为每个租户创建一个单独的存储帐户
- 这有助于根据租户使用情况进行维护,并对计费也有帮助
- 在每个存储帐户中创建一个单独的容器来根据类别进行分离
- 在块Blob存储中存储文档以及元数据。
我们对于我们的方案有以下几点疑问:
- 把文档或二进制内容和元数据一起存储在块Blob中是个好主意吗?还是有更好的方式实现(比如使用SQL Azure存储元数据和Blob存储内容或其他更好的方式)?
- 如何查询具有一些元数据过滤条件的数据?即检索出所有元数据1=value1且元数据2=value2的Blob。
- 为每个租户创建一个单独的存储帐户是否是个好主意?
a. 如果不是,那么我们可以通过什么模型在Azure存储中存储特定于租户的数据,并使应用程序能够有效地使用它们? - 在可扩展性和高可用性方面,在读/写Blob存储的数据请求数量或任何其他限制上是否有带宽?
- 根据Azure的定价模型,他们按存储收费,即前1 TB 0.095美元/ GB,其后49 TB 0.08美元/ GB。这些费用是适用于每个存储帐户还是适用于每个订阅?
a. 同样地,交易成本适用于每个存储帐户还是适用于每个订阅?