MongoDB Parçalama: Örnekle Adım Adım Öğretici
⚡ Akıllı Özet
MongoDB Veri bölme işlemi, büyük veri kümelerini birden fazla yere dağıtılmış daha küçük alt kümelere ayırır. MongoDB Örnekler, herhangi bir sunucudaki CPU yükünü azaltır. Parçalı bir küme, depolama ve sorgu verimliliğini yatay olarak ölçeklendirmek için parçaları, bir yapılandırma sunucusunu ve bir yönlendiriciyi birleştirir.
Sharding nedir? MongoDB?
Parçalama bir kavramdır MongoDBbüyük veri kümelerini birden fazla veri kümesinde küçük veri kümelerine bölen MongoDB örnekleri.
Bazen içindeki veriler MongoDB Veri kümeleri o kadar büyük olacak ki, bu kadar büyük veri kümelerine yönelik sorgular sunucuda çok fazla CPU kullanımına neden olabilir. Bu durumu ele almak için, MongoDB Temel olarak veri kümelerinin birden fazla veri kümesine bölünmesi olan bir Sharding kavramı vardır. MongoDB örnekleri.
Boyutu büyük olabilen koleksiyon, aslında birden fazla koleksiyona veya diğer adıyla Parçalara bölünmüştür. Mantıksal olarak, tüm parçalar tek bir koleksiyon gibi çalışır.
Parçalama Yönteminin Avantajları MongoDB
Parçalı bir kümeleme uygulamadan önce, ekiplerin neden parçalama yöntemini benimsediğini anlamak faydalı olacaktır. Başlıca avantajları şunlardır:
- Yatay ölçeklenebilirlik: Veriler, tek bir makinenin sürekli olarak daha büyük hale gelmesini zorlamak yerine, birçok standart sunucuya dağıtılır.
- Daha yüksek verim: Okuma ve yazma işlemleri, bölümler arasında paralel olarak yürütülür, bu nedenle küme saniyede daha fazla isteği işleyebilir.
- Daha yüksek depolama kapasitesi: Tüm parçaların bir araya getirilmesiyle oluşan disk, tek bir sunucunun depolayabileceğinden çok daha büyük veri kümelerini saklayabilir.
- Yüksek kullanılabilirlik: Her bir parça bir çoğaltma kümesi olarak dağıtıldığında, tek bir düğümün arızalanması kümenin çalışmasını durdurmaz.
- Dengeli yük: MKS MongoDB Dengeleyici, herhangi bir bölümün aşırı yüklenme noktası haline gelmesini önlemek için veri parçalarını otomatik olarak yeniden dağıtır.
Bu avantajların bir araya gelmesiyle, parçalama (sharding) ölçeklendirme için standart yaklaşım haline geliyor. MongoDB Tek bir sunucunun sınırlarının ötesinde.
Parçalama Nasıl Uygulanır?
Parçalar, kümeler kullanılarak uygulanır; kümeler ise aslında bir grup bileşenden oluşur. MongoDB örnekleri.
Bir Shard'ın bileşenleri şunlardır:
- Bir Parça – Bu temel şeydir ve bu bir MongoDB Verilerin alt kümesini tutan örnek. Üretim ortamlarında tüm parçaların çoğaltma kümelerinin parçası olması gerekir.
- Yapılandırma sunucusu - Bu bir MongoDB Kümeyle ilgili meta verileri tutan örnek, temel olarak çeşitli öğelerle ilgili bilgiler MongoDB parça verilerini tutacak örnekler.
- Bir yönlendirici - Bu bir MongoDB Bu örnek, temelde istemci tarafından gönderilen komutları doğru sunuculara yönlendirmekten sorumludur.
Adım Adım Parçalama Cluster Örnek E-posta
) 1 Adım Yapılandırma sunucusu için ayrı bir veritabanı oluşturun.
mkdir /data/configdb
) 2 Adım Başlat MongoDB Yapılandırma modunda bir örnek. Diyelim ki, yapılandırma sunucumuz olacak Server D adında bir sunucumuz var. Sunucuyu yapılandırma sunucusu olarak yapılandırmak için aşağıdaki komutu çalıştırmamız gerekecek.
mongod --configdb ServerD:27019
) 3 Adım MongoOS örneğini, yapılandırma sunucusunu belirterek başlatın.
mongos --configdb ServerD:27019
) 4 Adım Mongo kabuğundan mongos örneğine bağlanın.
mongo --host ServerD --port 27017
) 5 Adım Kümelemeye eklenmesi gereken A ve B sunucularınız varsa, aşağıdaki komutları verin.
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
) 6 Adım Veritabanı için sharding özelliğini etkinleştirin. Yani Employeedb veritabanını sharding etmemiz gerekiyorsa, aşağıdaki komutu verin.
sh.enableSharding("Employeedb")
) 7 Adım Koleksiyon için sharding özelliğini etkinleştirin. Yani, Employee koleksiyonunu sharding etmemiz gerekiyorsa, aşağıdaki komutu verin.
sh.shardCollection("Employeedb.Employee", { "Employeeid": 1, "EmployeeName": 1 })
Bir Parça Anahtarı Nasıl Seçilir? MongoDB
Parça anahtarı, indekslenmiş alan veya alanlar kümesidir. MongoDB Hangi parçanın hangi belgeyi saklayacağına karar vermek için kullanılır. Anahtar veri dağıtımını yönlendirdiği için, onu iyi seçmek, parçalı bir dağıtımda en önemli karardır. Kötü bir anahtar, verileri ve trafiği tek bir parçada yoğunlaştırarak parçalamanın faydalarını ortadan kaldırır.
Güçlü bir shard anahtarı genellikle aşağıdaki özelliklere sahiptir:
- Yüksek kardinalite: Alan, verilerin birçok ince taneli parçaya bölünebilmesi için çok sayıda olası değere sahip olmalıdır.
- Düşük frekans: Hiçbir değer tek başına baskın olmamalıdır; aksi takdirde o değeri paylaşan belgeler tek bir parçaya yığılır.
- Monotonik olmayan değişim: Zaman damgaları gibi sürekli artan anahtarlar, her yeni yazma işlemini aynı bölüme göndererek bir sıcak nokta oluşturur.
MongoDB Anahtara dayalı iki parçalama stratejisini destekler. Aralık tabanlı parçalama, verileri bitişik aralıklara böler ve aralık sorgularına uygundur; karma tabanlı parçalama ise yazma işlemlerini parçalar arasında eşit olarak dağıtmak için bir karma fonksiyonu uygular. Ekipler genellikle yazma işlemleri yoğun olduğunda karma tabanlı parçalama ile başlar ve aralık tabanlı okuma işlemleri baskın olduğunda aralık tabanlı parçalamaya geçer. Hangi stratejiyi seçerseniz seçin, veri yüklendikten sonra parça anahtarı kolayca değiştirilemeyeceğinden, taahhüt etmeden önce anahtarı gerçekçi sorgu kalıplarına karşı test edin.
Parçalama ve Çoğaltma Karşılaştırması MongoDB
Parçalama (sharding) ve çoğaltma (replication) birbirini tamamlayıcı ancak farklı özelliklerdir. Aşağıdaki tablo, her birini doğru şekilde uygulayabilmeniz için farklılıkları vurgulamaktadır ve pratikte üretim kümeleri her ikisini de birlikte kullanır.
| Görünüş | Sharding | Çoğaltma |
|---|---|---|
| Amaç | Verileri bölerek yatay olarak ölçeklendirin | Verilerinizi koruyun ve erişilebilirliğini sağlayın. |
| Her düğümdeki veriler | Verilerin bir alt kümesi (bir parçası) | Verilerin tam bir kopyası |
| Birincil fayda | Daha fazla depolama ve işlem kapasitesi | Hata toleransı ve okuma ölçeklendirmesi |
| Anahtar bileşenler | Parçalar, yapılandırma sunucusu, mongos yönlendiricisi | Birincil ve ikincil üyeler |
Özetle, parçalama ölçeklenebilirlik ihtiyacını karşılarken, çoğaltma kullanılabilirlik ihtiyacını karşılar ve sağlam bir dağıtım her ikisini de birleştirir.

