خطوات الترحيل المسبق لترحيل البيانات من MongoDB إلى Azure Cosmos DB ل MongoDB

ينطبق على: MongoDB

هام

يرجى قراءة هذا الدليل بأكمله قبل تنفيذ خطوات ما قبل الترحيل.

دليل MongoDB هذا لمرحلة ما قبل الترحيل هو جزء من سلسلة عن ترحيل MongoDB. خطوات ترحيل MongoDB المهمة هي ما قبل الترحيل والترحيل وما بعد الترحيل، كما هو موضح في هذا الدليل.

رسم تخطيطي لخطوات الترحيل من ما قبل الترحيل إلى بعده.

نظرة عامة على مرحلة ما قبل الترحيل

من الأهمية بمكان إجراء بعض التخطيط المسبق واتخاذ القرار بشأن الترحيل الخاص بك قبل أي نقل فعلي للبيانات. هذه العملية الأولية لاتخاذ القرار هي "ما قبل الترحيل".

هدفك في ما قبل الترحيل هو:

  1. تأكد من إعداد Azure Cosmos DB لتلبية متطلبات التطبيق الخاص بك، و
  2. خطط لكيفية تنفيذ الترحيل.

اتبع هذه الخطوات لإجراء عملية ما بعد الترحيل شاملة

  1. اكتشاف موارد MongoDB الحالية وتقييم مدى جاهزية موارد MongoDB الحالية لترحيل البيانات
  2. تعيين موارد MongoDB الموجودة إلى موارد Azure Cosmos DB الجديدة
  3. تخطيط تجهيزات عملية الترحيل من البداية إلى النهاية قبل بدء ترحيل البيانات على نطاق واسع

ثم نفّذ الترحيل وفقاً لخطة ما قبل الترحيل.

وأخيراً، نفّذ خطوات مرحة ما بعد الترحيل من التخفيض والتحسين الهامة.

جميع الخطوات المذكورة أعلاه حاسمة لضمان نجاح عملية الترحيل.

عند التخطيط للترحيل، نُوصيك بالتخطيط على مستوى كل مورد كلما أمكن ذلك.

تقييم ما قبل الترحيل

الخطوة الأولى قبل الترحيل هي اكتشاف موارد MongoDB الحالية وتقييم جاهزية مواردك للترحيل.

يتضمن الاكتشاف إنشاء قائمة شاملة بالموارد الموجودة (قواعد البيانات أو المجموعات) في ملكية بيانات MongoDB.

يتضمن التقييم معرفة ما إذا كنت تستخدم الميزات والبنية المدعومة. ويتضمن أيضاً التأكد من أنك تلتزم بالحدود والحصص. الهدف من هذه المرحلة هو إنشاء قائمة بحالات عدم التوافق والتحذيرات، إن وجدت. بعد حصولك على نتائج التقييم، يمكنك محاولة معالجة النتائج أثناء بقية تخطيط الترحيل.

هناك 3 طرق لإكمال تقييم ما قبل الترحيل، نوصيك باستخدام Azure Cosmos DB Migration لملحق MongoDB.

ترحيل Azure Cosmos DB لملحق MongoDB

يساعدك ملحق ترحيل Azure Cosmos DB ل MongoDB في Azure Data Studio على تقييم حمل عمل MongoDB للترحيل إلى Azure Cosmos DB ل MongoDB. يمكنك استخدام هذا الملحق لتشغيل تقييم شامل لحمل العمل الخاص بك ومعرفة الإجراءات التي قد تحتاج إلى اتخاذها لترحيل أحمال العمل الخاصة بك بسلاسة على Azure Cosmos DB. أثناء تقييم نقطة نهاية MongoDB، يقوم الملحق بالإبلاغ عن جميع الموارد المكتشفة.

إشعار

نوصيك بتصفح الميزات المدعومة وبناء الجملة وحدود Azure Cosmos DB والحصص النسبية بالتفصيل، بالإضافة إلى إجراء إثبات المبدأ قبل الترحيل الفعلي.

الاكتشاف اليدوي (قديم)

