0

MS Azure 文档没有谈论它。正式的批量执行器文档只讨论插入和更新选项,而不是删除。有一个建议的 java script 服务器端程序来创建一个存储过程,听起来很不错,但这需要我们输入分区键值。如果我们的文档分布在数百万个逻辑分区中,那将毫无意义。

这是一个非常简单的业务需求。在迁移 sql api cosmos 集合中的大量数据时,如果我们插入一些错误的数据,似乎没有其他选项可以删除,然后恢复到以前的状态。我已经探索了几个小时,但找不到解决方案。甚至提出了 MS 支持的案例,他们指向一些我认为需要查看的 .net 代码,因为这看起来并不简单。如果有人不知道.net 怎么办。

我们不能轻松地批量删除分布在 MS Cosmos SQL API 中多个逻辑分区的文档吗?觉得恶心。。

我希望你能提供一些准确的细节。如何通过一些简单直接的示例代码和步骤来实现这一点。希望 MS 和 Cosmos db 专家也能分享意见。

4

3 回答 3

1

甚至提出了 MS 支持的案例,他们指向一些我认为需要查看的 .net 代码,因为这看起来并不简单。

显然,您已经做出了一些努力来寻找除以下 2 种情况之外的任何解决方案:

1.批量删除存储过程:https ://github.com/Azure/azure-cosmosdb-js-server/blob/master/samples/stored-procedures/bulkDelete.js

2.批量删除执行器:

.NET:https ://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started/blob/master/BulkDeleteSample/BulkDeleteSample/Program.cs

Java:https ://github.com/Azure/azure-cosmosdb-bulkexecutor-java-getting-started/blob/master/samples/bulkexecutor-sample/src/main/java/com/microsoft/azure/cosmosdb/bulkexecutor/批量删除/BulkDeleter.java

到目前为止,仅支持以上官方解决方案。另一种解决方法是cosmos db的TTL。相信你有自己的逻辑来判断哪部分数据是正确的,哪部分数据是错误的,应该删除。您可以在这些数据上设置 TTL,以便在过期数据到达时立即杀死它们。

于 2020-03-03T06:49:35.870 回答
0

如果您编写一个批处理作业,通过使用某些日期配置在夜间删除文档,我们可以实现它。这是有关如何做到这一点的文章。

https://medium.com/@vaibhav.medavarapu/bulk-delete-documents-from-azure-cosmos-db-using-asp-net-core-8bc95dd20411

于 2020-05-21T23:16:54.827 回答
0

有没有人试过这个 .. 看起来像 java 中的一个很好的解决方案 https://github.com/Azure/azure-cosmosdb-bulkexecutor-java-getting-started#bulk-delete-api

于 2020-03-04T04:43:52.087 回答