gpt4 book ai didi

c# - 如何在 Cosmos DB 实例中使用 mongodb 分片

转载 作者:行者123 更新时间:2023-11-30 16:43:19 26 4
gpt4 key购买 nike

我目前正在研究使用 MongoDB 来构建在 Azure CosmosDB 基础架构之上运行的 Multi-Tenancy 多文档类型应用程序。

MSFT 文档上的分区页面(即 https://learn.microsoft.com/en-us/azure/cosmos-db/partition-data )彻底解释了如果您使用 DocumentDB 与 Cosmos 通信如何实现分区策略,但它们没有详细说明我应该如何处理问题使用 MongoDB API。

我的想法基本上是:

  • 单个数据库
  • 单个集合

    两者都会自然地映射到 Cosmos 的模型,以获得最便宜的体验。我的目标是 400 RU 作为标准大小,因为这是最便宜的选择。

  • 多种类型的文档,每种文档都有一个 TenantID 属性,该属性将映射到应用程序中具有各自关注点(安全、用户、性能等)的单独租户,以及一个 DocumentType 属性,以便轻松过滤。

对于 DocumentDB API,使用 TenantID 作为 PartitionKey 是很自然的。有了MongoDB API,我可以把它留给Azure吗?我应该“手动”做一些事情吗?

如果重要的话,我正在使用 C# API - 我认为其他任何地方的配置都会类似。

最佳答案

Mongo 和 Cosmos 分片机制的构建方式不同,因此如果您想充分利用平台,系统之间的分片键应该不同。

取自此网站关于 Mongo DB http://learnmongodbthehardway.com/schema/sharding/

Cardinality

Always consider the number of values your shard key can express. A sharding key that has only 50 possible values, is considered low cardinality, while one that might be able to express several million values might be considered a high cardinality key. High cardinality keys are preferable to low cardinality keys to avoid un-splittable chunks.

因此,在 Mongo DB 中,您需要拥有高基数分区键来定位大约 64MB 的目标 block (逻辑分区),

与 Cosmos DB 中一样,您将以低基数分区键为目标,因为逻辑分区最大为 10G

关于c# - 如何在 Cosmos DB 实例中使用 mongodb 分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45241080/

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