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

这是我的设置:

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

我在做什么:

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

增加事件是直接的; 在发生时一次添加一个。

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

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

可以select使用批处理来创build大量的删除操作; 但是我刚刚发现每批有100个操作的上限。

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

在SQL中同样的事情是DELETE * WHERE deviceId ='xxxxxxxx'

当然,一定有比这更好的办法!

在SQL中同样的事情是DELETE * WHERE deviceId ='xxxxxxxx'

当然,一定有比这更好的办法!

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

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