إنشاء مشغل يقوم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية على جدول زمني

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

تلميح

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

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

عند إنشاء مشغل جدول زمني، يُمكنك تحديد جدول زمني (تاريخ البدء، التكرار، تاريخ الانتهاء وما إلى ذلك) للمشغل، وربطه بالبنية الأساسية لبرنامج ربط العمليات التجارية. تتمتع التدفقات والمشغلات بعلاقة متعدد إلى متعدد. يمكن أن تقوم العديد من المشغلات ببدء تشغيل تدفق واحد. يمكن لمشغل واحد أن يطلق البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة.

توفر المقاطع التالية خطوات لإنشاء مشغل جدول زمني بطرق مختلفة.

تجربة Azure Data Factory وSynapse portal

يمكنك إنشاء مشغل جدول لجدولة البنية الأساسية لبرنامج ربط العمليات التجارية للتشغيل دورياً (كل ساعة ويوميا وما إلى ذلك).

إشعار

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

  1. التبديل إلى علامة التبويب "Edit" في مصنع البيانات أو علامة التبويب دمج في Azure Synapse.


  1. حدد Trigger في القائمة، ثم حدد New/Edit.

    New trigger menu

  2. في صفحة Add Triggers، حدد Choose trigger...، ثم حدد +New.

    Add triggers - new trigger

  3. في صفحة "New Trigger" قم بالخطوات التالية:

    1. تأكد من تحديد "Schedule" لـ "Type".

    2. حدد وقت بدء المشغل لـ "Start Date". يتم تعيين إلى التاريخ الحالي في التوقيت العالمي المتفق عليه بشكل افتراضي.

    3. حدد المنطقة الزمنية التي سيتم إنشاء المشغل فيها. سيتم تطبيق إعداد المنطقة الزمنية على "Start Date"و"End Date"و"Schedule Execution Times" في خيارات التكرار المتقدمة. تغيير إعداد المنطقة الزمنية لن يغير تاريخ البدء تلقائياً. تأكد من صحة "تاريخ البدء" في المنطقة الزمنية المحددة. يرجى ملاحظة أنه سيتم اعتبار وقت التنفيذ المجدول للمشغل بعد تاريخ البدء (تأكد من أن تاريخ البدء أقل بدقيقة واحدة من وقت التنفيذ وإلا فسيؤدي ذلك إلى بدء مسار التدفق في التكرار التالي).

      إشعار

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

      هام

      يحدث تعديل التوقيت الصيفي فقط للمشغل مع تعيين التكرار على Days أو أعلى. إذا تم تعيين المشغل على تردد Hours أو Minutes، فسيستمر في إطلاقه على فترات منتظمة.

    4. حدد "Recurrence" للمشغل. حدد إحدى القيم من القائمة المنسدلة (كل دقيقة، كل ساعة ويومياً وأسبوعياً وشهرياً). أدخل المضاعف في مربع النص. على سبيل المثال، إذا كنت تريد تشغيل المشغل مرة واحدة كل 15 دقيقة، حدد "Every Minute"، وأدخل 15 في مربع النص.

    5. في "Recurrence"، إذا اخترت "يوم(أيام) أو أسبوع (أيام) أو شهر (أشهر)" من القائمة المنسدلة، يمكنك العثور على "خيارات التكرار المتقدمة". Advanced recurrence options of Day(s), Week(s) or Month(s)

    6. لتحديد وقت تاريخ الانتهاء، حدد "Specify an End Date"، وحدد "End On"ثم حدد "OK". هناك تكلفة مقترنة بكل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية. إذا كنت تختبر، قد تحتاج إلى التأكد من تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بضع مرات فقط. ومع ذلك، تأكد من وجود وقت كاف لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بين وقت النشر ووقت الانتهاء. المشغل حيز التنفيذ فقط بعد نشر الحل، وليس عند حفظ المشغل في واجهة المستخدم.

      Trigger settings

      Trigger settings for End Date

  4. في نافذة "New Trigger" حدد "Yes" في الخيار "Activated" ثم حدد "OK". يمكنك استخدام خانة الاختيار هذه لإلغاء تنشيط المشغل لاحقاً.

    Trigger settings - Next button

  5. في إطار "New Trigger" راجع رسالة التحذير، ثم حدد "OK".

    Trigger settings - Finish button

  6. حدد "Publish all" لنشر البنية الأساسية. حتى تقوم بنشر التغييرات، لا يبدأ المشغل بتشغيل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

    Publish button

  7. التبديل إلى "Pipeline runs" على اليسار، ثم حدد "Refresh" لتحديث القائمة. سترى تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الذي تم تشغيله بواسطة المشغل المجدول. لاحظ القيم في العمود "Triggered By". إذا كنت تستخدم الخيار "Trigger Now" سترى تشغيل المشغل اليدوي في القائمة.


  1. التبديل إلى عرض عمليات التشغيل المشغلة \ الجدول.


