تحميل البيانات بشكل مجمّع إلى Cloud Firestore باستخدام أدوات مثل mongoimport وmongorestore
Cloud Firestore هو نظام موزَّع على نطاق واسع يوفّر إمكانية التدرّج التلقائي لتلبية احتياجات مؤسستك. يقسّم Cloud Firestore بياناتك ويجمعها ديناميكيًا استنادًا إلى الحمل الذي يتلقّاه النظام.
يحدث التقسيم المستند إلى التحميل تلقائيًا بدون الحاجة إلى أي إعداد مسبق. يتميز نظام التقسيم المستند إلى الحمل في Cloud Firestore ببعض الخصائص المهمة والفريدة مقارنةً بقواعد بيانات المستندات الأخرى التي من المهم وضعها في الاعتبار أثناء تصميم بياناتك.
قد تتطلّب الطبيعة الموزّعة لـ "Cloud Firestore" تغيير بعض خيارات التصميم، خاصةً لأعباء العمل التي تم تحسينها لقواعد البيانات التي يكون فيها النسخة المتماثلة الأساسية هي عنق الزجاجة لإنتاجية الكتابة.
أفضل الممارسات
يمكن أن تؤدي أعباء العمل التي تعالج كميات كبيرة من البيانات في عميل أحادي السلسلة إلى حدوث ازدحام. قد يتمكّن العملاء من استخدام سلسلة محادثات واحدة لتحميل البيانات بشكل مجمّع، لأنّ معدّل نقل البيانات لدى العميل والخادم متطابق. يمكن لقاعدة بيانات Cloud Firestore التعامل مع المزيد من عمليات التوازي، ولكن هذا يتطلب منك ضبط العملاء لإرسال الطلبات بالتوازي.
mongoimport
عند استخدام أداة mongoimport، يتم إرسال الطلبات بشكل تسلسلي تلقائيًا. لتحسين وقت التحميل في Cloud Firestore، اضبط عدد العمال باستخدام العلامة --numInsertionWorkers. قد يتطلب الإعداد الصحيح الضبط بناءً على حجم العميل.
mongorestore
عند استخدام أداة mongorestore، يجب إزالة المَعلمة retryWrites=false من سلسلة الاتصال لتحسين المرونة في مواجهة حالات الفشل المؤقتة.
لتحسين وقت التحميل في Cloud Firestore، يمكنك أيضًا زيادة
عدد مُشغِّلي الإدراج لكل مجموعة باستخدام
العلامة --numInsertionWorkersPerCollection وعدد المجموعات
المتوازية باستخدام العلامة --numParallelCollections. قد تتطلّب الإعدادات الصحيحة
ضبطًا استنادًا إلى حجم العميل.
البرمجة غير المتزامنة
عند تطوير برنامجك الخاص باستخدام عمليات متوافقة مع MongoDB، يمكنك تحسين التوازي بالطرق التالية:
- أُطر العمل غير المتزامنة: يتيح لك استخدام أُطر العمل غير المتزامنة معالجة الطلبات والردّ عليها بشكل متوازٍ. ليس من الضروري تطوير أي تجميع أو قائمة انتظار معقدة عند إجراء مكالمات إلى قاعدة البيانات الخاصة بك. يمكن لكل مسار طلب استخدام اتصالات مستقلة وإجراء طلبات قاعدة البيانات بشكل متوازٍ.
- استخدام عروض الحوسبة الموازية: باستخدام خدمات مثل Cloud Run، يمكن لنظامك زيادة عدد عمال الحوسبة المطلوبين لمعالجة البيانات.
الأخطاء المؤقتة
عند العمل مع نظام موزَّع كبير مثل Cloud Firestore، قد تواجه حالات تعذُّر مؤقتة، مثل انقطاع الشبكة أو التنافس على مستند.
عند تحميل كميات كبيرة من المعلومات بشكل مجمّع، من المهم الحفاظ على استراتيجية إعادة المحاولة لعمليات الكتابة التي تعذّر إجراؤها بدون تعذُّر عملية التحميل المجمّع الأكبر حجمًا.