這裏是我的設置:刪除Azure Table中存儲一個非常大的數量的條目
我跑,一個Node.js的Web應用程序在Azure中被使用Azure的表存儲(非SQL)。要使用表格存儲,我使用了azure-storage npm模塊。
我想要做的事:
所以我有一個的追蹤事件設備的系統。在存儲中,我將PartitionKey設置爲deviceId,並將RowKey設置爲eventId。
添加事件很簡單;在發生時一次添加一個。
使用查詢結構檢索它們很容易。
但是,刪除大量的條目似乎是一種痛苦。看起來你一次只能刪除一個實體。似乎沒有基於查詢的實現。
可以使用批處理來創建大批量的刪除操作;但我剛剛發現每批有100個操作的上限。
所以我試圖刪除單個設備的所有事件;在我目前的情況下,我有大約5000個事件。因此,爲了實現這一點,我首先必須使用GET請求查詢所有事件(並使用連續令牌將它們連接起來),然後將它們分成100個批次,然後發送50個大請求以刪除所有條目...
SQL中的同樣的事情會被刪除* WHERE deviceId ='xxxxxxxx'
當然,肯定有比這更好的方法!
甚至沒有使用通配符的方法嗎?將RowKey設置爲*或什麼?這似乎是一個荒謬的執行他們的一部分。 – Mitch
不幸的是沒有。然而,我會捍衛他們這樣設計表格存儲的決定。 –
請問原因爲什麼?目前,在處理大型數據集時似乎是一個巨大的不便。 – Mitch