Azure PowerShell

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

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

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

نموذج التعليمات البرمجية

  1. أنشئ ملف JSON باسم MyTrigger.json في المجلد C:\ADFv2QuickStartPSH\ folder بالمحتوى التالي:

    هام

    قبل حفظ ملف JSON تعيين قيمة عنصر "startTime" إلى التوقيت العالمي المتفق عليه الحالي. عيّن قيمة عنصر endTime على ساعة واحدة بعد التوقيت العالمي المتفق عليه (UTC) الحالي.

    {
        "properties": {
            "name": "MyTrigger",
            "type": "ScheduleTrigger",
            "typeProperties": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 15,
                    "startTime": "2017-12-08T00:00:00Z",
                    "endTime": "2017-12-08T01:00:00Z",
                    "timeZone": "UTC"
                }
            },
            "pipelines": [{
                    "pipelineReference": {
                        "type": "PipelineReference",
                        "referenceName": "Adfv2QuickStartPipeline"
                    },
                    "parameters": {
                        "inputPath": "adftutorial/input",
                        "outputPath": "adftutorial/output"
                    }
                }
            ]
        }
    }
    

    في قصاصة برمجية خاصة بـ JSON:

    • يتم تعيين عنصر "type" المشغل إلى "ScheduleTrigger".

    • يتم تعيين عنصر "frequency" إلى "دقيقة" ويتم تعيين عنصر "interval" إلى 15. على هذا النحو، المشغل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية كل 15 دقيقة بين وقت البدء والانتهاء.

    • يحدد عنصر "TimeZone" المنطقة الزمنية التي يتم إنشاء المشغل فيها. يؤثر هذا الإعداد على كل من "startTime" و"endTime".

    • يقع عنصر "endTime" بعد ساعة واحدة من قيمة عنصر "startTime". على هذا النحو، يقوم المشغل بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بعد 15 دقيقة و30 دقيقة و45 دقيقة من وقت البدء. لا تنسى تحديث وقت البدء إلى التوقيت العالمي المتفق عليه الحالي ووقت الانتهاء إلى ساعة واحدة بعد وقت البدء.

      هام

      بالنسبة إلى التوقيت العالمي المتفق عليه، يجب أن يتبع وقت البدء ووقت النهاية التنسيق "yyyy-MM-ddTHH:mm:ssZ"، بينما بالنسبة للمناطق الزمنية الأخرى، يتبع وقت البدء ووقت النهاية "yyyy-MM-ddTHH:mm:ss".

      وفقا لمعيار المنظمة العالمية للمواصفات 8601، فإن لاحقة Z إلى الطابع الزمني تحدد التاريخ إلى التوقيت العالمي المتفق عليه، وتجعل حقل "TimeZone" عديم الفائدة. في حين أن لاحقة Z المفقودة للمنطقة الزمنية للتوقيت العالمي المتفق عليه ستؤدي إلى ظهور خطأ عند تنشيط المشغل.

    • المشغل مقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية Adfv2QuickStartPipeline. لربط البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة مع مشغل، إضافة المزيد من أقسام مرجع البنية الأساسية لبرنامج ربط العمليات التجارية.

    • تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين من قيم "parameters": inputPath وoutputPath. وتقوم بتمرير قيم هذه المعلمات من المشغل.

  2. إنشاء مشغل باستخدام cmdlet Set-AzDataFactoryV2Trigger:

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. تأكد من أن حالة المشغل متوقفة باستخدام الأمر Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. ابدأ المشغل باستخدام الأمر cmdlet Start-AzDataFactoryV2Trigger :

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. تأكد من أن حالة المشغل بدأت باستخدام الأمر Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. يمكن تشغيل المشغل في Azure PowerShell باستخدام الأمر Get-AzDataFactoryV2TriggerRun. للحصول على معلومات حول تشغيل المشغل تنفيذ الأمر التالي بشكل دوري. قم بتحديث قيمتي TriggerRunStartedAfter وTriggerRunStartedBefore لمطابقة القيم الموجودة في تعريف المشغل:

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    إشعار

    يتم تحديد وقت تشغيل مشغلات الجدولة في الطابع الزمني للتوقيت العالمي المتفق عليه. يتوقع كل من "TriggerRunStartedAfter" و"TriggerRunStartedBefore" طابع التوقيت العالمي المتفق عليه

    لمراقبة تشغيل المشغل وتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في Azure portal، راجع مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

Azure CLI

