نسخ البيانات من أو إلى MongoDB باستخدام Azure Data Factory أو Synapse Analytics

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

Data Factory في Microsoft Fabric هو الجيل القادم من Azure Data Factory، مع بنية أبسط، وذكاء اصطناعي مدمج، وميزات جديدة. إذا كنت جديدا في تكامل البيانات، ابدأ مع Fabric Data Factory. يمكن لأعباء عمل ADF الحالية الترقية إلى Fabric للوصول إلى قدرات جديدة في علوم البيانات، والتحليلات اللحظية، والتقارير.

توضح هذه المقالة كيفية استخدام نشاط النسخ في خطوط أنابيب Synapse Analytics في Azure Data Factory لنسخ البيانات من وإلى قاعدة بيانات MongoDB. تعتمد هذه المقالة على مقالة نظرة عامة على نشاط النسخ التي تقدم نظرة عامة على نشاط النسخ.

هام

يوفر موصل MongoDB الجديد دعمًا محسنًا من MongoDB الأصلي. إذا كنت تستخدم موصل MongoDB القديم في الحل الخاص بك، المدعوم كما هو للتوافق مع الإصدارات السابقة فقط، راجع مقالة موصل MongoDB (القديمة).

القدرات المدعومة

موصل Azure Files هذا مدعوم للإمكانيات التالية:

القدرات المدعومة IR
Copy activity (المصدر/الحوض) (1) (2)

(1) Azure وقت تشغيل التكامل (2) وقت تشغيل التكامل المستضاف ذاتيا

للحصول على قائمة مخازن البيانات المعتمدة كمصادر ومواضع تلقي، راجع جدول مخازن البيانات المعتمدة.

على وجه التحديد، يدعم موصل MongoDB هذا إصدارات تصل إلى 4.2. إذا كان عملك يتطلب إصدارات أحدث من 4.2، ففكر في استخدام MongoDB Atlas مع موصل MongoDB Atlas، والذي يوفر دعما وميزات أكثر شمولا.

المتطلبات الأساسية

إذا كان مخزن بياناتك يقع داخل شبكة محلية، أو شبكة افتراضية Azure، أو سحابة أمازون الافتراضية الخاصة، فعليك تكوين وقت تشغيل تكامل ذاتي المستضافة للاتصال به.

إذا كان مخزن بياناتك خدمة بيانات سحابية مدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقصورا على عناوين IP المعتمدة في قواعد جدار الحماية، يمكنك إضافة Azure Integration Runtime IPs إلى قائمة التصاريح.

يمكنك أيضا استخدام ميزة تشغيل وقت تشغيل تكامل الشبكة الافتراضية المدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون الحاجة لتثبيت وتكوين وقت تشغيل تكامل ذاتي المستضافة.

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.

الشروع في العمل

لتنفيذ نشاط النسخ باستخدام خط أنابيب ، يمكنك استخدام إحدى الأدوات أو مجموعات SDK التالية:

إنشاء خدمة مرتبطة لـ MongoDB باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة ب MongoDB في واجهة بوابة Azure.

  1. تصفح إلى تبويب الإدارة في Azure Data Factory أو مساحة Synapse الخاصة بك واختر Linked Services، ثم اضغط على New:

  2. ابحث عن MongoDB وحدد موصل MongoDB.

    حدد موصل MongoDB.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    تكوين خدمة مرتبطة بـ MongoDB.

تفاصيل تكوين الموصل

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتعريف كيانات Data Factory الخاصة بموصل MongoDB.

خصائص الخدمة المرتبطة

الخصائص التالية مدعومة لخدمة MongoDB المرتبطة:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: MongoDbV2 ‏‏نعم‬
سلسلة الاتصال حدد connection string MongoDB مثل mongodb://[username:password@]host[:port][/[database][?options]]. راجع دليل MongoDB على connection string لمزيد من التفاصيل.

يمكنك أيضا وضع connection string في Azure Key Vault. راجع بيانات اعتماد المتجر Store في Azure Key Vault لمزيد من التفاصيل.
‏‏نعم‬
قاعدة بيانات اسم قاعدة البيانات التي تريد الوصول إليها. ‏‏نعم‬
connectVia Integration Runtime لاستخدامها للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

مثال:

{
    "name": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDbV2",
        "typeProperties": {
            "connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
            "database": "myDatabase"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتاحة لتعريف مجموعات البيانات، راجع مجموعات البيانات والخدمات المرتبطة. يتم دعم الخصائص التالية لمجموعة بيانات MongoDB:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى: MongoDbV2Collection ‏‏نعم‬
اسم المجموعة اسم المجموعة في قاعدة بيانات MongoDB. ‏‏نعم‬

مثال:

{
    "name": "MongoDbDataset",
    "properties": {
        "type": "MongoDbV2Collection",
        "typeProperties": {
            "collectionName": "<Collection name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MongoDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

خصائص Copy activity

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

MongoDB كمصدر

تُدعم الخصائص التالية في قسم مصدر نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى:MongoDbV2Source ‏‏نعم‬
filter يحدد عامل تصفية التحديد باستخدام عوامل تشغيل الاستعلام. لإرجاع جميع المستندات في مجموعة، احذف هذه المعلمة أو مرر مستند فارغ ({}). لا
cursorMethods.project يحدد الحقول التي سيتم إرجاعها في المستندات للإسقاط. لإرجاع جميع الحقول في المستندات المطابقة، احذف هذه المعلمة. لا
cursorMethods.sort يحدد الترتيب الذي يقوم الاستعلام بإرجاع مستندات مطابقة به. ارجع إلى cursor.sort(). لا
cursorMethods.limit يحدد الحد الأقصى لعدد المستندات التي يرجعها الخادم. ارجع إلى cursor.limit(). لا
cursorMethods.skip يحدد عدد المستندات التي يجب تخطيها والتي يبدأ MongoDB من عندها في إرجاع النتائج. الرجوع إلى cursor.skip(). لا
batchSize يحدد عدد المستندات التي سيتم إرجاعها في كل دُفعة من الاستجابة من مثيل MongoDB. في معظم الحالات، لن يؤثر تعديل حجم الدُفعة على المستخدم أو التطبيق. يحدد Azure Cosmos DB أن حجم كل دفعة لا يمكن أن يتجاوز 40 ميجابايت، وهو مجموع حجم حجم الدفعة للمستندات، لذا قم بتقليل هذه القيمة إذا كان حجم المستند كبيرا. لا
(الافتراضي هو 100)

تلميح

تدعم الخدمة استهلاك مستند BSON في الوضع Strict. تأكد من أن استعلام التصفية في الوضع Strict بدلًا من الوضع Shell. يمكن العثور على مزيد من الوصف في دليل MongoDB.

مثال:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbV2Source",
                "filter": "{datetimeData: {$gte: ISODate(\"2018-12-11T00:00:00.000Z\"),$lt: ISODate(\"2018-12-12T00:00:00.000Z\")}, _id: ObjectId(\"5acd7c3d0000000000000000\") }",
                "cursorMethods": {
                    "project": "{ _id : 1, name : 1, age: 1, datetimeData: 1 }",
                    "sort": "{ age : 1 }",
                    "skip": 3,
                    "limit": 3
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

MongoDB كمتلقي

تُدعم الخصائص التالية في قسم متلقي نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع متلقٍ نشاط النسخ إلى MongoDbV2Sink. ‏‏نعم‬
writeBehavior توضح هذه المقالة كيفية كتابة البيانات إلى MongoDB. القيم المسموح بها: insert وupsert.

سلوك upsert هو استبدال المستند إذا كان مستند بنفس _id موجود مسبقًا؛ وإلا، قم بإدراج المستند.

ملاحظة: تنشئ الخدمة تلقائيًا_id لمستند إذا لم يتم تحديد _id إما في المستند الأصلي أو بتعيين عمود. وهذا يعني أنه يجب عليك التأكد من أن المستند يحتوي على معرّف لكي يعمل upsert كما هو متوقع.
لا
(الافتراضي هو insert)
writeBatchSize تتحكم خاصية writeBatchSize في حجم المستندات للكتابة في كل دُفعة. يمكنك محاولة زيادة قيمة writeBatchSize لتحسين الأداء وتقليل القيمة إذا كان حجم المستند كبيرًا. لا
(الافتراضي هو 10,000)
writeBatchTimeout وقت الانتظار لانتهاء عملية إدراج الدُفعة قبل انتهاء الوقت. القيمة المسموح بها هي نهاية الوقت. لا
(الافتراضي هو 00:30:00 - 30 دقيقة)

تلميح

لاستيراد مستندات JSON كما هي، راجع قسم استيراد أو تصدير مستندات JSON؛ وللنسخ من بيانات على شكل جدولي، راجع تعيين المخطط.

مثال

"activities":[
    {
        "name": "CopyToMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Document DB output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "MongoDbV2Sink",
                "writeBehavior": "upsert"
            }
        }
    }
]

استيراد وتصدير مستندات JSON

يمكنك استخدام موصل MongoDB هذا للقيام بما يلي بسهولة:

  • نسخ المستندات بين مجموعتين MongoDB كما هي.
  • استيراد مستندات JSON من مصادر مختلفة إلى MongoDB، بما في ذلك من Azure Cosmos DB، وتخزين Azure Blob، ومخزن Azure Data Lake، وغيرها من المخازن المدعومة القائمة على الملفات.
  • تصدير مستندات JSON من مجموعة MongoDB إلى مختلف المتاجر المستندة إلى الملفات.

للوصول إلى هذه النسخة متعددة المخططات، قم بتخطي المقطع "structure" (المسمى أيضاً schema) في مجموعة البيانات وتعيين المخطط في copy activity.

تعيين نوع البيانات ل MongoDB

عند نسخ البيانات من MongoDB، يتم استخدام التعيينات التالية من أنواع بيانات MongoDB إلى أنواع البيانات المؤقتة التي تستخدمها الخدمة داخليا. راجع تعيينات المخططات ونوع البيانات لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي.

نوع بيانات MongoDB نوع بيانات الخدمة المؤقتة
التاريخ int64
ObjectId السلسلة‬
عشري128 السلسلة‬
الطابع الزمني أهم 32 بت -> Int64
أقل 32 بت أهمية -> Int64
السلسلة‬ السلسلة‬
مزدوج السلسلة‬
Int32 int64
int64 int64
قيمة منطقية قيمة منطقية
Null Null
JavaScript السلسلة‬
التعبير العادي السلسلة‬
الحد الأدنى للمفتاح int64
ماكس مفتاح int64
ثنائي السلسلة‬

دورة حياة موصل MongoDB وترقيته

يوضح الجدول التالي مرحلة الإصدار وسجلات التغيير لإصدارات مختلفة من موصل MongoDB:

‏‏الإصدار مرحلة الإصدار سجل التغيير
MongoDB (الإرث) تمت الإزالة غير قابل للتطبيق.
MongoDB يتوفر إصدار GA • دعم استعلامات MongoDB المكافئة فقط.

• يقرأ المضاعف على أنه نوع بيانات سلسلة.

ترقية خدمة MongoDB المرتبطة

إنشاء خدمة MongoDB مرتبطة جديدة وتكوينها بالإشارة إلى خصائص الخدمة المرتبطة.

للحصول على قائمة بمخازن البيانات المدعومة من نشاط النسخ كمصادر ومواضع تلقي، راجع مخازن البيانات المدعومة.