البرنامج التعليمي: ترحيل قاعدة بيانات نظام MongoDB إلى واجهة برمجة تطبيقات قاعدة بيانات Azure Cosmos لنظام MongoDB دون اتصال باستخدام الأدوات الأصلية لنظام MongoDB
ينطبق على: MongoDB
هام
يُرجى قراءة هذا الدليل بأكمله قبل تنفيذ خطوات الترحيل.
يمثل دليل ترحيل MongoDB هذا جزءًا من سلسلة ترحيل MongoDB. تشمل خطوات ترحيل نظام MongoDB الأساسية ما قبل الترحيلوالترحيل وما بعد الترحيلحسبما هو موضح أدناه.
نظرة عامة على ترحيل البيانات باستخدام الأدوات الأصلية في قاعدة بيانات نظام MongoDB
يمكنك استخدام الأدوات الأصلية لقاعدة بيانات نظام MongoDB لترحيل قاعدة البيانات بدون اتصال (لمرة واحدة) من المثيل المحلي أو السحابي لقاعدة بيانات MongoDB إلى واجهة برمجة تطبيقات قاعدة بيانات Azure Cosmos لقاعدة بيانات نظام MongoDB.
في هذا البرنامج التعليمي، تتعلم كيفية:
- اختر الأدوات الأصلية لقاعدة بيانات MongoDB المناسبة حسب حالة الاستخدام الخاصة بك
- تشغيل الترحيل.
- مراقبة الترحيل.
- تأكد من نجاح الترحيل.
في هذا البرنامج التعليمي، يمكنك ترحيل مجموعة بيانات في قاعدة بيانات MongoDB المستضافة في أي جهاز ظاهري ضمن تطبيق Azure إلى واجهة برمجة تطبيقات قاعدة بيانات Azure Cosmos DB لنظام MongoDB باستخدام الأدوات الأصلية لنظام MongoDB. تعتبر الأدوات الأصلية لنظام MongoDB عبارة عن مجموعة من الملفات الثنائية التي تسهل معالجة البيانات على مثيل قاعدة بيانات نظام MongoDB الحالية. نظرا لأن Azure Cosmos DB يعرض واجهة برمجة تطبيقات ل MongoDB، فإن الأدوات الأصلية MongoDB قادرة على إدراج البيانات في Azure Cosmos DB. ينصب تركيز هذا المستند على ترحيل البيانات من مثيل قاعدة بيانات MongoDB باستخدام mongoexport/mongoimport أو mongodump/mongorestore. ونظرًا إلى اتصال الأدوات الأصلية بقاعدة بيانات MongoDB باستخدام سلاسل الاتصال، يمكنك تشغيل الأدوات في أي مكان، ولكن نوصي بتشغيل هذه الأدوات داخل نفس الشبكة كمثيل قاعدة بيانات MongoDB لتجنب المشاكل المتعلقة بجدار الحماية.
يمكن للأدوات الأصلية في قاعدة بيانات MongoDB نقل البيانات فقط بالسرعة التي يسمح بها الجهاز المضيف، وقد تصبح أدوات الأصلية أبسط حل لمجموعات البيانات الصغيرة حيث لا يمثل إجمالي وقت الترحيل مصدر قلق. يُعدموصل MongoDB Spark، خدمة ترحيل بيانات Azure (DMS)، أو مصنع بيانات Azure أفضل بدائل عند الحاجة لإنشاء بنية أساسية للرحيل المباشر القابل للتوسع.
إذا لم يتوافر لديك مصدر قاعدة بيانات MongoDB المعد بالفعل، فراجع المقالة الخاصةبتثبيت وتهيئة قاعدة بيانات MongoDB على جهاز افتراضي في Windows ضمن تطبيق Azure.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، تحتاج إلى:
- استكمال خطوات ما قبل الترحيل كتقدير معدل النقل واختيار مفتاح التقسيم وسياسة الفهرسة.
- إنشاء Azure Cosmos DB لحساب MongoDB.
- تسجيل الدخول إلى مثيل MongoDB الخاص بك
- تحميل وتثبيت الأدوات الأصلية لنظام MongoDB من هذا الرابط.
- تأكد من أن تطابق إصدار أدواتك الأصلية في نظام MongoDB مع مثيل قاعدة بيانات MongoDB الحالية
- إذا كان مثيل MongoDB الخاص بك يحتوي على إصدار مختلف عن Azure Cosmos DB ل MongoDB، فقم بتثبيت كل من إصدارات الأدوات الأصلية MongoDB واستخدم إصدار الأداة المناسب ل MongoDB وAzure Cosmos DB ل MongoDB، على التوالي.
- أضف مستخدماً لديه
readWrite
أذونات، ما لم يكن موجوداً بالفعل. وبعد ذلك في هذا البرنامج التعليمي، سجل اسم المستخدم أو كلمة المرور في أدوات mongoexportmongodump.
- تحميل وتثبيت الأدوات الأصلية لنظام MongoDB من هذا الرابط.
قم بتهيئة إعادة المحاولات الجانبية لخادم قاعدة بيانات Azure Cosmos DB
يستفيد العملاء القائمون بترحيل البيانات من قاعدة بيانات MongoDB إلى قاعدة بيانات Azure Cosmos DB من قدرات إدارة الموارد، والتي تضمن القدرة على الاستفادة الكاملة من وحدات الطلب RU/s المقدمة لمعدل النقل. يمكن أن ترفض قاعدة بيانات Azure Cosmos DB أي طلب معين في أثناء الترحيل إذا تجاوز هذا الطلب وحدات طلب الحاوية المقدمة، حينها تُشترط إعادة محاولة تقديم الطلب. يؤثر وقت الترحيل ذهابا وإيابا المتضمن في قفزة الشبكة بين أداة الترحيل وAzure Cosmos DB على وقت الاستجابة الإجمالي لذلك الطلب؛ وعلاوة على ذلك قد ترفض الأدوات الأصلية ل MongoDB التعامل مع إعادة المحاولة. تسمح ميزة Server Side Retry من Azure Cosmos DB للخدمة باعتراض الرموز الخاطئة التي تعطل الطلب ثم تعيد المحاولة خلال وقت أقل بكثير ذهاباً وإياباً، مما يحسن أوقات استجابة الطلب بشكل كبير. من وجهة نظر MongoDB الأدوات الأصلية، يتم تقليل الحاجة إلى التعامل مع عمليات إعادة المحاولة، ما سيؤثر بشكل إيجابي على تجربتك في أثناء الترحيل.
يمكنك العثور على إمكانية إعادة المحاولة الجانبية للخادم في خيارFeatures بمدخل قاعدة بيانات Azure Cosmos DB
وإذا كانت هذه الميزة معطلة، نوصيك بتفعيلها حسبما هو موضح أدناه
اختر الأداة الأصلية المناسبة في قاعدة بيانات MongoDB
- يُعدmongoexport/mongoimport أفضل زوج من أدوات الترحيل لترحيل مجموعة فرعية من قاعدة بياناتك في MongoDB.
- يُرحلmongoexport البيانات الموجودة لديك إلى ملف JSON أو CSV قابل للقراءة. يستخدمmongoexport وسيطة تحدد المجموعة الفرعية من بياناتك الموجودة بالفعل بغرض الترحيل.
- يفتحmongoimport ملف JSON أو CSV ويدرج المحتوى في مثيل قاعدة البيانات المستهدفة (قاعدة بيانات Azure Cosmos في هذه الحالة)
- يرجى العلم بأن ملفات JSON وCSV ليست تنسيقات مضغوطة، قد تتحمل مسؤولية دفع رسوم الشبكة الإضافية عندما يُرسلmongoimport البيانات إلى قاعدة بيانات Azure Cosmos DB.
- تُعدmongodump / mongorestore أفضل زوج من أدوات ترحيل قاعدة بياناتك في MongoDB بشكل كامل. يجعل تنسيق BSON المضغوط استخدام موارد شبكة الاتصال أكثر كفاءة عند إدراج البيانات في قاعدة بيانات Azure Cosmos DB.
- يُرسلmongodump البيانات الموجودة في صورة ملف BSON.
- يستعيدmongorestore ملف BSON المفرغ إلى قاعدة بيانات Azure Cosmos DB.
- جانبا - إذا كان لديك ببساطة ملف JSON صغير تريد استيراده إلى Azure Cosmos DB ل MongoDB، فإن أداة mongoimport هي حل سريع لاستيعاب البيانات.
جمع Azure Cosmos DB لبيانات اعتماد MongoDB
يوفر Azure Cosmos DB ل MongoDB بيانات اعتماد وصول متوافقة يمكن أن تستخدمها أدوات MongoDB الأصلية. ستحتاج إلى الحصول على بيانات اعتماد الوصول هذه في متناول اليد لترحيل البيانات إلى Azure Cosmos DB ل MongoDB. للحصول على عن بيانات الاعتماد هذه:
في علامة تبويب جديدة، افتح مدخل Azure
انتقل إلى Azure Cosmos DB لحساب MongoDB الخاص بك
في أثناء التنقل جهة اليسار، حدد خيارسلسلة الاتصال، وسيظهر لك شاشة مشابهة لما يلي:
- استضافة- تمثل نقطة النهاية في قاعدة بيانات Azure Cosmos DB اسم المضيف في قاعدة بيانات MongoDB
- المنفذ - عند اتصال الأدوات الأصلية لقاعدة بيانات MongoDB بقاعدة بيانات Azure Cosmos، يجب عليك تحديد هذا المنفذ بشكل صريح
- اسم المستخدم- تُمثل بادئة اسم نطاق نقطة النهاية في قاعدة بيانات Azure Cosmos DB اسم المستخدم في قاعدة بيانات MongoDB
- كلمة المرور - يُمثل المفتاح الرئيسي في قاعدة بيانات Azure Cosmos DB كلمة مرور قاعدة بيانات MongoDB
- بالإضافة إلى ذلك، لاحظ خانةSSLوالتي تُمثل
true
- وتُمكن الأداة الأصلية في قاعدة بيانات MongoDB SSLعند كتابة البيانات في قاعدة بيانات Azure Cosmos DB
شغّل الترحيل
- اختر أي قاعدة بيانات أو مجموعات ترغب في ترحيلها. في هذا المثال، نعمل على ترحيل مجموعة الاستعلام في قاعدة البيانات edx من قاعدة بيانات MongoDB إلى قاعدة بيانات Azure Cosmos DB.
سيوجهك بقية هذا القسم خلال استخدام زوج الأدوات التي حددتها في القسم السابق.
mongoexport/mongoimport
لترحيل البيانات من مثيل قاعدة بيانات MongoDB المصدر، افتح الوحدة الطرفية على جهاز مثيل قاعدة بيانات MongoDB. إن كنت تستخدم جهاز لينكس، فاكتب
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
في windows، سيكون الملف التنفيذي
mongoexport.exe
. يجب تعبئة المضيفوالبوابةواسم المستخدموالرقم السري استناداً إلى خصائص نموذج قاعدة بيانات MongoDB المتوفر لديك.يمكنك أيضًا اختيار ترحيل مجموعة فرعية فقط من مجموعة بيانات MongoDB. تتمثل إحدى الطرق للقيام بذلك في إضافة وسيط عامل تصفية إضافي:
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
سيتم تصدير المستندات التي تطابق عامل التصفية
{"field1":"value1"}
فقط.بمجرد تنفيذ الطلب، سيظهر لك تحرير
edx.json
الملف:يمكنك استخدام نفس الوحدة الطرفية لاستعادة
edx.json
في قاعدة بيانات Azure Cosmos DB. إذا كنت تعملmongoimport
على جهاز يدعم Linux، فاكتبmongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
على Windows، سيكون الملف التنفيذي
mongoimport.exe
. يجب تعبئة المضيفوالبوابةواسم المستخدموالرقم السري استناداً إلى خصائص نموذج قاعدة بيانات Azure Cosmos DB الذي جمعته في وقت سابق.مراقبة نتيجة الوحدة الطرفية من mongoimport. يجب أن تظهر لك طباعة أسطر النص إلى الوحدة الطرفية التي تحتوي على تحديثات حول حالة الترحيل:
وأخيرًا، تحقق من قاعدة بيانات Azure Cosmos DB للتحقق من صحةنجاح الترحيل. افتح مدخل قاعدة بيانات Azure Cosmos DB وانتقل إلى متصفح البيانات. يجب أن يظهر لك (1) إنشاء قاعدة بيانات edx مع مجموعة importedQuery و(2) إذا قمت بترحيل مجموعة فرعية فقط من البيانات، يجب أن تحتوي importedQueryعلى مستندات مطابقة للمجموعة الفرعية المطلوبة من البيانات. في المثال أدناه، يتطابق مستند واحد فقط مع عامل
{"field1":"value1"}
التصفية:
mongodump/mongorestore
لإنشاء ملف تفريغ بيانات بصيغة BSON لمثيل قاعدة بيانات MongoDB الخاص بك، افتح محطة طرفية على جهاز مثيل قاعدة بيانات MongoDB. إن كنت تستخدم جهاز لينكس، فاكتب
mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
يجب تعبئة المضيفوالبوابةواسم المستخدموالرقم السري استناداً إلى خصائص نموذج قاعدة بيانات MongoDB المتوفر لديك. ستظهر لك إنتاجية
edx-dump
السجل وإعادة إنشاء بنية سجلedx-dump
للتسلسل الهرمي للموارد (قاعدة البيانات وبنية المجموعة) للمثيل المصدري لقاعدة بيانات MongoDB. يتم تمثيل كل مجموعة بواسطة ملف BSON:يمكنك استخدام نفس الوحدة الطرفية لاستعادة
edx-dump
محتويات قاعدة بيانات Azure Cosmos DB. إذا كنت تعملmongorestore
على جهاز يدعم Linux، فاكتبmongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
على Windows، سيكون الملف التنفيذي
mongorestore.exe
. يجب تعبئة المضيفوالبوابةواسم المستخدموالرقم السري استناداً إلى خصائص نموذج قاعدة بيانات Azure Cosmos DB الذي جمعته في وقت سابق.راقب نتيجة الوحدة الطرفية من mongoimport. يجب أن يظهر لك طباعة أسطر النص إلى الوحدة الطرفية التي تحتوي على تحديثات حول حالة الترحيل:
وأخيرًا، تحقق من قاعدة بيانات Azure Cosmos DB للتحقق من صحةنجاح الترحيل. افتح مدخل قاعدة بيانات Azure Cosmos DB وانتقل إلى متصفح البيانات. يجب أن يظهر لك (1) أنشاء قاعدة بيانات edx مع مجموعة importedQuery و(2) importedQuery التي يجب أن تحتوي على مجموعة البيانات بأكملها من مجموعة المصدر:
تطوير ما بعد الترحيل
بعد ترحيلك للبيانات المخزنة في قاعدة بيانات MongoDB إلى واجهة Azure Cosmos DB API لدى MongoDB، يمكنك الآن الاتصال بقاعدة بيانات Azure Cosmos DB وإدارة البيانات. يمكنك أيضًا تنفيذ خطوات التطوير الأخرى بعد الترحيل كتطوير نهج الفهرسة أو تحديث مستوى التناسق الافتراضي أو تهيئة التوزيع العمومي لحساب قاعدة بيانات Azure Cosmos DB. للمزيد من المعلومات، راجع مقالة التطوير ما بعد الترحيل.
الموارد الإضافية
- معلومات خدمة Azure Cosmos DB
- مستند أدوات قاعدة بيانات MongoDB
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟
- في حال كان كل ما تعرفه هو عدد vcores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
الخطوات التالية
- راجع دليل الترحيل للاطلاع على السيناريوهات الأخرى المتوفرة في دليل ترحيل قاعدة بيانات Microsoft.