يوضح هذا القسم كيفية استخدام Azure CLI لإنشاء مشغل جدولة وبدء تشغيله ومراقبة تشغيله. لمشاهدة تشغيل النموذج، انتقل أولاً إلى التشغيل السريع: إنشاء Azure Data Factory باستخدام Azure CLI. ثم اتبع الخطوات التالية لإنشاء وبدء تشغيل جدول زمني يعمل كل 15 دقيقة. المشغل مقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية تُسمى Adfv2QuickStartPipeline التي تقوم بإنشائها كجزء من التشغيل السريع.

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

نموذج التعليمات البرمجية

  1. في دليل العمل الخاص بك، قم بإنشاء ملف JSON باسم MyTrigger.json بخصائص المشغل. وفقاً لهذا المثال، استخدم المحتوى التالي:

    هام

    قبل حفظ ملف JSON تعيين قيمة عنصر "startTime" إلى التوقيت العالمي المتفق عليه الحالي. عيّن قيمة عنصر endTime على ساعة واحدة بعد التوقيت العالمي المتفق عليه (UTC) الحالي.

    {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
    

    في قصاصة برمجية خاصة بـ JSON:

    • يتم تعيين عنصر "type" المشغل إلى "ScheduleTrigger".

    • يتم تعيين عنصر "frequency" إلى "دقيقة" ويتم تعيين عنصر "interval" إلى 15. على هذا النحو، المشغل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية كل 15 دقيقة بين وقت البدء والانتهاء.

    • يحدد عنصر "TimeZone" المنطقة الزمنية التي يتم إنشاء المشغل فيها. يؤثر هذا الإعداد على كل من "startTime" و"endTime".

    • يقع عنصر "endTime" بعد ساعة واحدة من قيمة عنصر "startTime". على هذا النحو، يقوم المشغل بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بعد 15 دقيقة و30 دقيقة و45 دقيقة من وقت البدء. لا تنسى تحديث وقت البدء إلى التوقيت العالمي المتفق عليه الحالي ووقت الانتهاء إلى ساعة واحدة بعد وقت البدء.

      هام

      بالنسبة إلى التوقيت العالمي المتفق عليه، يجب أن يتبع وقت البدء ووقت النهاية التنسيق "yyyy-MM-ddTHH:mm:ssZ"، بينما بالنسبة للمناطق الزمنية الأخرى، يتبع وقت البدء ووقت النهاية "yyyy-MM-ddTHH:mm:ss".

      وفقا لمعيار المنظمة العالمية للمواصفات 8601، فإن لاحقة Z إلى الطابع الزمني تحدد التاريخ إلى التوقيت العالمي المتفق عليه، وتجعل حقل "TimeZone" عديم الفائدة. في حين أن لاحقة Z المفقودة للمنطقة الزمنية للتوقيت العالمي المتفق عليه ستؤدي إلى ظهور خطأ عند تنشيط المشغل.

    • المشغل مقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية Adfv2QuickStartPipeline. لربط البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة مع مشغل، إضافة المزيد من أقسام مرجع البنية الأساسية لبرنامج ربط العمليات التجارية.

    • تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين من قيم "parameters": inputPath وoutputPath. وتقوم بتمرير قيم هذه المعلمات من المشغل.

  2. قم بإنشاء مشغل باستخدام الأمر az datafactory trigger create:

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. تأكد من أن حالة المشغل في وضع "Stopped" باستخدام أمر عرض مشغل البيانات az:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. ابدأ المشغل باستخدام الأمر az datafactory trigger start:

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. تأكد من أن حالة المشغل بدأت باستخدام الأمر az datafactory trigger show:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. احصل على المشغل يتم تشغيله في Azure CLI باستخدام الأمر az datafactory trig-run query-by-factory. للحصول على معلومات حول عمليات تشغيل المشغل، قم بتنفيذ الأمر التالي بشكل دوري. قم بتحديث قيم last-updated-after وlast-updated-before لمطابقة القيم الموجودة في تعريف المشغل:

    az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
    

    إشعار

    يتم تحديد وقت تشغيل مشغلات الجدولة في الطابع الزمني للتوقيت العالمي المتفق عليه. يُتوقع "last-updated-after" و"last-updated-before" الطابع الزمني للتوقيت العالمي المتفق عليه

    لمراقبة تشغيل المشغل وتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في Azure portal، راجع مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

.NET SDK

يوضح هذا المقطع كيفية استخدام SDK.NET لإنشاء مشغل وبدء تشغيله ومراقبته. لمشاهدة نموذج العمل، انتقل أولا من خلال التشغيل السريع: إنشاء data factory باستخدام SDK.NET. ثم قم بإضافة التعليمات البرمجية التالية إلى الأسلوب الرئيسي الذي يقوم بإنشاء وبدء تشغيل جدول تشغيل كل 15 دقيقة. المشغل مقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية تُسمى Adfv2QuickStartPipeline التي تقوم بإنشائها كجزء من التشغيل السريع.

لإنشاء وبدء تشغيل جدول تشغيل يعمل كل 15 دقيقة إضافة التعليمات البرمجية التالية إلى الأسلوب الرئيسي:

            // Create the trigger
            Console.WriteLine("Creating the trigger");

            // Set the start time to the current UTC time
            DateTime startTime = DateTime.UtcNow;

            // Specify values for the inputPath and outputPath parameters
            Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
            pipelineParameters.Add("inputPath", "adftutorial/input");
            pipelineParameters.Add("outputPath", "adftutorial/output");

            // Create a schedule trigger
            string triggerName = "MyTrigger";
            ScheduleTrigger myTrigger = new ScheduleTrigger()
            {
                Pipelines = new List<TriggerPipelineReference>()
                {
                    // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                    new TriggerPipelineReference()
                    {
                        PipelineReference = new PipelineReference(pipelineName),
                        Parameters = pipelineParameters,
                    }
                },
                Recurrence = new ScheduleTriggerRecurrence()
                {
                    // Set the start time to the current UTC time and the end time to one hour after the start time
                    StartTime = startTime,
                    TimeZone = "UTC",
                    EndTime = startTime.AddHours(1),
                    Frequency = RecurrenceFrequency.Minute,
                    Interval = 15,
                }
            };

            // Now, create the trigger by invoking the CreateOrUpdate method
            TriggerResource triggerResource = new TriggerResource()
            {
                Properties = myTrigger
            };
            client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);

            // Start the trigger
            Console.WriteLine("Starting the trigger");
            client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);

