mongoimport ve mongorestore gibi araçlarla Cloud Firestore'ya 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ılmış bir sistemdir. Cloud Firestore, sistemin aldığı yüke göre verilerinizi dinamik olarak böler ve birleştirir.
Yük tabanlı bölme, önceden yapılandırma gerektirmeden otomatik olarak gerçekleşir. Cloud Firestore Yüke dayalı bölme sisteminin, verilerinizi modellendirirken göz önünde bulundurmanız gereken diğer belge veritabanlarına kıyasla bazı önemli ve benzersiz özellikleri vardır.
Cloud Firestore'nın dağıtılmış yapısı, özellikle birincil replikanın yazma işleme hızı için darboğaz olduğ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ı istemcide büyük miktarda veri işleyen iş yükleri performans sorunu oluşturabilir. İstemci ve sunucu işleme hızı benzer şekilde eşleştiğinden, istemciler verileri toplu olarak yüklemek için tek iş parçacığı kullanabilir. Bir Cloud Firestore veritabanı çok 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 yükleme süresini iyileştirmek için çalışan sayısını --numInsertionWorkers işaretiyle ayarlayın. Doğru ayar, istemcinizin boyutuna göre ince ayar yapmayı gerektirebilir.
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 yükleme süresini iyileştirmek için --numInsertionWorkersPerCollection işaretiyle koleksiyon başına ekleme çalışanı sayısını ve --numParallelCollections işaretiyle paralel koleksiyon sayısını da artırabilirsiniz. Doğru ayarlar, istemcinizin boyutuna göre ince ayar yapmayı gerektirebilir.
eş zamansız programlama
MongoDB uyumlu işlemleri kullanarak kendi yazılımınızı geliştirirken paralelliği aşağıdaki yöntemlerle iyileştirebilirsiniz:
- Eşzamansız çerçeveler: Eşzamansız çerçeveler kullanarak istekleri paralel olarak işleyebilir ve yanıtlayabilirsiniz. Veritabanınıza çağrı yaparken karmaşık bir havuz veya kuyruk 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ş bilgi işlem tekliflerinden yararlanın: Cloud Run gibi hizmetleri kullanarak sisteminiz, verileri işlemek için gereken bilgi işlem çalışanlarının sayısını ölçeklendirebilir.
Geçici Hatalar
Cloud Firestore gibi büyük bir dağıtılmış sistemle çalışırken ağdaki kısa süreli kesintiler veya bir dokümanda çakışma gibi geçici hatalarla karşılaşabilirsiniz.
Büyük miktarda bilgiyi toplu olarak yüklerken daha büyük toplu yükleme işlemini başarısız kılmadan başarısız yazma işlemleri için yeniden deneme stratejisi uygulamak önemlidir.