将数据插入Mongob Shard Cluster?

问题描述 投票:1回答:2

下面首先是我由Ops Manager创建的分片集群:

<< Shard cluster

我有2个Mongos和2个Shard(每个shard配置重复集)。我没有配置任何分片键,我的意思是我的群集中没有分片集合esxit。

当我使用mongos插入数据库以进行测试时,数据库只存储一个Shard。

所以我想在插入数据库时​​,数据可以在两个分片上分割并存储余额。我可以从mongos查询以获得准确的数据。

有人有同样的问题吗?

mongodb sharding
2个回答
0
投票

您需要实现区域范围,以便根据范围为每个碎片存储数据。

代码波纹管可帮助您创建区域:

对于zone01:

sh.addShardTag("rs1", "zone01")
sh.addTagRange("myDB.col01", { num: 1 }, { num: 10 }, "zone01")

对于zone02:

sh.addShardTag("rs2", "zone02")
sh.addTagRange("myDB.col01", { num: 11 }, { num: 20 }, "zone02")

这将帮助你Manage Shard Zones


0
投票

数据库和集合不会自动分片:分片部署可以包含未分片和分片数据。对于给定的数据库,将在primary shard上创建非聚合集合。

如果要对集合进行分片,则需要在连接到mongo进程的mongos shell中执行几个步骤以进行分片部署:

有关具体步骤,请参阅MongoDB手册中的Shard a Collection

为数据分发和用例选择一个好的分片键非常重要。选择糟糕的分片键可能会导致数据分布不均或限制分片性能。 MongoDB文档提供了有关选择分片键的注意事项和选项的更多信息。

如果您不确定集合是否收集了分片或想要查看当前数据分布的摘要,则可以在db.collection.getShardDistribution() shell中使用mongo

© www.soinside.com 2019 - 2024. All rights reserved.