لإنشاء مشغلات في منطقة زمنية مختلفة، بخلاف التوقيت العالمي المتفق عليه، يلزم اتباع الإعدادات التالية:

<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;

لمراقبة تشغيل مشغل إضافة التعليمات البرمجية التالية قبل العبارة الأخيرة Console.WriteLine في النموذج:

            // Check that the trigger runs every 15 minutes
            Console.WriteLine("Trigger runs. You see the output every 15 minutes");

            for (int i = 0; i < 3; i++)
            {
                System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
                List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
                Console.WriteLine("{0} trigger runs found", triggerRuns.Count);

                foreach (TriggerRun run in triggerRuns)
                {
                    foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
                    {
                        PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
                        Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
                        List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
                    }
                }
            }

لمراقبة تشغيل المشغل وتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في Azure portal، راجع مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

Python SDK

يوضح هذا القسم كيفية استخدام PYTHON SDK لإنشاء المشغل وبدء تشغيله ومراقبته. لمشاهدة عينة العمل، انتقل أولا من خلال التشغيل السريع: إنشاء data factory باستخدام Python SDK. ثم إضافة كتلة التعليمات البرمجية التالية بعد كتلة التعليمات البرمجية "مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية" في البرنامج النصي Python. ينشئ هذا الرمز مشغل جدولة يعمل كل 15 دقيقة بين وقت البدء والانتهاء المحدد. تحديث متغير "start_time" إلى التوقيت العالمي المتفق عليه الحالي، والمتغير "end_time" إلى ساعة واحدة بعد التوقيت العالمي المتفق عليه الحالي.

    # Create a trigger
    tr_name = 'mytrigger'
    scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
    pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
    pipelines_to_run = []
    pipeline_reference = PipelineReference('copyPipeline')
    pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
    tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
    adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)

    # Start the trigger
    adf_client.triggers.start(rg_name, df_name, tr_name)

لمراقبة تشغيل المشغل وتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في Azure portal، راجع مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

قالب Azure Resource Manager

يمكنك استخدام قالب Azure Resource Manager لإنشاء المشغل. للحصول على إرشادات خطوة بخطوة، راجع إنشاء Azure data factory باستخدام قالب Resource Manager.

تمرير وقت بدء تشغيل إلى البنية الأساسية لبرنامج ربط العمليات التجارية

يُدعم الإصدار 1 من Azure Data Factory قراءة البيانات المقسمة أو كتابتها باستخدام متغيرات النظام: "SliceStart" و"SliceEnd" و"WindowStart" و"WindowEnd". في الإصدار الحالي من البنية الأساسية لبرنامج ربط العمليات التجارية Azure Data Factory وSynapse، يُمكنك تحقيق هذا السلوك باستخدام معلمة البنية الأساسية لبرنامج ربط العمليات التجارية. يتم تعيين وقت البدء والوقت المجدول للمشغل كقيمة لمعلمة البنية الأساسية لبرنامج ربط العمليات التجارية. في المثال التالي، يتم تمرير الوقت المجدول للمشغل كقيمة إلى البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بـ scheduledRunTime:

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

