删除Azure表存储中的大量条目

时间:2016-09-14 13:38:58

标签: javascript node.js azure azure-table-storage

以下是我的设置:

我在Azure中运行Node.js Web应用程序,该应用程序使用Azure表存储(非SQL)。要使用表存储,我正在使用azure-storage npm模块。

我正在尝试做什么:

所以我有一个跟踪设备事件的系统。在存储中我将我的PartitionKey设置为deviceId,我将RowKey设置为eventId。

直接添加事件;在它们发生时一次添加一个。

使用查询结构很容易检索它们。

但是,删除大量条目似乎很痛苦。看来您一次只能删除一个实体。似乎没有基于查询的实现。

可以选择使用批次创建大批删除操作;但我刚发现每批操作上限为100次。

所以我试图删除单个设备的所有事件;在我目前的情况下,我有大约5000个事件。所以要实现这一点,我首先要用GET请求查询我的所有事件(并使用延续令牌连接它们),然后将它们分成100个批次,然后发送50个大请求以删除所有条目... < / p>

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

当然必须有比这更好的方法!

1 个答案:

答案 0 :(得分:3)

  

SQL中的相同内容是DELETE * WHERE deviceId =&#39; xxxxxxxx&#39;

     

当然必须有比这更好的方法!

可悲的是,没有:)。您必须根据您的要求获取实体,然后将其删除(分批或单独)。

然而,您可以通过仅从表中提取PartitionKeyRowKey而不是所有属性来优化提取过程,因为您只需要这两个属性来删除实体。