Azure CosmosDB文档-批量删除

时间:2020-02-05 01:47:33

标签: azure azure-cosmosdb databricks

最近,我已要求从总共14Tb的Cosmos Db数据中删除几百万条记录。

当我上网时,我发现了一个存储的proc来进行批量删除,并且该分区基于分区键起作用。

我的情况是,每个文档中都有4个属性。 1. ID 2.数字[分区键] 3.开始日期 4.结束日期

要求是根据开始日期删除文档。

从c中删除*,其中c.startdate> =''和c.startdate <=''

上面的查询遍历所有分区并删除记录。

我还通过在Databricks中运行查询来进行检查,以将整个CosmosDB记录保存在一个临时数据帧中,并添加TTL样式,然后再次向上升级到Cosmos DB。

是否有更好的方法可以达到相同的目的?

1 个答案:

答案 0 :(得分:0)

通常来说,批量删除具有此article中列出的方法。

enter image description here

由于您的数据非常庞大,也许bulkDelete.js不再适合。毕竟,SP有执行时间限制。除了您问题中描述的解决方案之外,我还建议您可以使用SDK代码自行封装方法:

在查询请求中设置maxItemCount = 100EnableCrossPartitionQuery = true。与此同时,您可以获得continuation token,用于下一页数据。批量处理数据,也许您可​​以从.net bulk Delete LibraryGeneratePartitionKeyDocumentIdTuplesToBulkDeleteBulkDeleteAsyn)中获得一些代码片段