مخطط JSON

يوضح لك تعريف JSON التالي كيفية إنشاء مشغل جدولة مع الجدولة والتكرار:

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Month>>,
        "interval": <<int>>,             // Optional, specifies how often to fire (default to 1)
        "startTime": <<datetime>>,
        "endTime": <<datetime - optional>>,
        "timeZone": "UTC"
        "schedule": {                    // Optional (advanced scheduling specifics)
          "hours": [<<0-23>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-59>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
               {
                    "day": <<Monday-Sunday>>,
                    "occurrence": <<1-5>>
               }
           ]
        }
      }
    },
   "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>" : "<parameter 2 Value>"
                }
           }
      ]
  }
}

هام

تُعد خاصية المعلمات خاصية إلزامية لعنصر التدفقات. إذا لم تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية أي معلمات، يجب تضمين تعريف JSON فارغ لخصائص "parameters".

نظرة عامة على المخطط

يوفر الجدول التالي نظرة عامة عالية المستوى لعناصر المخطط الرئيسية المرتبطة بتكرار جدولة مشغل:

خاصية JSON ‏‏الوصف
startTime قيمة Date-Time. بالنسبة للجداول البسيطة، يتم تطبيق قيمة الخاصية "startTime" على التكرار الأول. بالنسبة للجداول المعقدة، يبدأ المشغل في وقت لا يتجاوز قيمة "startTime" المحددة.
بالنسبة للمنطقة الزمنية للتوقيت العالمي المتفق عليه، يكون التنسيق 'yyyy-MM-ddTHH:mm:ssZ'، بالنسبة للمنطقة الزمنية الأخرى، التنسيق هو.'yyyy-MM-ddTHH:mm:ss'
endTime تاريخ ووقت الانتهاء للمشغل. لا يتم تنفيذ المشغل بعد تاريخ ووقت الانتهاء المُحددين. لا يمكن أن تكون قيمة الخاصية في الماضي. هذه الخاصية اختيارية.
بالنسبة للمنطقة الزمنية للتوقيت العالمي المتفق عليه، يكون التنسيق 'yyyy-MM-ddTHH:mm:ssZ'، بالنسبة للمنطقة الزمنية الأخرى، التنسيق هو.'yyyy-MM-ddTHH:mm:ss'
"المنطقة الزمنية" المنطقة الزمنية التي يتم إنشاء المشغل فيها. يؤثر هذا الإعداد على startTime وendTime وschedule. انظر قائمة المنطقة الزمنية المعتمدة
التكرار عنصر التكرار الذي يُحدد قواعد التكرار للمشغل. يُدعم عنصر التكرار "التردد" و"الفاصل الزمني" و"endTime"و "count"و"schedule" "elements". عند تعريف عنصر التكرار، يكون عنصر "frequency" مطلوباً. تُعد العناصر الأخرى لعناصر التكرار اختيارية.
"التردد" وحدة التردد التي يتكرر فيها المشغل. تتضمن القيم المعتمدة "دقيقة" و"ساعة" و"يوم" و"أسبوع" و"شهر".
الفاصل الزمني عدد صحيح موجب يشير إلى الفاصل الزمني لقيمة التردد، والتي تحدد عدد مرات تشغيل المشغل. على سبيل المثال، إذا كان "الفاصل الزمني" هو 3 و"التردد" هو "الأسبوع"، يتكرر المشغل كل 3 أسابيع.
جدول جدول التكرار للمشغل. يؤدي المشغل الذي له قيمة التردد محددة إلى تغيير تكراره استناداً إلى جدول التكرار. تحتوي خاصية "الجدول" على تعديلات لتكرار التي تستند إلى الدقائق والساعات والأيام والأسبوع وأيام الشهر ورقم الأسبوع.

هام

بالنسبة إلى التوقيت العالمي المتفق عليه، يجب أن يتبع وقت البدء ووقت النهاية التنسيق "yyyy-MM-ddTHH:mm:ssZ"، بينما بالنسبة للمناطق الزمنية الأخرى، يتبع وقت البدء ووقت النهاية "yyyy-MM-ddTHH:mm:ss".

وفقا لمعيار المنظمة العالمية للمواصفات 8601، فإن لاحقة Z إلى الطابع الزمني تحدد التاريخ إلى التوقيت العالمي المتفق عليه، وتجعل حقل "TimeZone" عديم الفائدة. في حين أن لاحقة Z المفقودة للمنطقة الزمنية للتوقيت العالمي المتفق عليه ستؤدي إلى ظهور خطأ عند تنشيط المشغل.

