أفضل الممارسات لتحميل البيانات المجمّعة

تحميل البيانات بشكل مجمّع إلى 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، قد تواجه أخطاء عابرة، مثل انقطاع الشبكة أو حدوث تعارض في مستند.

عند تحميل كميات كبيرة من المعلومات بشكل مجمّع، من المهم الحفاظ على استراتيجية إعادة المحاولة لعمليات الكتابة التي تعذّر إجراؤها بدون إيقاف عملية التحميل المجمّع الأكبر.