如何在Cosmos DB中查找重复的文档

问题描述 投票:2回答:2

我看到在特定的一天,有大量的数据从流分析作业写入cosmos DB。不应每天写大量文档。我必须检查当天是否有文件重复。

是否有任何查询/以任何方式在cosmos DB中找出重复的记录?

azure azure-cosmosdb azure-stream-analytics azure-cosmosdb-sqlapi stream-analytics
2个回答
1
投票

如果知道属性,可以检查重复项。我们遇到了一个令人讨厌的生产问题,并导致许多重复的记录。与MS支持部门联系以帮助我们识别重复的文档后,他们给了我们以下查询;

注意:属性AB together在我们的案例中定义了唯一性。因此,如果两个文档的A和B值相同,则它们是重复的。然后,您可以使用此查询的输出来删除最旧的查询,但保留最近的查询(基于_ts)

SELECT d.A, d.B From 
   (SELECT c.A, c.B, count(c._ts) as counts FROM c
    GROUP BY c.Discriminator, c.EndDateTime) AS d
WHERE d.counts > 1

0
投票

是否有任何查询/以任何方式在cosmos DB中找出重复的记录?

快速答案是是。请在cosmos db查询sql中使用distinct keyword。并过滤distinct(系统生成的unix时间戳:_ts

类似:

https://docs.microsoft.com/en-us/azure/cosmos-db/databases-containers-items#properties-of-an-item

然后您可以使用此批量删除库:Select distinct c.X,c.Y,C.Z....(all columns you want to check) from c where c._ts = particular day 删除重复的数据。

© www.soinside.com 2019 - 2024. All rights reserved.