mongoimport ve mongorestore gibi araçlarla Cloud Firestore hizmetine toplu veri yükleme.
Cloud Firestore, işletmenizin ihtiyaçlarını karşılamak için otomatik ölçeklendirme sunan, yüksek düzeyde dağıtık bir sistemdir. Cloud Firestore, sistemin aldığı yüke göre verilerinizi dinamik olarak böler ve birleştirir.
Yüke dayalı bölme, önceden yapılandırma gerekmeden otomatik olarak gerçekleşir. Cloud Firestore'ın yüke dayalı bölme sistemi, diğer belge veritabanlarına kıyasla bazı önemli ve benzersiz özelliklere sahiptir. Verilerinizi modellerken bu özellikleri göz önünde bulundurmanız önemlidir.
Cloud Firestore'ın dağıtık yapısı, özellikle birincil replikanın yazma işleme kapasitesi için darboğaz oluşturduğu veritabanları için optimize edilmiş iş yüklerinde bazı tasarım tercihlerinin değiştirilmesini gerektirebilir.
En İyi Uygulamalar
Tek iş parçacıklı bir istemcide büyük miktarda veri işleyen iş yükleri darboğaz oluşturabilir. İstemci ve sunucunun işleme hızı benzer şekilde eşleştiğinden istemciler, verileri toplu olarak yüklemek için tek iş parçacığı kullanabilir. Cloud Firestore veritabanı, önemli ölçüde daha fazla paralelliği işleyebilir ancak bunun için istemcileri istekleri paralel olarak gönderecek şekilde yapılandırmanız gerekir.
mongoimport
mongoimport aracı kullanılırken istekler varsayılan olarak sırayla yapılır. Cloud Firestore içine yükleme süresini iyileştirmek için --numInsertionWorkers işaretiyle çalışan sayısını ayarlayın. Doğru ayar, istemcinizin boyutuna göre ayarlanmalıdır.
mongorestore
mongorestore aracını kullanırken geçici hatalara karşı dayanıklılığı artırmak için bağlantı dizenizden retryWrites=false parametresini kaldırın.
Cloud Firestore için yükleme süresini iyileştirmek amacıyla --numInsertionWorkersPerCollection işaretini kullanarak koleksiyon başına ekleme çalışanı sayısını ve --numParallelCollections işaretini kullanarak paralel koleksiyon sayısını da artırabilirsiniz. Doğru ayarlar, istemcinizin boyutuna göre ayarlanmalıdır.
eş zamansız programlama
MongoDB uyumlu işlemleri kullanarak kendi yazılımınızı geliştirirken paralelliği aşağıdaki yöntemlerle artırabilirsiniz:
- Eşzamansız çerçeveler: Eşzamansız çerçeveler kullanmak, istekleri paralel olarak işlemenize ve yanıtlamanıza olanak tanır. Veritabanınıza çağrı yaparken karmaşık havuzlar veya sıralar oluşturmanız gerekmez. Her istek akışı bağımsız bağlantılar kullanabilir ve veritabanı çağrılarını paralel olarak yapabilir.
- Paralelleştirilmiş işlem tekliflerini kullanın: Cloud Run gibi hizmetleri kullanarak sisteminiz, verileri işlemek için gereken işlem çalışanlarının sayısını ölçeklendirebilir.
Geçici Hatalar
Cloud Firestore gibi büyük ve dağıtık bir sistemle çalışırken ağ kesintileri veya bir dokümanla ilgili çakışmalar gibi geçici hatalarla karşılaşabilirsiniz.
Büyük miktarda bilgiyi toplu olarak yüklerken, başarısız yazma işlemleri için daha büyük toplu yükleme işlemini başarısızlığa uğratmadan bir yeniden deneme stratejisi sürdürmek önemlidir.