Windows Azure表存储帐户的限制

我正在设计一个基于Web的多宿主SaaS应用程序,该应用程序将托管在 Windows Azure上并使用表存储.

到目前为止我发现的唯一限制是:

每个订阅> 5个存储帐户
每个存储帐户最多100 TB
>每个实体1 MB

我正在决定如何为多个客户分配我的存储空间:

选项1:为每个客户提供自己的存储帐户.考虑到5帐户默认限制,不太可能.

选项2:为每个客户提供他们自己的一组表格.使用客户标识符作为表名的前缀,例如将Books表拆分为“CustA_Books”,“CustB_Books”等.

选项3:拥有一组表,但在分区键前加上分隔客户.所以一个“Books”表的分区键为“CustA_Fiction”,“CustA_NonFiction”,“CustB_Fiction”,“CustB_NonFiction”等.

选项2和3有哪些优缺点?单个帐户中可能影响选项2的表数是否有限制?

您可以在Windows Azure中创建的表数量没有限制.你唯一的限制是你已经列出的那些.嗯…如果你认为实体属性的大小总是64KB或更少,或者你考虑批量选项(100个实体或4MB,无论什么是较小的),我猜还有其他限制.

无论如何,要记住的是你的PartitionKey将是你做的最重要的事情.如果您创建一个包含客户名称的PK,您将获得一些良好的分区优势.这样做的缺点是,如果您将客户数据混合在同一个表中,则会使您更难以删除数据(如果您需要删除客户).因此,您可以将该表用作另一级别的分区.您创建的PK的范围限定在您创建它的表中.

我在这里考虑的是,如果您需要批量删除数据,或者您需要跨客户(租户)查询数据.对于第一个,每个客户使用单独的表是很有意义的,因此删除是一个操作,而每100个实体最多1个.但是,如果需要跨租户进行查询,则在有多个表(这需要多个查询)时加入此数据会更加困难.

在所有条件相同的情况下,如果租户功能没有重叠,我会将这些表用作另一级别的分区,如果我想删除租户,可以让我的生活更轻松.所以,我猜这是选项2.

HTH

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...