2012-11-15 84 views
5

我想到Azure表存儲的重大改進。是否可以通過特定的操作向[表格存儲]提交查詢,例如[增加實體字段[名稱],其中[PartitionKey = somestingPK]和[RowKey = somethingRK]?Windows Azure表存儲int字段增量

@smarx是否有此功能?

+0

http://stackoverflow.com/a/11853335/67824 –

回答

0

這與MySQL的UPDATE查詢類似,並且當前無法在Azure表存儲中執行。不知道這是否可以在這樣的數據庫類型中實現,因爲您首先需要獲取整個實體,更新所需的字段並將其存回數據庫。

+0

我知道現在這是不可能的。我想與開發人員分享我的建議:) –

1

是的,這是可能的 - 但可能並不完全如您所想。您正在尋找MERGE operation。要使用它,您必須知道您的目標實體(即實體的分區鍵和rowkey)。您不必檢索實體來更新它,但是您必須通過REST調用或使用批處理功能(具有一些限制)專門針對每個實體。

+3

他正在尋找原子增量。今天沒有這樣的事情。 – smarx

+0

但我不能使用增量操作。只有設置。我建議,在表格存儲中更新實體並非不可能。但是這個操作不能通過REST API獲得。 –

4

您可以使用啓用了ETAG跟蹤的表或頁面存儲來完成此操作。我使用這種技術爲Azure表中的每個條目創建標識值。這個想法是這樣的:

  • 閱讀從頁面的Blob的價值,離開ETAG跟蹤啓用

  • 增量檢索值

  • POST檢索值,如果有一個ETAG衝突,重新整個行動再次新鮮。也許在這裏使用指數退避算法來防止重載目標容器或分區。

+1

我將這種方法命名爲「kostyil」。 但我希望在表存儲中使用原生增量的原生實現。 –