Azure表存储 - 计算或持续总计

时间:2010-11-25 00:20:26

标签: azure-storage azure-table-storage

我正在考虑使用表存储来存储一些交易数据,但是,我需要支持一些非常高级别的报告,基本上每天/每月的总数。

我有几个选择:

  • 使用分区/行键结构并动态执行和
    例如20101101_ITEMID_XXXXXXXX(x = guid或时间,使其独一无二) 然后我会使用行键的一部分(ITEMID_201011)查询一个月的数据,并在类型的“Cost”属性中查询总数。

    虽然如何管理1000条记录的查询限制? (即如果当天有超过1000笔交易,则总计很难)

  • 使用另一条记录存储当天的总数,并在添加新记录时更新此记录 例如行键“20101101_ITEMID_TOTAL” 然后查询总天数,数月或年总数。

最好的方法是什么?使用表存储是否存在针对此类要求的“最佳实践”?

1 个答案:

答案 0 :(得分:1)

我不确定什么是最佳做法,但我可以评论我们与AzureWatch有类似的情况,并且肯定在表格中使用预先聚合的值。

主要是出于性能原因 - 即使您通过单个分区键和行键中的范围进行查询,表存储也不是即时的。下载记录所花费的时间有些重要,取决于记录可能会使CPU上升,因为它需要将数据反序列化为对象。如果由于1000个记录限制而多次前往桌面存储,您将支付更多费用。

要考虑的其他一些想法:

您的汇总总数是否会发生变化?如果不是,这是预先聚合的另一个推动

原始数据消失后您是否需要保留聚合值,还是需要清除原始数据?如果是,那么它是另一个预先聚合的推动