إنشاء أنشطة Data Factory ومساراته

مكتمل

تحدد الأنشطة داخل Azure Data Factory الإجراءات التي سيتم تنفيذها على البيانات، وهناك ثلاث فئات تتضمن:

  • أنشطة حركة البيانات
  • أنشطة تحويل البيانات
  • أنشطة المراقبة

أنشطة حركة البيانات

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

أنشطة تحويل البيانات

يمكن تنفيذ أنشطة تحويل البيانات بشكل أصلي ضمن أداة التأليف الخاصة بـ Azure Data Factory باستخدام Mapping Data Flow. بدلاً من ذلك، يمكنك استدعاء مورد الحساب لتغيير أو تحسين البيانات من خلال التحويل أو إجراء تحليل البيانات. ويشمل ذلك تقنيات حساب مثل Azure Databricks، وAzure Batch، وSQL Database، وAzure Synapse Analytics، وخدمات التعلم الآلي، وAzure Virtual machines، وHDInsight. يمكنك استخدام أي من حزم SQL Server Integration Services الموجودة والمخزنة في كتالوج لتنفيذ في Azure

نظرًا إلى أن هذه القائمة تتطور دائمًا، يمكنك الحصول على أحدث المعلومات هنا.

أنشطة المراقبة

عند تأليف حلول ADF رسوميًا، يمكنك استخدام تدفق عناصر التحكم داخل التصميم لتنظيم أنشطة المسارات التي تتضمن أنشطة التسلسل المتسلسلة، وإنشاء الإصدارات الفرعية، وتعريف المعلمات على مستوى المسار، وتمرير الوسائط خلال استدعاء المسار عند الطلب أو من مشغل. القدرات الحالية تشمل:

نشاط التحكم ‏‏الوصف
تنفيذ نشاط البنية الأساسية لبرنامج ربط العمليات التجارية يسمح نشاط Execute Pipeline لمسار Data Factory باستدعاء مسار آخر.
نشاط ForEach يحدد نشاط ForEach تدفق عنصر تحكم مكرر في المسار الخاص بك. يتم استخدام هذا النشاط للتكرار عبر مجموعة، وهو ينفّذ الأنشطة المحددة في تكرار حلقي. تنفيذ التكرار الحلقي لهذا النشاط مماثل لبنية التكرارات الحلقية Foreach في لغات الكمبيوتر.
WebActivity يمكن استخدام «Web Activity» لاستدعاء نقطة نهاية مخصصة REST من مسار «Data Factory». يمكنك تمرير مجموعات البيانات والخدمات المرتبطة التي سيتم استهلاكها والوصول إليها عن طريق النشاط.
نشاط البحث يمكن استخدام نشاط Lookup لقراءة أو البحث عن سجل / اسم جدول / قيمة من أي مصدر خارجي. ويمكن الإشارة إلى هذا الناتج بواسطة الأنشطة اللاحقة أيضاً.
نشاط الحصول على بيانات تعريف يمكن استخدام نشاط Get Metadata لاسترداد بيانات التعريف لأي بيانات في Azure Data Factory.
نشاط Until تنفيذ التكرار الحلقي Do-Until المماثل لبنية التكرارات الحلقية Do-Until في لغات الكمبيوتر. إنه ينفذ مجموعة من الأنشطة في تكرار حلقي حتى يتم تقييم الشرط المقترن بالنشاط إلى صواب. يمكنك تحديد قيمة مهلة للنشاط حتى في Data Factory.
نشاط If Condition يمكن استخدام If Condition لإنشاء إصدارات فرعية بناءً على شرط يتم تقييمه إلى صواب أو خطأ. يوفر نشاط If Condition الوظيفة نفسها التي توفرها العبارة الشرطية في لغات الكمبيوتر. وهو يقيم مجموعة من الأنشطة عندما يتم تقييم الشرط إلى صواب، ومجموعة أخرى من الأنشطة عندما يتم تقييم الشرط إلى خطأ.
نشاط الانتظار عند استخدام نشاط Wait في مسار، ينتظر المسار لفترة معينة من الوقت قبل المتابعة في تنفيذ الأنشطة اللاحقة.

يمكنك الحصول على أحدث المعلومات هنا.

الأنشطة والمسارات

تعريف الأنشطة

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

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

يصف الجدول التالي الخصائص في JSON أعلاه:

الخاصية الوصف مطلوب
الاسم اسم النشاط. ‏‏نعم‬
الوصف نصّ يصف النشاط أو الهدف من استخدامه. لا
النوع يحدد نوع النشاط. ‏‏نعم‬
linkedServiceName اسم الخدمة المرتبطة المستخدمة عن طريق النشاط. Yes for HDInsight، ونشاط Machine Learning Batch Scoring Activity، ونشاط Stored Procedure Activity
typeProperties الخصائص في قسم typeProperties تعتمد على كل نوع نشاط. لا
policy النُهج التي تؤثر في سلوك وقت التشغيل للنشاط. تتضمن هذه الخاصية مهلة وسلوك إعادة المحاولة. لا
dependsOn يتم استخدام هذه الخاصية لتعريف تبعيات النشاط، وكيف تعتمد الأنشطة اللاحقة على الأنشطة السابقة. لا

تعريف أنشطة التحكم

يتم تعريف Control Activity في Data Factory بتنسيق JSON كما يلي:

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

يصف الجدول التالي الخصائص في JSON أعلاه:

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

تعريف المسارات

هنا هو كيف يتم تعريف مسار في شكل JSON:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

يصف الجدول التالي الخصائص في JSON أعلاه:

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

مثال

يعرّف JSON التالي خط الأنابيب المسمى "MyFirstPipeline" الذي يحتوي على نوع نشاط واحد من HDInsightHive والذي سوف يستدعي استعلامًا من اسم البرنامج النصي "partitionweblogs.hql" المخزن في الخدمة المرتبطة المسماة "StorageLinkedService" ، مع إدخال يسمى "AzureBlobInput" و ناتج يسمى "AzureBlobOutput". يتم تنفيذ ذلك على أساس مورد الحساب المعرّف في الخدمة المرتبطة المسماة "HDInsightOnDemandLinkedService"

المسار مجدول بحيث يتم تنفيذه على أساس شهري، وسيحاول التنفيذ لعدد 3 مرات في حالة فشله.

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}