簡體   English   中英

刪除Azure表存儲中的大量條目

[英]Delete a very large number of entries in Azure Table Storage

這是我的設置:

我在Azure中運行Node.js Web應用程序,該應用程序使用Azure表存儲(非SQL)。 要使用表存儲,我正在使用azure-storage npm模塊。

我正在嘗試做什么:

所以我有一個跟蹤設備事件的系統。 在存儲中我將PartitionKey設置為deviceId,我將RowKey設置為eventId。

添加事件是直截了當的; 在它們發生時一次添加一個。

使用查詢結構可以輕松檢索它們。

但是,刪除大量條目似乎很痛苦。 看來您一次只能刪除一個實體。 似乎沒有基於查詢的實現。

可以選擇使用批處理來創建大批刪除操作; 但我剛發現每批操作上限為100次。

所以我試圖刪除單個設備的所有事件; 在我目前的情況下,我有大約5000個事件。 所以要實現這一點,我首先要用GET請求查詢我的所有事件(並使用延續令牌連接它們),然后將它們分成100個批次,然后發送50個大請求以刪除所有條目...

SQL中的相同內容是DELETE * WHERE deviceId ='xxxxxxxx'

當然必須有比這更好的方法!

SQL中的相同內容是DELETE * WHERE deviceId ='xxxxxxxx'

當然必須有比這更好的方法!

可悲的是,沒有:)。 您必須根據您的要求獲取實體,然后刪除它們(批量或單獨)。

但是,您可以通過僅從表中提取PartitionKeyRowKey而不是所有屬性來優化提取過程,因為您只需要這兩個屬性來刪除實體。

暫無
暫無

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

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