المخطط الافتراضي والحدود والأمثلة

خاصية JSON النوع مطلوب القيمة الافتراضية قيم صحيحة مثال
startTime السلسلة‬ ‏‏نعم‬ بلا التاريخ-الوقت المنظمة العالمية للمواصفات-8601 للمنطقة الزمنية للتوقيت العالمي المتفق عليه "startTime" : "2013-01-09T09:30:00-08:00Z"
للمنطقة الزمنية الأخرى "2013-01-09T09:30:00-08:00"
"المنطقة الزمنية" السلسلة‬ ‏‏نعم‬ بلا قيم المنطقة الزمنية "UTC"
التكرار ‏‏الكائن ‏‏نعم‬ بلا عنصر التكرار "recurrence" : { "frequency" : "monthly", "interval" : 1 }
الفاصل الزمني الرقم‬ لا 1 1 إلى 1000 "interval":10
endTime السلسلة‬ ‏‏نعم‬ بلا قيمة التاريخ-الوقت التي تمثل وقتاً في المستقبل. للمنطقة الزمنية للتوقيت العالمي المتفق عليه "endTime" : "2013-02-09T09:30:00-08:00Z"
للمنطقة الزمنية الأخرى "endTime" : "2013-02-09T09:30:00-08:00"
جدول ‏‏الكائن لا بلا جدولة العنصر "schedule" : { "minute" : [30], "hour" : [8,17] }

خيار المنطقة الزمنية

فيما يلي بعض المناطق الزمنية المعتمدة لمشغلات الجدول:

المنطقة الزمنية موزانة التوقيت العالمي المتفق عليه (التوقيت غير الصيفي) قيمة المنطقة الزمنية مراقبة التوقيت الصيفي تنسيق الطابع الزمني
التوقيت العالمي المتفق عليه 0 UTC لا 'yyyy-MM-ddTHH:mm:ssZ'
توقيت المحيط الهادئ -8 Pacific Standard Time ‏‏نعم‬ 'yyyy-MM-ddTHH:mm:ss'
التوقيت المركزي -6 Central Standard Time ‏‏نعم‬ 'yyyy-MM-ddTHH:mm:ss'
التوقيت الشرقي -5 Eastern Standard Time ‏‏نعم‬ 'yyyy-MM-ddTHH:mm:ss'
توقيت غرينتش 0 GMT Standard Time ‏‏نعم‬ 'yyyy-MM-ddTHH:mm:ss'
توقيت وسط أوروبا القياسي 1+ W. Europe Standard Time ‏‏نعم‬ 'yyyy-MM-ddTHH:mm:ss'
التوقيت الرسمي للهند +5:30 India Standard Time لا 'yyyy-MM-ddTHH:mm:ss'
توقيت الصين القياسي 8+ China Standard Time لا 'yyyy-MM-ddTHH:mm:ss'

هذه القائمة غير مكتملة. للحصول على قائمة كاملة بخيارات المنطقة الزمنية، استكشف في مدخل "Trigger creation page"

خاصية وقت البدء

يوضح الجدول التالي كيفية تحكم خاصية "startTime" في تشغيل المشغل:

قيمة وقت البدء التكرار دون جدول التكرار بجدولة
وقت البدء في الماضي حساب وقت التنفيذ المستقبلي الأول بعد وقت البدء ويتم تشغيله في ذلك الوقت.

تشغيل عمليات التنفيذ اللاحقة استناداً إلى الحساب من وقت التنفيذ الأخير.

راجع المثال الذي يتبع هذا الجدول.
يبدأ المشغل في وقت لا يتجاوز وقت البدء المحدد. يستند التكرار الأول إلى الجدول الذي يتم حسابه من وقت البدء.

يقوم بتشغيل عمليات التنفيذ اللاحقة بناءً على جدول التكرار.
وقت البدء في المستقبل أو في الوقت الحاضر يُشغل مرة واحدة في وقت البدء المحدد.

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

يقوم بتشغيل عمليات التنفيذ اللاحقة بناءً على جدول التكرار.

لنلقِ نظرة على مثال لما يحدث عندما يكون وقت البدء في الماضي، مع حدوث تكرار، ولكن لا يوجد جدول زمني. افترض أن الوقت الحالي هو 2017-04-08 13:00، وقت البدء هو 2017-04-07 14:00، وكرر ذلك كل يومين. (يتم تعريف قيمة التكرار عن طريق تعيين خاصية التردد إلى "يوم" و الخاصية الفاصل الزمني إلى 2.) لاحظ أن قيمة وقت البدء في الماضي ويحدث قبل الوقت الحالي.

