删除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'
当然,一定有比这更好的办法!
可悲的是,没有:)。 您必须根据您的要求提取实体,然后删除它们(分批或单独)。
但是,您只能通过从表中获取PartitionKey
和RowKey
而不是所有属性来优化获取过程,因为只需要这两个属性来删除实体。
- 发送消息时从Azure IoT Hub Libary发生错误
- 在Azure上部署Hexo ..不知道我错过了什么
- 错误:尝试运行node.js应用程序时找不到模块“asn1”
- 无法将Node.js从Cloud9 IDE部署到Azure网站
- 如何使用OIDCStrategy检索的accessToken来遍历AzuregraphicsAPI?
- Azure Cosmos DB:TypeError:无法读取未定义的属性'electionId'
- 将图像,video上传到Node.js WebService并存储在Azure Blob存储中
- 网站部署到Azure keystone.js时出错
- 如何通过Azure网站上的Node.js应用程序将大文件stream上传到Azure Blob存储?