بدلا من ذلك، يمكنك إنشاء جدول بيانات ترحيل ملكية البيانات. الغرض من جدول البيانات هذا هو تحسين إنتاجيتك ومساعدتك على التخطيط للترحيل من طرف إلى طرف واستخدامه كمستند تعقب طوال عملية الترحيل.

  • تحتوي هذه الورقة على قائمة شاملة بالموارد الموجودة (قواعد البيانات أو المجموعات) في ملكية بيانات MongoDB الخاصة بك.
  • يجب تنظيم جدول البيانات كسجل لموارد ملكية البيانات الخاصة بك، في شكل قائمة.
  • كل صف يتوافق مع مورد (قاعدة بيانات أو مجموعة).
  • يتوافق كل عمود مع خاصية المورد؛ تبدأ على الأقل بـ اسم وحجم بيانات (غيغابايت) على هيئة أعمدة.
  • أثناء تقدمك خلال هذا الدليل، يمكنك إنشاء جدول البيانات هذا في مستند تعقب لتخطيط الترحيل الشامل، وإضافة أعمدة حسب الحاجة.

فيما يلي بعض الأدوات التي يمكنك استخدامها لاكتشاف الموارد:

انتقل من خلال جدول البيانات وتحقق من كل مجموعة مقابل الميزات المدعومة وبناء الجملة وحدود Azure Cosmos DB والحصص النسبية بالتفصيل.

الأداة المساعدة لمساعد ترحيل قاعدة البيانات (قديم)

إشعار

مساعد ترحيل قاعدة البيانات هو أداة مساعدة قديمة تهدف إلى مساعدتك في خطوات ما قبل الترحيل. نوصيك باستخدام Azure Cosmos DB Migration لملحق MongoDB لجميع خطوات ما قبل الترحيل.

يمكنك استخدام الأداة المساعدة Database Migration Assistant (DMA) لمساعدتك في خطوات ما قبل الترحيل.

تخطيط ما قبل الترحيل

مع اكتمال خطوات الاكتشاف والتقييم، انتهيت من جانب MongoDB من المعادلة. الآن حان الوقت لتخطيط جانب Azure Cosmos DB من المعادلة. كيف تخطط لإعداد موارد Azure Cosmos DB للإنتاج وتكوينها؟ خطط على مستوى كل مورد – وهذا يعني أنه يجب عليك إضافة الأعمدة التالية إلى جدول بيانات التخطيط:

  • تعيين Azure Cosmos DB
  • مفتاح شارد
  • نموذج البيانات
  • معدل النقل المخصص مقابل معدل النقل المشترك

يتم توفير مزيد من التفاصيل في الأقسام التالية.

تخطيط القدرة الإنتاجية

هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟

الاعتبارات عند استخدام واجهة برمجة تطبيقات Azure Cosmos DB لـ MongoDB

قبل التخطيط لملكية بيانات Azure Cosmos DB، تأكد من فهم مفاهيم Azure Cosmos DB التالية:

  • نموذج السعة: تستند سعة قاعدة البيانات في Azure Cosmos DB إلى نموذج يستند إلى معدل النقل. يستند هذا النموذج إلى وحدات الطلب في الثانية، وهي وحدة تُمثل عدد عمليات قاعدة البيانات التي يمكن تنفيذها على مجموعة على أساس كل ثانية. يمكن تخصيص هذه السعة على مستوى قاعدة بيانات أو مجموعة، ويمكن توفيرها على نموذج تخصيص، أو باستخدام معدل النقل التلقائي المُوفر.
  • وحدات الطلب: كل عملية قاعدة بيانات لها تكلفة وحدات الطلب (RUs) في Azure Cosmos DB. عند تنفيذها، يتم طرح وحدات الطلب من مستوى وحدات الطلب المتوفرة في ثانية معينة. إذا كان الطلب يتطلب وحدات طلب أكثر من وحدات الطلب/ الثانية المخصصة حاليا، فهناك خياران لحل المشكلة - زيادة عدد وحدات الطلب، أو الانتظار حتى تبدأ الثانية التالية، ثم أعد محاولة العملية.
  • مرونة القدرة: القدرة لمجموعة معينة أو قاعدة بيانات يمكن أن تتغير في أي وقت. تسمح هذه المرونة لقاعدة البيانات بالتكيف بمرونة مع متطلبات معدل النقل لحمل العمل الخاص بك.
  • التقسيم التلقائي: يُوفر Azure Cosmos DB نظام تقسيم تلقائي لا يتطلب إلا قطعة (أو مفتاح قسم). تتم مشاركة آلية التقسيم التلقائي عبر جميع واجهات برمجة تطبيقات Azure Cosmos DB وتسمح ببيانات السلسة وتحجيم في جميع الأنحاء من خلال التوزيع الأفقي.

