2017-09-18 30 views
1

當我執行此:Azure Table存儲表是否保證按分區/行排序?

query = new azure.TableQuery().top(100).where("PartitionKey eq ?", someKey); 

這是否保證這些100個結果,以便通過RowKey退換嗎?我讀過的每件東西都讓我相信有一個單一的記錄順序,它是由PartitionKey + RowKey。我自己的基本測試似乎證實了這一點。但我找不到任何正確的文件,並說出來。

我只需要知道我是否可以依靠它,或者它是否有可能發生變化。

回答

3

結果將按照RowKeys的詞彙順序排列。一個正式的設計模式稱爲日誌結尾模式的描述在這裏: https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-design-guide#log-tail-pattern

依賴於這一確切事實分區中的實體將在其RowKey訓詁順序進行排序。

我永遠不會懷疑這將會改變基本的表存儲服務。

所以這裏有一個有趣的一點是,如果你在分區內依賴於詞法排序的RowKeys構建基本表存儲器的解決方案,然後如果你遷移到Cosmos DB表api(最終),它依賴於文檔db這個假設是否仍然適用。

+0

太棒了,謝謝你。有趣的是,他們似乎並沒有馬上出來說「頂級X將由RowKey命令」,但他們在這裏確實假定了這一事實,所以這對我來說似乎足夠好了。 –