Praktik terbaik untuk pemuatan data massal

Hanya relevan dengan edisi Cloud Firestore Enterprise.

Halaman ini menjelaskan praktik terbaik saat memuat data secara massal ke Cloud Firestore dengan kompatibilitas MongoDB menggunakan alat seperti mongoimport.

Cloud Firestore adalah sistem yang sangat terdistribusi yang menawarkan penskalaan otomatis untuk memenuhi kebutuhan bisnis Anda. Cloud Firestore secara dinamis memisahkan dan menggabungkan data Anda berdasarkan beban yang diterima oleh sistem.

Pemisahan berbasis beban terjadi secara otomatis tanpa memerlukan pra-konfigurasi. Sistem pemisahan berbasis beban Cloud Firestore memiliki beberapa karakteristik penting dan unik dibandingkan dengan database dokumen lain yang penting untuk diingat saat Anda memodelkan data.

Cloud Firestore yang terdistribusi dapat memerlukan perubahan beberapa pilihan desain, terutama untuk beban kerja yang dioptimalkan untuk database yang replika utamanya menjadi hambatan untuk throughput penulisan.

Praktik Terbaik

Beban kerja yang memproses data dalam jumlah besar di klien berutas tunggal dapat menyebabkan hambatan. Klien mungkin dapat menggunakan threading tunggal untuk memuat data secara massal, karena throughput klien dan server cocok. Database Cloud Firestore dapat menangani paralelisme yang jauh lebih besar, tetapi Anda harus mengonfigurasi klien untuk mengirim permintaan secara paralel.

mongoimport

Saat menggunakan alat mongoimport, permintaan dibuat secara berurutan secara default. Untuk meningkatkan waktu pemuatan ke Cloud Firestore, tetapkan jumlah pekerja dengan tanda --numInsertionWorkers. Setelan yang benar mungkin memerlukan penyesuaian berdasarkan ukuran klien Anda, tetapi umumnya kami menyarankan untuk memulai dengan setidaknya 32.

pemrograman asinkron

Saat mengembangkan software Anda sendiri menggunakan API yang kompatibel dengan MongoDB, Anda dapat meningkatkan paralelisme dengan cara berikut:

  • Framework asinkron: menggunakan framework asinkron memungkinkan Anda memproses dan merespons permintaan secara paralel. Anda tidak perlu mengembangkan penggabungan atau antrean yang kompleks saat melakukan panggilan ke database. Setiap alur permintaan dapat menggunakan koneksi independen dan melakukan panggilan database secara paralel.
  • Gunakan penawaran komputasi paralel: dengan menggunakan layanan seperti Cloud Run, sistem Anda dapat menskalakan jumlah pekerja komputasi yang diperlukan untuk memproses data.

Kegagalan Sementara

Saat menangani sistem terdistribusi besar seperti Cloud Firestore, Anda mungkin mengalami kegagalan sementara seperti gangguan jaringan atau pertentangan pada dokumen.

Saat memuat sejumlah besar informasi secara massal, penting untuk mempertahankan strategi percobaan ulang untuk penulisan yang gagal tanpa membuat operasi pemuatan massal yang lebih besar gagal.