في ظل هذه الظروف، يكون التنفيذ الأول 2017-04-09 في 14:00. يحسب محرك المجدول تكرارات التنفيذ من وقت البدء. يتم تجاهل أي مثيلات في الماضي. يستخدم المشغل المثيل التالي الذي يحدث في المستقبل. في هذا السيناريو، يكون وقت البدء 2017-04-07 في 2:00pm، بحيث يكون وقت المثيل التالي بعد يومين من ذلك الوقت، وهو 2017-04-09 في 2:00pm.

وقت التنفيذ الأول هو نفسه حتى إذا كانت قيمة "startTime"هي 2017-04-05 14:00 أو 2017-04-01 14:00. بعد التنفيذ الأول، يتم حساب عمليات التنفيذ اللاحقة باستخدام الجدول. لذلك، تكون عمليات التنفيذ اللاحقة عند 2017-04-11 في 2:00pm، ثم 2017-04-13 في 2:00pm، ثم 2017-04-15 في 2:00pm وهكذا.

وأخيراً، عندما لا يتم تعيين الساعات أو الدقائق في الجدول الزمني للمشغل، يتم استخدام الساعات أو الدقائق من التنفيذ الأول كإعدادات افتراضية.

خاصية الجدولة

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

حيث يمكن جدولة أيضاً توسيع عدد عمليات تنفيذ المشغل. على سبيل المثال، مشغل مع تردد شهري من المقرر أن يعمل في الشهر 1 و2، يعمل في اليومين الأول والثاني من الشهر، بدلاً من مرة واحدة في الشهر.

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

يصف الجدول التالي عناصر الجدول بالتفصيل:

عنصر JSON ‏‏الوصف قيم صحيحة
الدقائق دقائق من الساعة التي يعمل فيها المشغل.
  • Integer
  • صفيف الأعداد الصحيحة
hours ساعات من اليوم الذي يتم تشغيل المشغل فيه.
  • Integer
  • صفيف الأعداد الصحيحة
أيام الأسبوع أيام الأسبوع التي يتم تشغيل المشغل فيها. يمكن تحديد القيمة بتردد أسبوعي فقط.
  • الاثنين والثلاثاء والأربعاء والخميس والجمعة والسبت والأحد
  • صفيف قيم اليوم (الحد الأقصى لحجم الصفيف هو 7)
  • قيم اليوم غير حساسة لحالة الأحرف
monthlyOccurrences أيام الشهر الذي يتم تشغيل المشغل فيه. يمكن تحديد القيمة بتردد شهري فقط.
  • صفيف من عناصر monthlyOccurrence:{ "day": day, "occurrence": occurrence }.
  • سمة اليوم هو يوم الأسبوع الذي يتم تشغيل المشغل فيه. على سبيل المثال، monthlyOccurrencesبقيمةيومبقيمة{Sunday} تعني كل يوم أحد من الشهر. تُطلب سمة اليوم.
  • سمة التكرار هي تواجد اليوم المحدد خلال الشهر. على سبيل المثال، خاصية monthlyOccurrences مع قيم اليوموالتكرار{Sunday, -1} يُقصد بها الأحد الأخير من الشهر. تُعد سمة التكرار اختيارية.
monthDays اليوم الذي يتم تشغيل المشغل فيه خلال الشهر. يمكن تحديد القيمة بتردد شهري فقط.
  • أي قيمة <= -1 و>= -31
  • أي قيمة >= 1 و<= 31
  • صفيف من القيم

أمثلة على جداول تكرار المشغل

يقدم هذا القسم أمثلة على جداول التكرار ويركز على عنصر الجدولة وعناصره.

تفترض الأمثلة أن قيمة الفاصل الزمني هي 1، وأن قيمة التردد صحيحة وفقا لتعريف الجدول. على سبيل المثال، لا يمكن أن يكون لديك قيمة تكرار "يوم" وأيضا لديك تعديل "monthDays" في عنصر الجدولة. وترد قيود مثل هذه في الجدول في القسم السابق.

مثال ‏‏الوصف
{"hours":[5]} يُشغل في الساعة 5:00 صباحاً كل يوم.
{"minutes":[15], "hours":[5]} يُشغل في الساعة 05:15 صباحاً كل يوم.
{"minutes":[15], "hours":[5,17]} يُشغل في الساعة 5:15 صباحاً و5:15 مساءً كل يوم.
{"minutes":[15,45], "hours":[5,17]} يُشغل في الساعة 5:15 صباحاً 5:45 صباحاً، 5:15 مساءً، و5:45 مساءً كل يوم.
{"minutes":[0,15,30,45]} يُشغل كل 15 دقيقة.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} يُشغل كل ساعة. يُشغل هذا المشغل كل ساعة. يتم التحكم في الدقائق بواسطة قيمة startTime عند تحديد القيمة. إذا لم يتم تحديد قيمة، يتم التحكم بالدقائق بواسطة وقت الإنشاء. على سبيل المثال، إذا كان وقت البدء أو وقت الإنشاء (أيهما ينطبق) هو 12:25 م، يتم تشغيل المشغل في 00:25، 01:25، 02:25، ...، و23:25.