تخطيط ملكية بيانات Azure Cosmos DB

اكتشف موارد Azure Cosmos DB التي تقوم بإنشائها. تتطلب هذه العملية التنقل عبر جدول بيانات ترحيل ملكية البيانات وتعيين كل مورد MongoDB موجود إلى مورد Azure Cosmos DB جديد.

  • توقع أن تصبح كل قاعدة بيانات MongoDB قاعدة بيانات Azure Cosmos DB.
  • توقع أن تصبح كل مجموعة MongoDB مجموعة Azure Cosmos DB.
  • اختر اصطلاح تسمية لموارد Azure Cosmos DB. عادة ما يكون الاحتفاظ بنفس أسماء الموارد خيارا جيدا، ما لم تكن هناك أي تغييرات في بنية قواعد البيانات والمجموعات.
  • حدد ما إذا كنت تستخدم مجموعات مقسمة أو غير مقسمة في Azure Cosmos DB. حد التجميع غير المقيد هو 20 غيغابايت. من ناحية أخرى، يساعد التقسيم على تحقيق مقياس أفقي ضروري لأداء العديد من أحمال العمل.
  • إذا كنت تستخدم مجموعات مقسمة، فلا تفترض أن مفتاح جزء مجموعة MongoDB يصبح مفتاح قسم حاوية Azure Cosmos DB. لا تفترض أن بنية مستند نموذج بيانات MongoDB الحالي يجب أن تكون نفس النموذج الذي تستخدمه على Azure Cosmos DB.
    • مفتاح Shard هو الإعداد الأكثر أهمية لتحسين قابلية Azure Cosmos DB وأدائه، ونمذجة البيانات هي ثاني أهم شيء. كلا الإعدادين غير قابلين للتغيير ولا يمكن تغييرهما بمجرد تعيينهما؛ لذلك من المهم للغاية تحسينها في مرحلة التخطيط. اتبع التوجيهات الواردة في قسم القرارات غير القابلة للتغيير لمزيد من المعلومات.
  • لا يتعرف Azure Cosmos DB على أنواع معينة من مجموعات MongoDB مثل المجموعات المجمعة. بالنسبة لهذه الموارد، فقط قم بإنشاء مجموعات Azure Cosmos DB العادية.
  • يحتوي Azure Cosmos DB على نوعين من مجموعاته - معدل النقل المخصص ومعدل النقل المشترك. معدل النقل المشترك مقابل معدل النقل المخصص هو قرار هام آخر غير قابل للتغيير، وهو أمر حيوي لاتخاذه في مرحلة التخطيط. اتبع التوجيهات الواردة في قسم القرارات غير القابلة للتغيير لمزيد من المعلومات.

قرارات غير قابلة للتغيير

لا يمكن تعديل خيارات تكوين Azure Cosmos DB التالية أو التراجع عنها بمجرد إنشاء مورد Azure Cosmos DB؛ لذلك من المهم الحصول على خيارات التكوين هذه مباشرة أثناء تخطيط ما قبل الترحيل، قبل بدء أي عمليات ترحيل:

تكلفة الملكية

