小编Fre*_*son的帖子

Azure Cosmos DB 中托管的 MongoDB:分片与分区

我们希望将 MongoDB 用于我们的数据库,并且我们希望使用 MongoDB API 来避免“锁定”到 Azure Cosmos DB 托管。

我们使用 .Net Core 和 MongoDB.Driver 包(以便能够在本地、Atlas、Azure Cosmos hsoting 等之间轻松切换)与 MongoDB 实例进行通信,到目前为止一切顺利。

为了能够处理未来数据量(大小和性能)的增长,我希望对我的集合进行分片。据我了解,Cosmos DB 使用的策略是使用分区键进行分区,但由于我们使用 MongoDB.Driver,我无论如何都找不到在查询中指定分区键。

“Plain” MongoDB 使用分片代替,您可以设置一个文档属性,该属性应该用作数据分片方式的分隔符。

所以,我的猜测是分片是要走的路(因为 partionkeys 是 Cosmos 功能),但我无法让它工作。

Azure 门户中的“MongoDB shell”不理解 sh.shardCollection 命令,如果我从客户端连接 MongoDB shell,我会收到以下错误:

globaldb:PRIMARY> use sampledatabase
switched to db sampledatabase
globaldb:PRIMARY> sh.shardCollection("sampledatabase.Event", { TenantId: 1 } )
2018-06-21T12:03:06.522+0200 E QUERY    [thread1] Error: not connected to a mongos :
Run Code Online (Sandbox Code Playgroud)

如何继续在 Azure Cosmos 中托管的 MongoDB 实例中启动和运行分片?

partitioning sharding mongodb mongodb.driver azure-cosmosdb

5
推荐指数
1
解决办法
2225
查看次数