2015-04-24 51 views
0

目前我運行一個mongodb replicaset,這個分貝增長太快。 我的收藏被稱爲帶有metering_point_id,時間戳,功率和能量的閱讀,其中metering_point_id是智能計的ID。mongodb分片sharding

智能電錶每秒鐘都會向mongodb發送一條新記錄。智能電錶的數量也在增長。

我需要一個可擴展的mongodb基礎結構。 我認爲與mongodb分片是可能的。 我的理想情況可能如下所示。從1到100

  • subshard2013時間戳

    • shard1 metering_point_id從開始2013,結束從開始2014 2013
    • subshard2014時間戳結束2014
    • ...等等
  • shard2 metering_point_id從101到200
    • subshard2013從開始2開始的時間戳013到2013年底
    • subshard2014從開始2014時間戳到2014年底
    • ...等等
  • ...等等

這樣的:https://www.lucidchart.com/invitations/accept/1533835d-05ce-4d5d-b719-fe94b4f84db6

這可能與mongodb?這個分片的東西?

非常感謝。

+0

你說的是幾臺機器? –

+0

是的,每個分片都是3個服務器的複製副本 – user310200

+0

我認爲你只能使用一個鍵,文檔中說:「分片鍵上的索引不能是多鍵索引。」 –

回答

0

如果分片中的嚴格層次結構不重要,則可以使用複合分片鍵來分片數據。您可以使用下面的命令來創建複合碎片鍵

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