Azure cosmosdb 按文档类型清理Cosmos集合

Azure cosmosdb 按文档类型清理Cosmos集合,azure-cosmosdb,Azure Cosmosdb,我有一个收藏(1B记录),我需要清理它 模式: // <pk> - item Id // <type> - literal enum, e.g. Type1|Type2|Type3 { "partKey": "<pk>", "type": "<type>" } /-项目Id //-文字枚举,例如Type1 | Type2 | Type3 { “partKey

我有一个收藏(1B记录),我需要清理它

模式:

// <pk> - item Id
// <type> - literal enum, e.g. Type1|Type2|Type3

{
  "partKey": "<pk>",
  "type": "<type>"
}
/-项目Id
//-文字枚举,例如Type1 | Type2 | Type3
{
“partKey”:“partKey”,
“类型”:”
}
我需要删除type=
Type2
的所有文档

  • 我无法执行
    删除。。。其中c.type='Type2'
    ,因为它不受支持
  • 集合已分区,因此无法执行
  • 我不想使用SDK

  • 按指定条件清除集合的最佳方法是什么?

    我在集合中创建以下数据进行测试:

    [
        {
            "partKey": "1",
            "type": "1"
        },
        {
            "partKey": "5",
            "type": "4"
        },
        {
            "partKey": "2",
            "type": "2"
        },
        {
            "partKey": "3",
            "type": "2"
        },
        {
            "partKey": "4",
            "type": "2"
        }
    ]
    
    然后在ADF中创建一个数据流。源和接收器数据集都是您的Cosmos DB集合

  • 选中源设置中的“包括系统列”选项
  • 2.创建Alter Row转换以删除文档

  • 选中允许删除选项并键入分区密钥。
  • 结果:

    我不想使用SDK
    -我很想知道这背后的原因。这项任务看起来像是Ops,首先,我试图找到一个Ops解决方案(工具、MS服务、启动查询的能力等)。SDK是我最喜欢使用的工具。如果你正在寻找一个工具来实现这一点,我可以请你看看。它具有此功能,您可以通过指定查询批量删除文档。因此,您可以要求大脑数据删除与查询匹配的文档,如
    Select*from Root r,其中r.type='Type2'
    。它将获取匹配的文档并删除它们。[披露:我是构建此工具的开发人员之一]。谢谢。这看起来正是我想要的,但我受专有软件的限制,所以我正在寻找更常见的/MS或OpenSource。我不知道有任何开源/MS工具可以做到这一点。回到SDK,我想。请告诉我,如果你有兴趣知道你需要采取什么方法,如果你要编码这个。请让我知道它是否对你有帮助。如果没有,我以后会删除。谢谢。这个解决方案看起来真的很棒。最终,由于公司订阅限制,我将无法使用它