以下是我的设置:
我在Azure中运行Node.js Web应用程序,该应用程序使用Azure表存储(非SQL)。要使用表存储,我正在使用azure-storage npm模块。
我正在尝试做什么:
所以我有一个跟踪设备事件的系统。在存储中我将我的PartitionKey设置为deviceId,我将RowKey设置为eventId。
直接添加事件;在它们发生时一次添加一个。
使用查询结构很容易检索它们。
但是,删除大量条目似乎很痛苦。看来您一次只能删除一个实体。似乎没有基于查询的实现。
可以选择使用批次创建大批删除操作;但我刚发现每批操作上限为100次。
所以我试图删除单个设备的所有事件;在我目前的情况下,我有大约5000个事件。所以要实现这一点,我首先要用GET请求查询我的所有事件(并使用延续令牌连接它们),然后将它们分成100个批次,然后发送50个大请求以删除所有条目... < / p>
SQL中的相同内容是DELETE * WHERE deviceId ='xxxxxxxx'
当然必须有比这更好的方法!
答案 0 :(得分:3)
SQL中的相同内容是DELETE * WHERE deviceId =&#39; xxxxxxxx&#39;
当然必须有比这更好的方法!
可悲的是,没有:)。您必须根据您的要求获取实体,然后将其删除(分批或单独)。
然而,您可以通过仅从表中提取PartitionKey
和RowKey
而不是所有属性来优化提取过程,因为您只需要这两个属性来删除实体。