【问题标题】:mongodb sharding of shards分片的mongodb分片
【发布时间】:2015-04-24 17:08:46
【问题描述】:

目前我运行一个 mongodb 副本集,这个 db 增长太快。 我的集合是一个名为 Reading 的带有 metering_point_id、timestamp、power 和 energy,其中 metering_point_id 是智能电表的 id。

智能电表每秒都会向 mongodb 发送一条新记录。智能电表的数量也在增长。

我需要一个可扩展的 mongodb 基础架构。 我认为使用 mongodb 分片是可能的。 我的理想场景可能是这样的。

  • shard1 metering_point_id 从 1 到 100
    • subshard2013 时间戳从 2013 年开始到 2013 年结束
    • subshard2014 时间戳从 2014 年开始到 2014 年结束
    • ...等等
  • shard2 metering_point_id 从 101 到 200
    • subshard2013 时间戳从 2013 年开始到 2013 年结束
    • subshard2014 时间戳从 2014 年开始到 2014 年结束
    • ...等等
  • ...等等

像这样:https://www.lucidchart.com/invitations/accept/1533835d-05ce-4d5d-b719-fe94b4f84db6

这可以用 mongodb 吗?这个子分片的东西?

非常感谢。

【问题讨论】:

  • 你说的是几台机器?
  • 是的,每个分片是一个具有 3 个服务器的副本集
  • 我认为你只能使用一个键,文档说:“分片键上的索引不能是多键索引。”
  • 我不明白。为什么不直接添加一个分片,让平衡器完成剩下的工作?
  • 我认为复合分片键是解决方案。 docs.mongodb.org/manual/tutorial/choose-a-shard-key/…

标签: mongodb sharding


【解决方案1】:

如果您的分片中的严格层次结构并不重要,您可以使用复合分片键对数据进行分片。您可以使用以下命令创建复合分片键

sh.shardCollection("<smartmeter_db>", {"metering_point_id" : 1, "timestamp" : 1})

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2018-09-15
    • 1970-01-01
    • 2013-03-26
    • 2021-07-26
    • 2013-05-08
    • 2019-03-26
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多