最近,我要求从总计14Tb的Cosmos Db数据中删除几百万条记录。
当我查看互联网时,我发现了一个存储的进程来执行批量删除,它是基于分区键工作的。
我的场景是,我们在每个文档中都有4个属性。1. id 2.数字分区键3.开始日期4.结束日期
要求是删除基于startdate的文档。
从c中删除* where c.startdate >= '‘和c.startdate <='’
上面的查询遍历所有分区并删除记录。
我还通过在Databricks中运行查询来获取临时数据帧中的整个CosmosDB记录,并添加TTL,然后再次升级到Cosmos DB。
有没有更好的方法来实现同样的目标?
发布于 2020-02-05 10:24:26
一般来说,批量删除具有此article中列出的方法。

由于你的数据非常庞大,也许bulkDelete.js不再适合你了。毕竟,除了你问题中描述的解决方案之外,SP还有执行时间limit.In,我也建议你可以使用SDK代码自己封装一个方法:
在查询request.Meanwhile中设置maxItemCount = 100和EnableCrossPartitionQuery = true,您可以获得用于下一页数据的continuation token。处理批处理中的数据,也许您可以从.net bulk Delete Library (GeneratePartitionKeyDocumentIdTuplesToBulkDelete和BulkDeleteAsyn)获得一些代码片段
https://stackoverflow.com/questions/60067955
复制相似问题