Bir NoSQL Veritabanına 20 Milyon Kayıt Nasıl Eklenir?

Yayınlanan: 2022-11-24

Bir NoSQL veritabanına 20 milyon kayıt eklemenin çeşitli yolları vardır. Bunun bir yolu, veritabanının toplu yükleme özelliğini kullanmaktır. Bu, verilerin veritabanının anlayabileceği belirli bir biçimde olmasını gerektirir ve verileri yüklemenin en etkili yolu olur. Başka bir yol, verileri her seferinde bir kayıt eklemek için bir komut dosyası veya uygulama kullanmaktır. Bu daha yavaş bir süreç olabilir ancak verilerin belirli bir formatta olmasını gerektirmez.

Mongodb Milyonlarca Kaydı İşleyebilir mi?

Kredi bilgileri: freecodecamp.org

Milyonlarca kaydı gerçek zamanlı olarak işlemek için MongoDB ve ElasticSearch kullanmalısınız. Bu yapı ve kavramların büyük bir veri setinde kullanılması da avantajlı olacaktır.

Devasa MongoDB eklentilerini optimize ederek, 50 milyon kaydı %33 oranında daha hızlı yükleyebiliriz! Github Kurulum sayfası, tüm bu programların kodunu bulacağınız yerdir. Macbook Pro'mu 25–35 Mbps yukarı bağlantı hızı ve 25–35 Mbps bağlantı hızıyla test ettim. Bu deneyde, sonuçların üretime hazır bir EC2'de elde edilenlerden farklı olması mümkündür. Kaggle veri testi platformu, veri kümeleri hazırladığı için verileri test etmek için mükemmel bir seçimdir. 5 GB'lık bir dosya olan yelp_academic_dataset_review.json, 6,9 milyon kayıt içermektedir. Düğümler dosyayı okuduktan sonra, Mongo'nun 1 milyon kayıt yazması 2,5 saat sürdü.

Bu araç, en fazla 2 milyon veri noktası oluşturmak için önerilir. Bir Node.js arabellek varlığı , 2 GB'tan fazla dosya içeremez. Akışların burada kullanılması çok mantıklı. Bu örnekte 100k sıralıyı biraz gecikmeli olarak ekleyebiliriz. Ek parçayı yerleştirmek 29 dakika sürdü. EventEmitter tüm akışlarda kullanıldığından, durum budur. Bu CPU kullanımı, sıralı 100k yerleştirmeden %10 daha fazla, %40'a yükseldi.

IOPS, 50'den 100'e neredeyse iki katına çıktı ve bağlantılar 40'tan 60'a çıktı. Her klasör üzerinde yineleme yapmalı, dosyayı okumalı ve inceleme sayacı dizisini burada kaydetmelidir. Bu yaklaşım gelecekte iyi çalışırsa, daha sonraki eklemelere uygulanabilir; nasıl çalıştığını görmek için zaman ayırın. Bu bölümde 51936 klasörü okumanın ve 63 milyon kayıt eklemenin ne kadar süreceğine baktık. Sonraki milyon kayda ulaşmak için kaç klasörün okunduğunu bilmeliyiz çünkü veri ekleme daha sonra paralelleştirilebilir. Sistemin 63 milyon kayıt eklemesi yaklaşık bir buçuk saat sürüyor. Bundan %33 daha hızlı olacağını önceden tahmin etmiştik!

Bir buçuk saat içinde yaklaşık 45 GB veri yükledik. Tüm dönem boyunca IOPS 125 idi ve bağlantılar çoğu zaman 100 civarında kaldı. Artık sonuçlar geldiğine göre, sanırım gelecek için plan yapmaya başlayabilirim. InsertMany, bir dakikadan kısa sürede 1 milyon kayıt eklemenizi sağlar. 1 ila 10 metre arasında yükleme için, büyük olasılıkla ekleri paralel hale getirmek için Stream API gerekir. Küme CPU'su ve IOPS çok ağır olduğu için uygulama performansı büyük ölçüde düşebilir. Aynı anda kaç işlemin/işlemin yürütülebileceğini belirlemek için bir zamanlama komut dosyası çalıştırın.

