gpt4 book ai didi

mongodb - 如何针对特定场景设计Azure Cosmos DB结构来限制创建的集合数量?

转载 作者:行者123 更新时间:2023-12-04 10:26:05 28 4
gpt4 key购买 nike

我正在使用 Azure Cosmos DB for MongoDB API。

我有一个场景,其中有多个包含模块的位置。这些模块将包含数据。将存在唯一的位置模块映射。为了更清楚地说明这一点,我将使用下面的表格结构来描述它,

位置 -> 模块 -> 数据

目前我使用的结构是这样的,

我们有一个 ModuleDataDB,其中有集合(通过位置和动态生成的模块的组合使名称变得唯一),

ModuleDataDB -> Location1-Module1 (collection)
-> Location1-Module2 (collection)
-> Location1-Module3 (collection)
-> Location2-Module1 (collection)
-> Location2-Module2 (collection)
-> Location2-Module3 (collection)
.
.

现在的问题是,之前我们对此数据库下的所有集合使用共享 RU(以降低成本),但现在如果我们使用共享 RU,Azure 已将每个数据库的集合限制为 25 个。

我正在考虑将此结构转移到更传统的方法,即将来自单个位置的所有模块放入单个集合中,也就是说,

ModuleDataDB     -> Location1 (collection)                 
-> Location2 (collection)
-> Location3 (collection)
.
.

我需要有关如何使其具有成本效益并限制我制作的收藏数量的建议。有没有更好的办法呢?另外,切换到包含 MongoDB 的 VM 而不是 Azure Cosmos 是否有意义?

编辑1(解决方案):正如下面@Cedric所建议的,我现在使用单个集合来进行所有位置模块映射,并使用合成分区键,该键将具有多个唯一值,例如“Location-1_Module-1”

所以它的结构如下,

ModuleDataDB     -> Client-1(collection) --> (Data) {
LocationID : ""
ModuleID : ""
PartitionKey : <LocationID + ModuleID>
.
.
}

最佳答案

使用单个集合可能是一个好方法。为了确保集合增长时的性能,您需要设置正确的分区键。

https://learn.microsoft.com/en-us/azure/cosmos-db/partition-data

关于mongodb - 如何针对特定场景设计Azure Cosmos DB结构来限制创建的集合数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60631860/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com