تقدير معدل النقل

  • في Azure Cosmos DB، يُوفَّر معدل النقل مسبقاً وتُقاس بوحدات الطلب (RUs) في الثانية. على عكس الأجهزة الظاهرية (VMs) أو الخوادم المحلية، من السهل زيادة نطاق وحدات الطلب أو تقليلها في أي وقت. يمكنك تغيير عدد وحدات الطلب المتوفرة على الفور. لمزيد من المعلومات، راجع وحدات الطلب في Azure Cosmos DB.

  • يمكنك استخدام حاسبة سعة Azure Cosmos DB لتحديد عدد وحدات الطلب التي يجب استخدامها. يستند هذا الرقم إلى تكوين حساب قاعدة البيانات ومقدار البيانات وحجم المستند والقراءة والكتابة المطلوبة في الثانية.

  • فيما يلي العوامل الرئيسية التي تؤثر على عدد وحدات الطلب المطلوبة:

    • حجم المستند: مع زيادة حجم عنصر/مستند، يزداد أيضا عدد وحدات الطلب المستهلكة لقراءة العنصر/المستند أو كتابته.

    • عدد خصائص المستند:يرتبط عدد وحدات الطلب المُستهلكة لإنشاء مستند أو تحديثه بعدد خصائصه وتعقيدها وطولها. يمكنك تقليل استهلاك وحدة الطلب لعمليات الكتابة عن طريق تحديد عدد الخصائص المفهرسة.

    • أنماط الاستعلام: يؤثر تعقيد الاستعلام على عدد وحدات الطلب التي يستهلكها الاستعلام.

  • أفضل طريقة لفهم تكلفة الاستعلامات هي استخدام بيانات العينة في Azure Cosmos DB، وتشغيل نماذج الاستعلامات من MongoDB Shell باستخدام getLastRequestStastistics الأمر للحصول على رسوم الطلب، والتي تنتج عدد وحدات الطلب المستهلكة:

    db.runCommand({getLastRequestStatistics: 1})
    

    *يقوم هذا الأمر لإخراج مستند JSON مشابه للمثال التالي:

    {
      "_t": "GetRequestStatisticsResponse",
      "ok": 1,
      "CommandName": "find",
      "RequestCharge": 10.1,
      "RequestDurationInMilliSeconds": 7.2
    }
    
  • يمكنك أيضاً استخدام إعدادات التشخيص لفهم تكرار الاستعلامات المنفذة على Azure Cosmos DB وأنماطها. يمكن إرسال النتائج من سجلات التشخيص إلى حساب تخزين أو مثيل مراكز الأحداث أو Azure Log Analytics.

تخطيط التجهيزات قبل الترحيل

وأخيرا، الآن بعد أن أصبح لديك عرض لملكية البيانات الحالية وتصميما لملكية بيانات Azure Cosmos DB الجديدة، فأنت على استعداد لتخطيط كيفية تنفيذ عملية الترحيل من طرف إلى طرف. مرة أخرى، قم بالتخطيط على مستوى كل مورد ، وإضافة أعمدة إلى جدول البيانات لالتقاط الأبعاد اللوجستية المضمنة في هذا القسم.

