MongoDB'de Parçalama Nedir?
Sharding, MongoDB'de büyük veri kümelerini birden çok MongoDB örneğinde küçük veri kümelerine bölen bir kavramdır.
Bazen MongoDB içindeki veriler o kadar büyük olur ki, bu tür büyük veri kümelerine yönelik sorgular sunucuda çok fazla CPU kullanımına neden olabilir. Bu durumu çözmek için MongoDB, temelde veri kümelerinin birden çok MongoDB örneğine bölünmesi olan bir Sharding konseptine sahiptir.
Boyut olarak büyük olabilecek koleksiyon aslında birden fazla koleksiyona veya adı verilen Parçalara bölünmüştür. Mantıksal olarak tüm parçalar tek bir koleksiyon olarak çalışır.
Parçalama Nasıl Uygulanır
Parçalar, MongoDB örneklerinden başka bir şey olmayan kümeler kullanılarak uygulanır.
Bir Parçanın bileşenleri şunları içerir:
- Bir Parça - Bu temel şeydir ve bu, verilerin alt kümesini tutan bir MongoDB örneğinden başka bir şey değildir. Üretim ortamlarında, tüm kırıkların çoğaltma kümelerinin parçası olması gerekir.
- Yapılandırma sunucusu - Bu, küme hakkındaki meta verileri tutan bir mongodb örneğidir, temelde parça verilerini tutacak çeşitli mongodb örnekleri hakkında bilgi.
- Bir Yönlendirici - Bu, temelde istemcinin gönderdiği komutları doğru sunuculara yeniden yönlendirmekten sorumlu olan bir mongodb örneğidir.
Adım Adım Parçalama Küme Örneği
Adım 1) Yapılandırma sunucusu için ayrı bir veritabanı oluşturun.
mkdir /data/configdb
Adım 2) Mongodb örneğini yapılandırma modunda başlatın. Yapılandırma sunucumuz olacak Sunucu D adında bir sunucumuz varsa, sunucuyu bir yapılandırma sunucusu olarak yapılandırmak için aşağıdaki komutu çalıştırmamız gerekeceğini varsayalım.
mongod -configdb ServerD: 27019
Adım 3) Yapılandırma sunucusunu belirterek mongos örneğini başlatın
mongos -configdb ServerD: 27019
Adım 4) Mongo kabuğundan mongo örneğine bağlanın
mongo -host ServerD -port 27017
Adım 5) Kümeye eklenmesi gereken Sunucu A ve Sunucu B'ye sahipseniz, aşağıdaki komutları verin
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Adım 6) Veritabanı için parçalamayı etkinleştirin. Dolayısıyla, Empicipedb veritabanını parçalamamız gerekirse, aşağıdaki komutu verin
sh.enableSharding(Employeedb)
7. Adım) Koleksiyon için parçalamayı etkinleştirin. Dolayısıyla, Employee koleksiyonunu parçalamamız gerekirse, aşağıdaki komutu verin
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Özet:
- Öğreticide açıklandığı gibi, Sharding, MongoDB'de büyük veri kümelerini birden çok MongoDB örneğinde küçük veri kümelerine bölen bir kavramdır.