簡體   English   中英

如何從 Azure 表存儲中查詢最近的 n 條記錄?

[英]How to query the most recent n records from Azure Table Storage?

我在 c# .net 中使用以下查詢:

TableQuery<MyType> query = new TableQuery<MyType>().Take(50);

這適用於抓取 50 條記錄,但我想從表中抓取最新的(降序)記錄。 我看過其他答案,但沒有一個是簡潔的或有效​​的。

從 Azure 表存儲實體中獲取n 個最新記錄的最有效方法是什么? 請提供帶有工作代碼示例的簡明答案。

不幸的是,沒有簡單的方法可以從 Azure 表存儲中獲取最新記錄,因為它不允許您根據屬性對記錄進行排序。 Azure 表存儲中的記錄始終按PartitionKey排序,然后按分區內的RowKey排序。

解決此問題的一種方法是將PartitionKey值指定為反向時間刻度(類似於(DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).ToString("d20") ),這樣無論何時添加實體,它都會放在前面(即添加到表格的頂部)。 現在,當您執行查詢並獲取“x”條記錄時,您將始終是最新的記錄。

另一種選擇是獲取所有實體並在客戶端進行排序。 這是非常低效的,通常不推薦。 如果您的表中的實體數量非常少(例如少於 1000),則此解決方案可能會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM