خطوات ما قبل الترحيل لترحيل البيانات من MongoDB إلى واجهة برمجة تطبيقات Azure Cosmos DB API for MongoDB

ينطبق على: واجهة برمجة تطبيقات Azure Cosmos DB API for MongoDB

هام

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

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

Diagram of migration steps.

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

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

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

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

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

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

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

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

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

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

يساعدك Database Migration Assistant(DMA) في مرحلتي Discovery وAssessment للتخطيط.

اكتشاف مرحلة ما قبل الترحيل

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

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

اكتشاف برمجي باستخدام Database Migration Assistant

يمكنك استخدام Database Migration Assistant (DMA) لمساعدتك في مرحلة الاكتشاف وإنشاء جدول بيانات الترحيل برمجياً.

من السهل إعداد DMA وتشغيله من خلال عميل Azure Data Studio. يمكن تشغيله من أي جهاز متصل ببيئة MongoDB المصدر.

يمكنك استخدام أحد ملفات إخراج DMA التالية كجدول بيانات لترحيل ملكية البيانات:

  • workload_database_details.csv - يقدم عرضاً لمستوى قاعدة البيانات لحمل العمل المصدر. الأعمدة الموجودة في الملف هي: Collection count وDocument Count وAverage Document Size وData Size وIndex Count و Index Size.
  • workload_collection_details.csv - يقدم عرضاً لمستوى المجموعة لحمل العمل المصدر. الأعمدة الموجودة في الملف هي: Database Name, Collection Name وDoc Count وAverage Document Size وData size وIndex Count وIndex Size و Index Definitions.

فيما يلي نموذج لجدول بيانات ترحيل على مستوى قاعدة البيانات منشأ بواسطة DMA: Data estate spreadsheet example

الاكتشاف اليدوي

بالتناوب، يمكنك الرجوع إلى عينة جدول البيانات أعلاه وإنشاء مستند مماثل بنفسك.

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

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

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

ثانياً، كمقدمة للتخطيط لترحيلك، قيِّم مدى استعداد الموارد في ملكية البيانات الخاصة بك للترحيل.

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

التقييم الآلي باستخدام مساعد ترحيل قاعدة البيانات

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

راجع قسم الاكتشاف الآلي باستخدام Database Migration Assistant لمعرفة كيفية إعداد وتشغيل DMA.

يشغل دفتر DMA بعض قواعد التقييم مقابل قائمة الموارد التي يجمعها من مصدر MongoDB. تسرد نتيجة التقييم التغييرات المطلوبة والموصى بها اللازمة لمتابعة الترحيل.

تُطبع النتائج على هيئة مخرجات في دفتر ملاحظات DMA وتُحفظ في ملف CSV - assessment_result.csv.

ملاحظة

Database Migration Assistant هو أداة مساعدة أولية تهدف إلى مساعدتك في خطوات ما قبل الترحيل. لا يقوم بإجراء تقييم شامل. بالإضافة إلى تشغيل DMA، نوصيك أيضاً بالاطلاع على الميزات والبنية المدعومة، وحدود وحصص Cosmos DB بالتفصيل، بالإضافة إلى إجراء إثبات للمفهوم قبل الترحيل الفعلي.

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

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

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

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

تخطيط السعة

هل حاولت إجراء تخطيط لسعة الترحيل على Azure Cosmos DB؟

الاعتبارات عند استخدام واجهة برمجة تطبيقات Azure Cosmos DB API for 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. باستثناء أي تغيير في بنية قواعد البيانات والمجموعات، فإن الاحتفاظ بأسماء الموارد نفسها عادة ما يكون خيارًا جيدًا.
  • حدد ما إذا كنت ستستخدم مجموعات مجزأة أو غير مجزأة في Cosmos DB. حد التجميع غير المقيد هو 20 غيغابايت. من ناحية أخرى، يساعد التقسيم على تحقيق مقياس أفقي ضروري لأداء العديد من أحمال العمل.
  • في حالة استخدام مجموعات مُقسمة، لا تفترض أن مفتاح جزء مجموعة MongoDB الخاص بك يصبح مفتاح جزء مجموعة Azure Cosmos DB. لا تفترض أن هيكل/نموذج بيانات MongoDB الحالي هو ما ستستخدمه في Azure Cosmos DB.
    • مفتاح التقسيم هو الإعداد الأكثر أهمية لتحسين قابلية توسع Azure Cosmos DB وأدائه، فيما تكون نمذجة البيانات هي الإعداد الأهم الثاني. كلٌّ من هذه الإعدادات غير قابلة للتغيير ولا يمكن تغييرها بمجرد تعيينها، لذلك إن تحسينها في مرحلة التخطيط أمر مهم للغاية. اتبع التوجيهات الواردة في قسم القرارات غير القابلة للتغيير لمزيد من المعلومات.
  • لا يتعرف Azure Cosmos DB على أنواع معينة من مجموعات MongoDB مثل المجموعات ذات الحد الأقصى. بالنسبة لهذه الموارد، أنشئ مجموعات Azure Cosmos DB العادية فقط.
  • يحتوي Azure Cosmos DB على نوعين من مجموعاته - معدل النقل المخصص ومعدل النقل المشترك. معدل النقل المخصص مقابل معدل النقل المشترك هو قرار آخر حاسم وغير قابل للتغيير، وإن اتخاذه في مرحلة التخطيط أمر مهم. اتبع التوجيهات الواردة في قسم القرارات غير القابلة للتغيير لمزيد من المعلومات.

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

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

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

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

  • في Azure Cosmos DB، يُوفَّر معدل النقل مسبقاً وتُقاس بوحدات الطلب (RUs) في الثانية. على عكس الأجهزة الظاهرية أو الخوادم المحلية، من السهل زيادة وحدات الطلب أو تقليلها في أي وقت. يمكنك تغيير عدد وحدات الطلب المتوفرة على الفور. لمزيد من المعلومات، راجع وحدات الطلب في 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 وأنماطها. يمكن إرسال نتائج سجلات التشخيص إلى حساب تخزين أو مثيل EventHub أو تحليلات السجل من Azure.

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

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

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

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

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

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

    Offline migration tools.

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

    Online migration tools.

    شاهد هذا الفيديو للحصول على نظرة عامة وعرض توضيحي عن حلول الترحيل المذكورة أعلاه.

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

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

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

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

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

الأدوات المتوافقة لكل سيناريو ترحيل مُوضحة أدناه:

Supported migration scenarios.

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

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

MongoDB versions supported by migration tools.

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

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

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

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