我有一个使用SQL Azure (业务层)进行数据存储的应用程序。它本质上是全天候记录事务,目前每天处理8-10000个事务。每个事务在记录时都被规范化,需要创建潜在的新密钥来支持规范化。我们最终每个事务都需要1-2秒来记录日志。
每隔30分钟左右,我们将汇总按小时、日、周和月分组的许多报告的交易数据。此操作需要2-4分钟。
我们现在基本上是在一个合理的水平上运行,但是负载将会增加,我们正在考虑一些处理增加的选项。早期测试表明,我们无法使用当前架构处理增加的负载(10倍)。
我们正在考虑改用NoSQL数据解决方案进行事务日志记录,可能是Azure Table Storage。这部分看起来相对简单。
在表存储(或其他NoSQL存储)中,汇总数据并移动到我们的SQL Azure数据库以进行报告的最佳方法是什么?目前,所有摘要逻辑都是基于规范化事务在存储过程中构建到数据库中的。
有没有一种方法可以以批处理模式将数据从表存储加载到Azure,然后我们可以对其进行汇总?我们是否应该将汇总逻辑移动到.NET服务/应用程序中,以便从事务日志中读取数据,汇总数据,然后将其写入我们的SQL Azure数据库?
我们还没有找到任何同时使用表存储和SQL Azure的好例子,一切似乎都是对这两者的比较。
从本质上讲,我们正在寻找类似场景的一些指导或示例。谢谢你的建议。
发布于 2014-09-12 13:34:31
如果我没理解错的话,你已经有了一些建立在SQL Azure之上的报告基础设施,你想要重用它们。在这种情况下,构建一个从Azure表中读取原始数据、聚合数据并将结果插入SQL Azure的应用程序似乎是合适的解决方案。
分区键(pk)和行键(Rk)选择会显著影响Azure表的读/写操作的性能。PK、RK和其他表属性的选择取决于您如何使用数据、您的主要查询和应用程序行为。存储团队blob (http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx)针对常见情况提供了相关指导
注意:您可能已经知道这一点,但是除了.NET之外,您还可以使用其他语言的Azure SDK。如果可能,您可能还希望将应用程序部署在Azure表和SQL Azure所在的同一数据中心,以获得更好的性能
https://stackoverflow.com/questions/25778527
复制相似问题