تنفيذ التجهيزات

  • تعيين مسؤولية لترحيل كل مورد موجود من MongoDB إلى Azure Cosmos DB. إن كيفية تطبيق موارد فريقك من أجل رعاية الترحيل حتى الاكتمال أمر متروك لك. بالنسبة لعمليات الترحيل الصغيرة، يمكنك جعل فريق واحد يبدأ الترحيل بأكمله ويراقب تقدمه. بالنسبة لعمليات الترحيل الأكبر، يمكنك تعيين المسؤولية لأعضاء الفريق على أساس كل مورد لترحيل هذا المورد ومراقبته.

  • بمجرد تعيين مسؤولية ترحيل مواردك، الآن يجب عليك اختيار أداة (أدوات) الترحيل المناسبة للترحيل. بالنسبة لعمليات الترحيل الصغيرة، قد تتمكن من استخدام أداة ترحيل واحدة مثل أداة MongoDB الأصلية أو خدمة ترحيل قاعدة بيانات Azure (DMS) لترحيل كافة مواردك في آن واحد. بالنسبة إلى عمليات الترحيل الكبيرة أو عمليات الترحيل ذات المتطلبات الخاصة، قد تحتاج إلى اختيار أدوات الترحيل بدقة لكل مورد.

    • قبل التخطيط لأدوات الترحيل التي يجب استخدامها، نُوصي بالتعرف على الخيارات المتوفرة. توفر خدمة ترحيل قاعدة بيانات Azure لواجهة برمجة تطبيقات Azure Cosmos DB لـ MongoDB آلية تُبسط ترحيل البيانات من خلال توفير نظام أساسي للاستضافة مُدار بالكامل وخيارات مراقبة الترحيل ومعالجة تلقائية للتقييد. فيما يلي قائمة كاملة بالخيارات:

      نوع الترحيل الحل الاعتبارات
      متصل خدمة ترحيل قاعدة بيانات Azure • يستخدم مكتبة المنفذ المجمع ل Azure Cosmos DB
      • مناسب لمجموعات البيانات الكبيرة ويهتم بنسخ التغييرات المباشرة نسخا متماثلا
      • يعمل فقط مع مصادر MongoDB الأخرى
      غير متصل خدمة ترحيل قاعدة بيانات Azure • يستخدم مكتبة المنفذ المجمع ل Azure Cosmos DB
      • مناسب لمجموعات البيانات الكبيرة ويهتم بنسخ التغييرات المباشرة نسخا متماثلا
      • يعمل فقط مع مصادر MongoDB الأخرى
      غير متصل Azure Data Factory • يستخدم مكتبة المنفذ المجمع ل Azure Cosmos DB
      • مناسب لمجموعات البيانات الكبيرة
      • سهل الإعداد ويدعم مصادر متعددة
      • عدم وجود نقاط تفتيش يعني أن أي مشكلة أثناء الترحيل تتطلب إعادة تشغيل عملية الترحيل بأكملها
      • عدم وجود قائمة انتظار غير مستخدمة يعني أن بعض الملفات الخاطئة يمكن أن توقف عملية الترحيل بأكملها
      • يحتاج إلى تعليمة برمجية مخصصة لزيادة معدل النقل للقراءة لبعض مصادر البيانات
      غير متصل أدوات Mongo الحالية (mongodump، mongorestore، Studio3T) • سهل الإعداد والتكامل
      • يحتاج إلى معالجة مخصصة لمنظمات حمل العمل
      غير متصل بالإنترنت/متصل بالإنترنت Azure Databricks and Spark • التحكم الكامل في معدل الترحيل وتحويل البيانات
      • يتطلب كتابة تعليمة برمجية مخصصة
    • إذا كان المورد الخاص بك يمكنه تحمل الترحيل دون اتصال، فاستخدم هذا الرسم التخطيطي لاختيار أداة الترحيل المناسبة:

      رسم تخطيطي لاستخدام أدوات الترحيل دون اتصال استنادا إلى حجم الأداة.

    • إذا كان المورد يتطلب ترحيلا عبر الإنترنت، فاستخدم هذا الرسم التخطيطي لاختيار أداة الترحيل المناسبة:

      رسم تخطيطي لاستخدام أدوات الترحيل عبر الإنترنت استنادا إلى تفضيل حلول تسليم المفتاح أو الحلول المخصصة.

    • شاهد نظرة عامة وعرضا توضيحيا لفيديو حلول الترحيل.

  • بمجرد اختيار أدوات الترحيل لكل مورد، فإن الخطوة التالية هي تحديد أولويات الموارد التي ستقوم بترحيلها. يمكن أن يساعد تحديد الأولويات الجيد في الحفاظ على الترحيل في الموعد المحدد. ومن الممارسات الجيدة إعطاء الأولوية لترحيل تلك الموارد، التي تحتاج إلى معظم الوقت لنقلها؛ يؤدي ترحيل هذه الموارد أولا إلى تحقيق أكبر تقدم نحو الاكتمال. علاوة على ذلك، نظرا لأن عمليات الترحيل التي تستغرق وقتا طويلا تتضمن عادة المزيد من البيانات، فهي أكثر كثافة في استخدام الموارد لأداة الترحيل وبالتالي من المرجح أن تعرض أي مشكلات في مسار الترحيل في وقت مبكر. تقلل هذه الممارسة من فرصة انزلاق الجدول الزمني الخاص بك بسبب أي صعوبات في مسار الترحيل الخاص بك.

  • تخطيط كيفية مراقبة تقدم الترحيل بمجرد بدائه. إذا كنت تقوم بتنسيق جهود ترحيل البيانات الخاصة بك بين فريق، فخطط إيقاع منتظم لمزامنة الفريق أيضا، بحيث يكون لديك طريقة عرض شاملة لكيفية إجراء عمليات الترحيل ذات الأولوية العالية.

