如何从Azure存储表中的每个分区获取最高行

时间:2014-03-17 22:32:04

标签: azure storage partition

我有一个Azure存储表,其中每个分区都存储有关我的自定义数据类的一些信息。每个分区行更像是该类的历史记录,并且在查询时仅支持返回最新记录。

当我知道要查找哪个分区时,很容易得到这样的最新记录:

string pkFilter = TableQuery<MyEntity>.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionkeyvalue);
var query = new TableQuery<MyEntity>().Where(pkFilter).Take(1);

现在的情况是从所有分区获得最高记录。如何以有效的方式在单个调用中检索每个分区的最高记录?

1 个答案:

答案 0 :(得分:2)

您实际上是在尝试按操作应用组;这是一个艰难的,因为no-sql不能很好地处理数据库概念。

因此,您唯一的选择仅限于解决方法;如果你有十几个PK,那么桌面上的并行操作可能是有意义的。如果您有大量PK,则可能需要创建另一个仅包含最新信息的表,并在原始表的同时作为批处理操作的一部分进行更新。这样,您的辅助表始终包含正确的数据(因为批处理操作成功或失败)。