Azure存储表 vs SQL

68

我刚开始学习Azure,我发现不太多的情况需要将数据放进Azure存储表中,而不是SQL。也许是因为我使用的环境需要有关联数据?

在什么情况下更适合将数据放入Azure存储表中,而不是放入Azure SQL数据库表中呢?


本文应该有助于澄清涉及的差异。http://msdn.microsoft.com/en-us/magazine/ff796231.aspx - alwayslearning
可能是何时应使用Sql Azure,何时应使用表存储?的重复问题。 - Michael Freidgeim
3个回答

75

当您需要使用关系、索引、约束等处理结构化数据时,SQL Azure是很好的选择。

Azure存储表格适用于需要处理中心化结构化数据而不涉及关系,并且通常需要处理大量数据的情况。

价格: SQL Azure:5GB每月25.98美元

存储表格:175 GB每月21.88美元(不包括事务或带宽) 因此,当您存储大量数据时,存储表格更便宜......例如,考虑日志记录。

中央化: Windows Azure是分布式服务器环境,因此如果在一个计算机上保存某些内容,则其他计算机不会知道该内容。因此,存储表格是进行集中式日志记录、会话处理、设置等操作的良好解决方案(请记住即使在一个数据中心也存在延迟)。

速度: 如果设计得当,在许多情况下,存储表格应该比SQL Azure更快,但这可能取决于用例,而我尚未真正测试过。


2
关于集中化,表存储和Azure SQL都提供地理复制。链接 - Prem
关于定价,这有点棘手,Azure SQL每月收费约为1400美元,即使没有数据或交易。而表存储不是按时间计费,而是按数据计费。对于任何类型的1000万次操作,成本应该在100美元左右。 - Prem

33

虽然我对这篇文章的评论有些晚了,但我想提到一件似乎未被涉及的事情。Azure SQL 有数据限制(我认为很快就会升级)。Web Edition 为5 GB,Business Edition 为150 GB。对于某些解决方案来说,这是完全足够的。但对于其他方案可能就不够了,我个人也遇到过这种情况。

Azure 表的磁盘上限要高得多。我相信它为100 TB。

此外,虽然 NoSQL 本质上是非关系型的,但这并不一定是坏事。我们常常认为需要关系,实际上如果我们用不同的思路看待问题,则可能不需要那么多关系。您可以在代码内部强制执行关系--我认为大多数开发人员都比他们想象的更多地这样做。


17

如果以下条件成立,我会始终使用Azure表格作为更便宜的解决方案:

  • 仅通过PK执行表选择(由于整个反序列化的缘故,基于属性的选择很慢)
  • 我可以使用有限的Linq集合(Query Operators(Table Service Support)
  • 我不需要联接表并在服务器上执行复杂查询
  • 我需要对数据进行“分区”(Sql Azure联邦是该方向的一步,因为表从第0天开始具有PartionKey)

1
Azure表格只有在数据访问模式相对轻时才比SQL Azure更便宜,因为表格具有每个事务的费用,而SQL Azure则没有。 - RickNZ
3
@RickNZ 值得注意的是,写作时该费用非常低:每 100,000 次交易收取 $0.005。 - Ohad Schneider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接