0

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

当我知道要查找哪个分区时,就很容易得到最新的记录,如下所示:

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

现在的场景是从所有分区中获取最高记录。如何以有效的方式在一次调用中检索每个分区的顶部记录?

4

1 回答 1

2

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

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

于 2014-03-18T03:24:26.933 回答