تُعادل هذه الجدولة وجود مشغل بقيمة تردد "ساعة"، وقيمة فاصل زمني 1، ولا يوجد جدولة. يمكن استخدام هذا الجدول الزمني مع قيم مختلفة للترددوالفاصل الزمني لإنشاء مشغلات أخرى. على سبيل المثال، عندما تكون قيمة التردد "شهر"، يتم تشغيل الجدول مرة واحدة فقط في الشهر، بدلاً من كل يوم، عندما تكون قيمة التردد "يوم".
{"minutes":[0]} يُشغل كل ساعة على مدار الساعة. يتم تشغيل هذا المشغل كل ساعة على مدار الساعة بدءًا من الساعة 12:00 صباحًا و1:00 صباحًا و2:00 صباحًا وما إلى ذلك.

يكافئ هذا الجدول الزمني المشغل بقيمة "hour" لـ frequency وقيمة صفر دقيقة لـ startTime، أو لا يوجد schedule ولكن frequency بقيمة "day." إذا كانت قيمة frequency هي "week" أو "month"، فسيتم تنفيذ الجدول الزمني يوماً واحداً في الأسبوع أو يوماً واحداً في الشهر فقط، على التوالي.
{"minutes":[15]} يُشغل في خلال 15 دقيقة بعد كل ساعة. يعمل هذا المشغل بعد مرور 15 دقيقة من على رأس كل ساعة بدءاً من الساعة 00:15 صباحاً و1:15 صباحاً و2:15 صباحاً وما إلى ذلك، وينتهي في الساعة 11:15 مساءً.
{"hours":[17], "weekDays":["saturday"]} يُشغل في الساعة 5:00 مساءً يوم السبت من كل أسبوع.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} يُشغل في الساعة 5:00 مساءً يوم الاثنين والأربعاء والجمعة من كل أسبوع.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} يُشغل في 5:15 مساءً و5:45 مساءً يوم الاثنين، الأربعاء، والجمعة من كل أسبوع.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} يُشغل كل 15 دقيقة في أيام الأسبوع.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} بٌشغل كل 15 دقيقة في أيام الأسبوع بين الساعة 9:00 صباحاً و4:45 مساءً.
{"weekDays":["tuesday", "thursday"]} يُشغل أيام الثلاثاء والخميس في وقت البدء المحدد.
{"minutes":[0], "hours":[6], "monthDays":[28]} يُشغل في الساعة 6:00 صباحاً في اليوم الثامن والعشرين (28) من كل شهر (على افتراض أن قيمة التردد "شهر").
{"minutes":[0], "hours":[6], "monthDays":[-1]} يُشغل في الساعة 6:00 صباحاً في اليوم الأخير من الشهر. لتشغيل المشغل في اليوم الأخير من الشهر، استخدم -1 بدلاً من اليوم 28 أو 29 أو 30 أو 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} يُشغل في الساعة 6:00 صباحاً في اليوم الأول والأخير من كل شهر.
{monthDays":[1,14]} يُشغل في اليوم الأول والرابع عشر (14) من كل شهر في وقت البدء المحدد.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} يُشغل يوم الجمعة الأول من كل شهر في الساعة 5:00 صباحاً.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} يُشغل في يوم الجمعة الأولى من كل شهر في وقت البدء المحدد.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} يُشغل يوم الجمعة الثالثة من الشهر، كل شهر، في وقت البدء المحدد.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} يُشغل يوم الجمعة الأولى والأخيرة من كل شهر في تمام الساعة 5:15 صباحاً.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} يُشغل في الجمعة الأولى والأخيرة من كل شهر في وقت البدء المحدد.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} يُشغل يوم الجمعة الخامسة من كل شهر في وقت البدء المحدد. عندما لا يكون هناك يوم جمعة خامسة في شهر واحد، لا يتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية، لأنه من المقرر أن يعمل فقط في أيام الجمعة الخامسة. لتشغيل المشغل في آخر يوم جمعة من الشهر، خذ بعين الاعتبار استخدام -1 بدلاً من 5 لقيمة التكرار.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} يُشغل كل 15 دقيقة في يوم الجمعة الأخيرة من الشهر.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} يُشغل في الساعة 5:15 صباحاً، والساعة 5:45 صباحاً، والساعة 5:15 مساءً، والساعة 5:45 مساءً يوم الأربعاء الثالث من كل شهر.