Azure表存储获取最后一条记录

时间:2012-05-01 04:30:23

标签: azure azure-table-storage

我有一个大约有500万行的天蓝色表,每个分区大约有10万行。 RowKey是一个可排序的时间戳。我需要能够获得插入表中的最新记录。

由于不支持Linq Last,Max,OrderBy等,如何有效获取最新的表记录?

3 个答案:

答案 0 :(得分:12)

没有有效的方法可以做到这一点。但如果它是一个选项,请考虑翻转您的行键,以便最新的条目位于顶部(反向时间顺序)。检索顶部的 n 条目非常简单有效。

答案 1 :(得分:1)

您可以查询小于MaxDate的TimeStamp,并将结果限制为1。 Haven尚未测试它,但它应该可以工作。 取决于你的时间戳如何格式化。

答案 2 :(得分:0)

Microsoft 的 Log tail pattern

Table design patterns 部分专门解决了这个问题:

<块引用>

背景和问题

一个常见的要求是能够检索最近创建的实体,例如员工提交的 10 个最近的费用报销单。表查询支持 $top 查询操作以返回集合中的前 n 个实体:没有等效的查询操作来返回集合中的最后 n 个实体。

(...)

以下 C# 代码示例展示了一种为从最近到最旧排序的 RowKey 创建合适的“倒计时”值的方法:

string invertedTicks = string.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);

(...)