Azure表存储-实体设计最佳实践问题

| 我编写了一个“概念验证”应用程序,以研究在必要的整个应用程序重写期间将定制的ASP.NET电子商务系统迁移到Windows Azure的可能性。 我倾向于使用Azure Table Storage替代SQL Azure,因为随着应用程序的进一步成熟,所存储的实体很可能会随着时间的推移而更改其架构(属性),并且我不需要进行无休止的数据库架构更改。此外,我们可以在应用程序代码中建立相对完整性-因此考虑Azure表存储的情况很不错。 我目前只能看到一个潜在的问题,就是我们做了少量的简单报告-即两个日期之间的销售价值,特定产品的售出商品数量等。 我知道表存储不支持聚合类型功能,并且我相信通过巧妙地使用分区,多个实体类型来存储相同数据的子集以及可能进行预聚合,我们可以实现我们想要的目标,但是我不是100%确定如何做到去做吧。 有谁知道关于Azure Table Storage设计原则的任何深入文档,以便我们正确,有效地使用Tables,PartitionKeys和实体设计等。 周围有一些简单的文档,并且当前可用的书籍往往没有深入探讨该主题。 仅供参考-电子商务网站拥有约25,000个客户,每年接受约100,000个订单。     
已邀请:
你看过这个帖子吗? http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx 桌子的覆盖面很深     
我认为将您的应用程序移植到Table Storage时存在三个潜在的问题。 您已经确定缺少报告-包括汇总功能 交易支持的可用性有限-每年有100,000个订单,我想您最终会错过这种支持。 成本方面的一些问题-每百万美元的操作1美元只是很小的一笔费用,但是如果您获得大量的页面浏览量,则需要考虑这一因素。 老实说,我认为一种混合方法-可能是EF或NH到SQL Azure来处理关键数据,而大型对象存储在表/ Blob中? 我认为足够了!对于“深度”: 尝试存储团队的博客http://blogs.msdn.com/b/windowsazurestorage/-我发现这很好 尝试Jai Haridas的PDC会话(无法找到链接-但我确定它仍然存在) 尝试Eric的书中的文章-http://geekswithblogs.net/iupdateable/archive/2010/06/23/free-96-page-book---windows-azure-platform-articles-from.aspx 在-http://azurescope.cloudapp.net/上有一些非常好的基于最佳实践的建议,但这是基于性能的     
如果您开始研究Azure存储(例如表),则对市场上的其他NOSQL产品(尤其是文档数据库)没有任何害处。这将使您深入了解NOSQL空间以及如何设计此类存储的解决方案。 您还可以考虑使用SQL DB + NOSQL解决方案的混合方法。系统的某些部分可能非常适合Azure表存储模型。 NOSQL解决方案(例如Azure表)有其自身的挑战,例如 数据的架构更改。在这里和这里检查 交易支持 ACID约束。在这里检查     
我见过的所有表设计论文都几乎完全集中在可伸缩性和搜索性能的主题上。我还没有看到任何与报告或BI的设计注意事项相关的信息。 现在,可通过其余API和azure SDK访问azure表。根据您需要的报告,您也许可以轻松地提取所需的信息。如果您的报告要求非常复杂,那么SQL Azure和Windows Azure SQL Reporting Services也许是一个更好的选择?     

要回复问题请先登录注册