25

我看到几个月前有人问过类似的问题,但它确实没有很好地解决我的情况。来了……

我正在从头开始构建一个基于 Web 的 .NET 应用程序,该应用程序有可能成为一个大容量站点(开始时每月有几十万页浏览量),并且正在强烈考虑使用 Microsoft Azure 来托管它. 我还没有建造任何东西,并且仍在研究我的不同选择。

应用程序本身的核心是一个标准的 CRUD 应用程序,它作用于许多不同类型的实体(例如用户、订单、项目等)。可能有一些后台进程可能正在运行和一些数据排队(对于非实时更新——例如获得 SO 徽章),但与用户的大多数交互将是典型的 CRUD 类型的操作。

关于 Azure,我已经阅读了许多关于使用 Microsoft Azure 存储来存储事务数据的文章,并且我强烈考虑这样做而不是使用 Azure SQL DB。但是,我还没有看到或读过很多真实的人和/或真实的公司这样做的成功故事。所以我想我会联系 SO 社区,看看是否有人有使用 Microsoft Azure 存储的经验,你有什么运气,我应该注意的任何问题,以及你有什么最佳实践想出。

我已经阅读了很多 Microsoft Azure MSDN 部分和 Microsoft 的编程 Microsoft Azure Table API 文档。我正在寻找实用的建议、经验教训、最佳实践等。提前致谢!

4

5 回答 5

14

Windows Azure 存储就像任何 NoSQL 存储一样。它适用于我们的大规模场景(每个用户抽取数百万条记录)。然而,经典的 CRUD 方法有点难以扩展或适应这一点。

我建议您从CQRS 架构风格开始研究。以下是一些可以帮助您入门的参考资料:

于 2010-08-07T08:28:20.670 回答
8

取决于您所谈论的数据类型 - 通常存在高估交易数据要求的趋势。1 GB 的 SQL Azure 真的可以容纳很多数据(我们是一家 SAAS 提供商,几乎 20 个客户端的事务数据可以容纳这么大的空间)。此外,出于某种奇怪的原因,我发现 SQL Azure 空间消耗似乎比我在本地看到的数据库的大小要小一些(可能与它们处理日志的方式有关,不确定)。现在 50 GB 是限制,坦率地说,这是巨大的。

然而,为此,您还需要考虑增加空间使用的因素 - 在数据库中存储图像、视频或其他大型对象会导致空间消耗的显着增加。最好将这些对象保留在 Windows Azure 中。

如此简短的回答 - 将事务数据保存在 SQL Azure 中,将非关系数据保存在 Windows Azure 中。使用 SQL Azure 还可以提高开发人员的工作效率,因为它在编程方面非常熟悉。对待 Windows Azure 的方式与对待 Windows 本地文件存储的方式类似,但有一些额外的好处(支持基本表结构)。

于 2010-08-26T07:26:07.790 回答
4

要考虑的另一件事是您将从商店发送/接收的交易数量。SQL Azure 的好处在于它是固定成本/月,如果您在同一个数据中心内进行查询(即来自与 SQL Azure 数据库位于同一数据中心的 Windows Azure Web 角色),那么有没有额外费用。

Even though the cost of the transactions to the Windows Azure stores are pretty low, it is something that has the potential of adding up if you do enough of them.

于 2011-03-31T19:22:14.953 回答
1

在决定使用 Azure 存储或 SQL 存储之前,您还应该检查您的数据使用模式。由于 Azure 存储提供 NoSQL 解决方案,因此它们更适合非报告基本要求。这里的报告并不意味着报告,而是意味着Azure存储的查询能力是有限的\非针对各种查询场景进行优化。使用 CQRS 架构,CRUD 和报告操作是分离的,因此可以实现 Azure 存储和 Azure SQL 的混合匹配。

于 2010-08-12T07:08:31.073 回答
1

查找信息的另一个地方是跳出 Windows Azure 选项并查看 AWS 的选项。S3 和 SimpleDB 选项已经过较长时间的审查,并且在网络上有许多其他成功案例。但是,S3 和 SimpleDB 在功能上与 Windows Azure 存储表和 Blob 存储非常相似。如果您正在考虑使用这些结构的真正大数据,请务必查看 AWS 选项。如果只是作为围绕大数据构建的现有解决方案的参考点。

对于 SQL Azure,它非常适合大量事务,保持较低的事务成本,并基于关系数据维护关系和总体完整性。但是,如果您要拥有海量数据,请继续使用大数据结构,例如 Windows Azure Table 或 Amazon 的 SimpleDB。

于 2010-08-25T17:37:27.830 回答