Ant*_*ony 3 azure azure-stream-analytics stream-analytics azure-cosmosdb azure-cosmosdb-sqlapi
我已经看到在特定日期从流分析作业向 Cosmos DB 写入大量数据。它不应该在一天内写出大量的文件。我必须检查那天是否有重复的文件。
是否有任何查询/任何方法可以在 Cosmos DB 中查找重复记录?
如果您知道检查重复项的属性,则有可能。我们有一个令人讨厌的生产问题,也导致了许多重复的记录。在联系 MS 支持以帮助我们识别重复文档后,他们给了我们以下查询;
请记住:在我们的案例中,属性A和B 共同定义了唯一性。因此,如果两个文档对 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
Run Code Online (Sandbox Code Playgroud)
Jay*_*ong -1
有没有任何查询/任何方法可以找出cosmos DB中的重复记录?
快速回答是肯定的。请在 cosmos db 查询 sql 中使用distinct关键字_ts。并过滤(系统生成的 unix 时间戳:https://learn.microsoft.com/en-us/azure/cosmos-db/databases-containers-items#物品的属性)
就像是:
Select distinct c.X,c.Y,C.Z....(all columns you want to check) from c where c._ts = particular day
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用此批量删除库删除重复数据:https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started/tree/master/BulkDeleteSample。
| 归档时间: |
|
| 查看次数: |
3548 次 |
| 最近记录: |