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

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

这是我的设置:

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

我正在尝试做什么:

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

添加事件非常简单;当它们发生时一次添加一个。

使用查询结构可以轻松检索它们。

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

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

所以我试图删除单个设备的所有事件;在我目前的情况下,我有大约 5000 个事件。因此,为了实现这一目标,我首先必须使用 GET 请求查询所有事件(并使用延续 token 将它们连接起来),然后将它们分成 100 个批处理,然后发送 50 个大请求以删除所有条目...

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

肯定有比这更好的方法!

最佳答案

The same thing in SQL would be DELETE * WHERE deviceId='xxxxxxxx'

Surely there must be a better way than this!

遗憾的是,没有:)。您必须根据您的要求获取实体,然后删除它们(批量或单独)。

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

关于javascript - 删除 Azure 表存储中的大量条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491995/

相关文章:

javascript - CSS 动画边框

node.js - ajv 验证失败且架构正确 "data should NOT have additional properties"

javascript - Node.js - 异步函数不回调的后果是什么?

azure - 使用 Azure DevOps Pipeline 中的工件构建 Docker

javascript - 如何在不取消 API 调用的情况下使用 axios 设置超时?

javascript - Firestore交易: set id of the first document to the second document

javascript - Chrome History API 异常行为

javascript - 为什么以下代码没有更改 Node.js 中我的对象中的属性

c# - 无法解析 Azure 微服务中的类型的服务

node.js - Azure 函数应用中的 context.log 与 console.log