2013-04-01 34 views
0

爲檢索Azure存儲表中的1200個實體觸發多少事務,並記住連續令牌。Windows Azure存儲表中的事務和延續令牌

我讀過「Windows Azure Tables在單個請求中最多返回1000個實體,並在有更多結果(剩餘200個實體)可用時返回延續標記」。見(http://blog.smarx.com/posts/windows-azure-tables-expect-continuation-tokens-seriously)。

因爲Azure根據no。我們通過雲執行的交易; 我只想知道:一個請求會執行多少個事務,返回第1000個實體(行)結果後帶有連續標記的1200個實體(行)?

+0

這不是說這個回答你的問題,而是......以每10萬筆交易一分錢爲代價,我懷疑交易成本會被計算+存儲的成本拖垮,這樣交易成本可能會贏得「 (如果有的話)將你的每月預算考慮在內。 –

+0

Thorks David回覆。我讀過很多你的文章。 那麼,我正在處理1000K +實體(約2Lakhs到20Lakhs),每30秒更新一次。當這件事情出現時,我確實需要看看沒有。的交易。並且Azure存儲表的Continuation標記方面也... –

回答

3

多少交易將單個請求 回報說1200層的實體(行)與後第1000 實體(行)結果的延續標記來執行?

它實際上取決於。正如文檔所述,Windows Azure Table returns up to a maximum of 1000 entities in a single request。這意味着,對於您的情況,最小交易次數爲2,但最大交易次數可能爲1200次。這完全取決於數據的分區方式和存儲帳戶的負載。您擁有的分區越多,您可能會收到每個請求的較少數據,從而導致更多的事務。同樣需要考慮執行時間(服務器端),因爲如果執行時間超過分配時間,服務將返回部分數據。

基於文檔在這裏:http://msdn.microsoft.com/en-us/library/windowsazure/dd179421.aspx,你可以期待一個延續令牌,如果一個或多個條件爲真:

  1. 如果要返回的實體數量超過1000
  2. 如果服務器超時間隔已超過。
  3. 如果查詢跨越分區邊界。
+0

關於分區的好處。 –

+0

我有大約5-6個分區。 1200個實體是所有分區之一的一部分,我在where(partition_Key ==「partition_Key_1」)條件中篩選。所以Gaurav,你的答覆仍然存在於這種情況下? 請儘快解決此問題.. 並感謝Gaurav讓這個(隱藏的)信息出現在這篇文章中。希望這可能有助於少數新手。 –

+0

我會說是,儘管它可能不是1200筆交易,如上所述。如果您的數據沒有跨越分區邊界,那麼您應該能夠在2個事務中獲得1200條記錄,但是如果由於某種原因您的數據跨越了分區邊界,那麼您可以預期超過2個事務。 –