溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mongodb 中怎么利用分片集群創(chuàng)建分片集合

發(fā)布時間:2021-07-16 16:40:55 來源:億速云 閱讀:156 作者:Leah 欄目:關(guān)系型數(shù)據(jù)庫

mongodb 中怎么利用分片集群創(chuàng)建分片集合,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.創(chuàng)建數(shù)據(jù)庫,直接use 即可,沒有的話,如果你創(chuàng)建集合了,他就自動創(chuàng)建了!

use liuwenhe

2.插入數(shù)據(jù),如果hezi集合不存在,則自動創(chuàng)建

for (var i = 0; i < 100; i++) { db.hezi.insert({name: i}); }

3.為hezi集合的name列添加索引,因為如果要以name列作為分片鍵,需要有索引;

如果集合是空的,可以不創(chuàng)建索引直接進行下一步的分片,會自動創(chuàng)建索引;如果集合不為空,必須為分片建創(chuàng)建索引才行!,如果你要以hash規(guī)則分片,需要創(chuàng)建hash索引!

mongos> db.hezi.createIndex({"name":1})

mongos> db.hezi.createIndex({name:'hashed'}); 創(chuàng)建hash索引

4.為數(shù)據(jù)庫開啟分片,這樣才能對數(shù)據(jù)庫liuwenhe下的集合做分片!

mongos> sh.enableSharding("liuwenhe");

5.開啟集合hezi的分片!

1:升序,-1降序,hashed:哈希分布

sh.shardCollection("liuwenhe.hezi",{name:1})                            ----基于值的分片

sh.shardCollection("liuwenhe.hezi", { "name" : "hashed" })        ----hash規(guī)則分片

6.查看集合是否開啟分片:

mongos>use liuwenhe

mongos> db.hezi.stats().sharded

true

7.sh.status() 查看分片的信息:

可以看到liuhe庫的主分片是s1092111427021,然后liuhe.hezi這個集合的分片鍵是name列升序,liuhe.hezi這個集合目前就1個chunk,在s1092111427021節(jié)點上,所以這個時候你去別的節(jié)點,例如s1092111427020上看,是沒有這個庫和這個集合的,當你向liuhe.hezi插入數(shù)據(jù),直到觸發(fā)發(fā)生chunk遷移之后,這時候在別的分片才會有可能有這個集合!

mongos>sh.status()

{ "_id" : "liuwehehe", "primary" : "s1092111427021", "partitioned" : true, "version" : { "uuid" : UUID("46373baa-3f93-42c3-a7fd-51225ef00636"), "lastMod" : 1 } }

liuwenhe.hezi

shard key: { "name" : 1 }

unique: true

balancing: true

chunks:

s1092111427021 1

{ "name" : { "$minKey" : 1 } } -->> { "name" : { "$maxKey" : 1 } } on : s1092111427021 Timestamp(1, 0)

8.當數(shù)據(jù)超過1個chunk之后,均勻分布在多個節(jié)點上,如下所示:

不斷插入數(shù)據(jù),直到觸發(fā)chunk遷移:

for (var i = 0; i < 1000000000000000; i++) { db.hezi.insert({name: i}); }

不斷查看分片集群狀態(tài),如下所示三個節(jié)點上基本均勻的分布了 20、19、20個chunk:

mongos>sh.status()

liuwenhe.hezi

shard key: { "name" : 1 }

unique: false

balancing: true

chunks:

s1092111427019 20

s1092111427020 19

s1092111427021 20

看完上述內(nèi)容,你們掌握mongodb 中怎么利用分片集群創(chuàng)建分片集合的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI