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

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

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

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

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

يتم دعم موصل MongoDB Atlas هذا للأنشطة التالية:

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

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

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

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

إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.

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

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

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

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

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

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

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

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

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

    حدد موصل MongoDB Atlas.

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

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

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

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

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى MongoDbAtlas ‏‏نعم‬
سلسلة الاتصال حدد سلسلة اتصال MongoDB Atlas على سبيل المثال mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>.

يمكنك أيضاً وضع سلسلة اتصال في Azure Key Vault. راجع تخزين بيانات الاعتماد في Azure Key Vault للحصول على المزيد من التفاصيل.
‏‏نعم‬
قاعدة بيانات اسم قاعدة البيانات التي تريد الوصول إليها. ‏‏نعم‬
driverVersion حدد إصدار برنامج التشغيل إلى الإصدار 2 الذي يدعم MongoDB الإصدار 3.6 والإصدارات الأحدث. لمزيد من المعلومات، انتقل إلى هذه المقالة. لا
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

مثال:

{
    "name": "MongoDbAtlasLinkedService",
    "properties": {
        "type": "MongoDbAtlas",
        "typeProperties": {
            "connectionString": "mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>",
            "database": "myDatabase",
            "driverVersion": "<driver version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

مثال:

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

انسخ خصائص النشاط

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

MongoDB Atlas كمصدر

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

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

تلميح

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

مثال:

"activities":[
    {
        "name": "CopyFromMongoDbAtlas",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB Atlas input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbAtlasSource",
                "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 Atlas كمتلقي

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

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

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

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

تلميح

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

مثال

"activities":[
    {
        "name": "CopyToMongoDBAtlas",
        "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": "MongoDbAtlasSink",
                "writeBehavior": "upsert"
            }
        }
    }
]

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

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

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

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

تعيين المخطط

لنسخ البيانات من MongoDB Atlas إلى متلقٍ جدولي أو عكسها، راجع تعيين المخطط.

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