Cosmos DB(Mongo DB API)跨分区查询性能不好。

我需要你的帮助来解决关于跨分区查询的问题,我有一个集合(mongo db api),它存储的记录的分区类型为 “applicationType”。当我知道我的应用类型时,它工作得很好,基本上满足了75%的用户,但是有一些战略客户希望我们提供基于制造商的数据,这不是分区的一部分。当我在没有应用类型的情况下进行查询时,查询的表现非常糟糕。

需要您的建议来解决这个问题。 以下是我们存储的集合样本,供您参考。

{
               "_id" : ObjectId("5ad5d6b7529cd2007ba73bc8"),
               "applicationType" : "Highbay",
               "name" : "X",
               "subSeries" : "X1",
               "fullSeriesName" : "C1X", 
               "manufacturer": "cre"
               ...
               ...
               ...

}
,
{
               "_id" : ObjectId("5ad5d6b7529cd2007ba73bc8"),
               "applicationType" : "AreaLight",
               "name" : "X",
               "subSeries" : "X1", (mongo db 
               "fullSeriesName" : "C1X", 
               "manufacturer": "cre"
               ...
               ...
               ...

解决方案:

这是分区数据存储的常见模式。

Mongo用户的解决方案是使用 改变流 并使用不同的分区(shard)键将所有数据写入另一个集合中,或者预先计算你需要的任何值,以回答这些查询作为分区内的查询。

当你做 coll.watch 的时候,你需要一些计算来承载这个过程,还有一些其他的注意事项,这些在上面的链接中都有概述。

还有一点也是你需要衡量使用Change Streams的成本与只做跨分区查询的成本。一般来说,对于大批量的查询来说,这种解决方案更具成本效益。需要注意的是。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

我如何使用行中单元格的值来选择查找pandas数据框中的列名?

2022-5-14 14:00:11

解决方案

在Scrapy V1.8和V2.0之间做选择

2022-5-14 14:00:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索