MongoDB, büyük dosyalar için mükemmel bir seçim olmasının yanı sıra diğer dosya depolama sistemlerine göre bir takım avantajlara sahiptir. Başlamak için, büyük dosyalar veritabanında kolayca saklanabilir. Ayrıca, veritabanı çok sayıda nesneyi işleme kapasitesine sahiptir. Son olarak, veritabanı yatay olarak ölçeklendirilebilir ve bunaltılmadan daha büyük miktarda veriyi işlemesine olanak tanır. Büyük dosyaları bir veritabanında depolamak istiyorsanız, MongoDB mükemmel bir seçimdir. Diğer depolama ve ölçeklenebilirlik seçeneklerine göre kullanmanın sayısız avantajı vardır.

Mongodb Belgesinin Maksimum Boyutu Nedir?

Kredi bilgileri: brain-mentors.com

Bir MongoDB belgesi için maksimum boyut 16 megabayttır.

Mongodb'a Milyonlarca Kayıt Nasıl Eklenir

Çalışan bir MongoDB sunucunuz olduğunu ve bir veritabanı ve koleksiyon oluşturduğunuzu varsayarsak, insert() yöntemini kullanarak kayıtları ekleyebilirsiniz. Bu yöntem, bir dizi belge veya tek bir belge alabilir.
Tek bir belge eklemek için aşağıdaki sözdizimini kullanın:
db.collection.insert(
{
isim: “John Doe”
}
)
Birden çok belge eklemek için aşağıdaki sözdizimini kullanın:
db.collection.insert([
{
isim: “John Doe”
},
{
isim: “Jane Doe”
}
])

Birkaç seçeneğiniz var. Her cihaz kimliği için ayrı bir koleksiyon oluşturmak ve ardından bu kimliği ayrı ayrı sorgulamak mümkündür. Çok fazla cihazınız varsa, bu pahalı olabilir. Bir koleksiyondaki tüm belgeleri aramak istiyorsanız, aynı şeyi tüm cihazlar için aynı koleksiyonla yapabilirsiniz. Çok sayıda cihazınız varsa, bu hizmetin maliyeti çok pahalı olabilir. Üçüncü seçenek, parçalanmış bir koleksiyon oluşturmaktır. Yük, Mongo'ya yayılacak ve daha hızlı sorgu işlemeyle sonuçlanacak. Parçalanmış koleksiyon seçeneğini kullanarak koleksiyon oluşturmak istiyorsanız, parçalar seçeneğini doğru olarak ayarladığınızdan emin olun.

Mongodb: Bir Nosql Veritabanı Yönetim Sistemi

MongoDB, belgeleri işlemek için oluşturulmuş bir NoSQL veritabanı yönetim sistemidir. Belge başına varsayılan 100.000 dizin anahtarı sınırıyla çok çeşitli veri dosyalarını işleyebilir. MongoDB platformu bu nedenle aşırı yüklenmeden büyük miktarda veri depolayabilir. Toplu ekleme, MongoDB'de kullanışlı bir özelliktir. Aynı anda birden çok belge ekleyebileceğinden, ekleyecek çok veriniz varsa yararlı olabilir.

Mongodb Toplu Ekleme Sınırı

MongoDB 3.6 sürümü şu anda 100.000 veriyor.

Toplu ekleme yöntemi, birden çok belgenin aynı anda MongoDB'ye eklenmesine olanak tanır. Bir parametre olarak, ekleme yöntemi bir belge dizisi oluşturur. Kullanıcıların sorgularına tüm alanları dahil etmesi gerekmez. Bu örnekte, MongoDB toplu ekleme kullanarak birden fazla belge eklemek için komut satırını kullanalım. Bir sayıyı toplu olarak eklemek, Bulk.insert() yöntemi kullanılarak gerçekleştirilir. 2.6 sürümünden sonra tanıtılan bu yöntem, sırasız toplu eklemeye benzer. Önce carbulk1 isminde sıralı bir araba listesi oluşturuyoruz, ardından üzerlerinde yürütme yöntemini çalıştırarak belgeleri yerleştiriyoruz. Bu Java programı, ilk kez kabuk komutlarını kullanarak çeşitli toplu işlemlerin nasıl çalıştırılacağını gösterir.

Mongodb'un Bir Sınırı Var mı?

MongoDB, 100 seviyelik iç içe derinliği destekler, bu nedenle belgelerin boyutu 16 MB'a kadar çıkabilir. MongoDB veritabanı en fazla 20 GB veri içerebilir.