سيناريوهات الترحيل المدعومة

يعتمد الخيار الأفضل من أداة ترحيل MongoDB على سيناريو ترحيلك.

أنواع الترحيلات

فيما يلي قائمة بالأدوات المتوافقة لكل سيناريو ترحيل:

المصدر الوجهة توصية العملية
• نظام مجموعة MongoDB المحلي
• MongoDB على نظام مجموعة IaaS VM
• مجموعة MongoDB Atlas - غير متصل
Azure Cosmos DB Mongo API • <بيانات 10 غيغابايت: أدوات MongoDB الأصلية
• <بيانات 1 تيرابايت: Azure DMS
• > بيانات 1 تيرابايت: Spark
• نظام مجموعة MongoDB المحلي
• MongoDB على نظام مجموعة IaaS VM
• مجموعة MongoDB Atlas - عبر الإنترنت
Azure Cosmos DB Mongo API • <بيانات 1 تيرابايت: Azure DMS
• >بيانات 1 تيرابايت: Spark + Mongo Changestream
• الحاجة إلى تغيير المخطط أثناء الترحيل
تحتاج إلى مرونة أكثر من الأدوات المذكورة أعلاه
Azure Cosmos DB Mongo API • ADF أكثر مرونة من DMS، وهو يدعم تعديلات المخطط أثناء الترحيل ويدعم مجموعات المصدر/الوجهة الأكثر
• DMS أفضل من حيث الحجم (على سبيل المثال، ترحيل أسرع)
• ملف JSON Azure Cosmos DB Mongo API • أدوات MongoDB الأصلية على وجه التحديد mongoimport
• ملف CSV Azure Cosmos DB Mongo API • أدوات MongoDB الأصلية على وجه التحديد mongoimport
• ملف BSON Azure Cosmos DB Mongo API • الأدوات الأصلية MongoDB على وجه التحديد mongorestore

دعم الأدوات لإصدارات MongoDB

نظرا لأنك تقوم بالترحيل من إصدار MongoDB معين، يتم تضمين الأدوات المدعومة لكل إصدار هنا:

إصدار مصدر MongoDB Azure Cosmos DB لإصدار وجهة MongoDB الأدوات المدعومة الأدوات غير المدعومة
<2.x، >4.0 3.2، 3.6، 4.0 أدوات MongoDB الأصلية، Spark DMS،‏ ADF
3.2، 3.6، 4.0 3.2، 3.6، 4.0 أدوات MongoDB الأصلية، DMS، ADF، Spark بلا

ما بعد الترحيل

في مرحلة ما قبل الترحيل، اقض بعض الوقت في التخطيط للخطوات التي تتخذها نحو ترحيل التطبيقات وتحسين ما بعد الترحيل.

  • في مرحلة ما بعد الترحيل، يمكنك تنفيذ قطع تطبيقك لاستخدام Azure Cosmos DB بدلا من ملكية بيانات MongoDB الحالية.
  • بذل قصارى جهدك لتخطيط الفهرسة والتوزيع العالمي والاتساق وخصائص Azure Cosmos DB الأخرى القابلة للتغيير على مستوى كل مورد. ومع ذلك، يمكن تعديل إعدادات تكوين Azure Cosmos DB هذه لاحقا، لذا توقع إجراء تعديلات على هذه الإعدادات لاحقا. يمكنك تطبيق هذه التكوينات القابلة للتغيير بعد الترحيل.
  • للحصول على دليل ما بعد الترحيل، راجع خطوات التحسين بعد الترحيل عند استخدام Azure Cosmos DB's API for MongoDB.

الخطوات التالية