مشاركة عبر


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

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

تلميح

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

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

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

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

تجربة مدخل Azure Data Factory وAzure Synapse

يمكنك إنشاء مشغل جدول لجدولة مسار لتشغيله بشكل دوري، مثل كل ساعة أو يوميا.

إشعار

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

  1. قم بالتبديل إلى علامة التبويب Edit في Data Factory أو علامة التبويب Integrate في Azure Synapse.


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

    لقطة شاشة تعرض قائمة المشغل الجديد.

  2. في صفحة إضافة مشغلات ، حدد اختيار مشغل، ثم حدد جديد.

    لقطة شاشة تعرض جزء إضافة مشغلات.

  3. في صفحة مشغل جديد:

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

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

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

      إشعار

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

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

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

    5. ضمن التكرار، إذا اخترت يوم (أيام) أو أسبوع (أسابيع) أو شهر (أشهر) من القائمة المنسدلة، يمكنك مشاهدة خيارات التكرار المتقدمة.

      لقطة شاشة تعرض خيارات التكرار المتقدمة لليوم (الأيام) والأسبوع (الأسابيع) والشهر (الأشهر).

    6. لتحديد وقت تاريخ الانتهاء، حدد تحديد تاريخ انتهاء. حدد معلومات Ends On، ثم حدد OK.

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

      لقطة شاشة تعرض إعدادات المشغل.

      لقطة شاشة تعرض إعدادات المشغل لتاريخ ووقت الانتهاء.

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

    لقطة شاشة تعرض الخيار المنشط.

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

    لقطة شاشة تظهر تحديد الزر موافق.

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

    لقطة شاشة تعرض زر نشر الكل.

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


  1. قم بالتبديل إلى طريقة عرض Trigger runs>Schedule.


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* بالمحتوى التالي:

    هام

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

    {
        "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 يتم تعيين العنصر إلى Minute ويتم interval تعيين العنصر إلى 15. على هذا النحو، المشغل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية كل 15 دقيقة بين وقت البدء والانتهاء.

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

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

      هام

      بالنسبة للمنطقة الزمنية UTC، startTimeendTime وتحتاج إلى اتباع التنسيق yyyy-MM-ddTHH:mm:ssZ. بالنسبة للمناطق الزمنية startTime الأخرى، endTime واتبع yyyy-MM-ddTHH:mm:ss التنسيق.

      وفقا لمعيار ISO 8601، Z يتم استخدام اللاحقة لوضع علامة الطابع الزمني على التاريخ والوقت إلى المنطقة الزمنية UTC وجعل الحقل عديم الفائدة timeZone . إذا كانت لاحقة Z المنطقة الزمنية UTC مفقودة، تكون النتيجة خطأ عند تنشيط المشغل.

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

    • تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين 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"
    

    إشعار

    يتم تحديد وقت تشغيل مشغلات الجدولة في الطابع الزمني UTC. TriggerRunStartedAfter وتوقع TriggerRunStartedBefore أيضا الطابع الزمني UTC.

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

Azure CLI

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

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

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

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

    هام

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

    {
        "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 يتم تعيين العنصر إلى Minute ويتم interval تعيين العنصر إلى 15. على هذا النحو، المشغل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية كل 15 دقيقة بين وقت البدء والانتهاء.

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

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

      هام

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

      وفقا لمعيار ISO 8601، يتم استخدام لاحقة Z لوضع علامة الطابع الزمني على التاريخ والوقت إلى المنطقة الزمنية UTC وجعل الحقل عديم الفائدة timeZone . إذا كانت اللاحقة Z مفقودة للمنطقة الزمنية UTC، تكون النتيجة خطأ عند تنشيط المشغل.

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

    • تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين 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 trigger-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"
    

    إشعار

    يتم تحديد أوقات تشغيل مشغلات الجدولة في الطابع الزمني UTC. يتوقع آخر تحديث بعد وآخر تحديث قبل الطابع الزمني UTC أيضا.

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

.NET SDK

يوضح هذا المقطع كيفية استخدام SDK.NET لإنشاء مشغل وبدء تشغيله ومراقبته. لمشاهدة هذا النموذج يعمل، انتقل أولا من خلال التشغيل السريع: إنشاء مصنع بيانات باستخدام .NET SDK. ثم قم بإضافة التعليمات البرمجية التالية إلى الأسلوب الرئيسي الذي يقوم بإنشاء وبدء تشغيل جدول تشغيل كل 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 لإنشاء المشغل وبدء تشغيله ومراقبته. لمشاهدة هذا النموذج يعمل، انتقل أولا من خلال التشغيل السريع: إنشاء مصنع بيانات باستخدام Python SDK. ثم أضف كتلة التعليمات البرمجية التالية بعد كتلة التعليمات البرمجية monitor the pipeline run في البرنامج النصي Python. ينشئ هذا الرمز مشغل جدولة يعمل كل 15 دقيقة بين وقت البدء والانتهاء المحدد. قم بتحديث start_time المتغير إلى وقت UTC الحالي والمتغير 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 باستخدام قالب Azure Resource Manager.

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

يدعم الإصدار 1 من Azure Data Factory قراءة البيانات المقسمة أو كتابتها باستخدام متغيرات SliceStartالنظام و SliceEndWindowStartو و.WindowEnd في الإصدار الحالي من Data Factory وخطوط أنابيب Azure 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>"
                }
           }
      ]
  }
}

هام

parameters الخاصية هي خاصية إلزامية للعنصرpipelines. إذا لم تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك أي معلمات، يجب تضمين تعريف JSON فارغ للخاصية parameters .

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

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

خاصية JSON ‏‏الوصف
startTime قيمة Date-Time. بالنسبة للجداول البسيطة، تنطبق قيمة الخاصية startTime على التكرار الأول. بالنسبة للجداول المعقدة، يبدأ المشغل في وقت لا يتجاوز القيمة المحددة startTime .
بالنسبة للمنطقة الزمنية UTC، يكون التنسيق هو 'yyyy-MM-ddTHH:mm:ssZ'. بالنسبة للمناطق الزمنية الأخرى، يكون التنسيق هو yyyy-MM-ddTHH:mm:ss.
endTime تاريخ ووقت الانتهاء للمشغل. لا يتم تنفيذ المشغل بعد تاريخ ووقت الانتهاء المُحددين. لا يمكن أن تكون قيمة الخاصية في الماضي. هذه الخاصية اختيارية.
بالنسبة للمنطقة الزمنية UTC، يكون التنسيق هو 'yyyy-MM-ddTHH:mm:ssZ'. بالنسبة للمناطق الزمنية الأخرى، يكون التنسيق هو yyyy-MM-ddTHH:mm:ss.
timeZone المنطقة الزمنية التي يتم فيها إنشاء المشغل. يؤثر هذا الإعداد على startTimeو endTimeو schedule. راجع قائمة المناطق الزمنية المدعومة.
recurrence عنصر التكرار الذي يُحدد قواعد التكرار للمشغل. يدعم frequencyintervalendTimecountكائن التكرار العناصر و.schedule عند تعريف كائن تكرار، frequency يكون العنصر مطلوبا. تُعد العناصر الأخرى لعناصر التكرار اختيارية.
frequency وحدة التردد التي يتكرر فيها المشغل. تتضمن minute,hour,dayالقيم المدعومة و weekو.month
interval عدد صحيح موجب يشير إلى الفاصل الزمني للقيمة frequency ، والذي يحدد عدد مرات تشغيل المشغل. على سبيل المثال، إذا كان interval هو 3 و frequency هو week، يتكرر المشغل كل 3 أسابيع.
schedule جدول التكرار للمشغل. يقوم المشغل بقيمة محددة frequency بتغيير تكراره استنادا إلى جدول التكرار. schedule تحتوي الخاصية على تعديلات للتكرار تستند إلى الدقائق والساعات وأيام الأسبوع وأيام الشهر ورقم الأسبوع.

هام

بالنسبة للمنطقة الزمنية UTC، startTimeendTime وتحتاج إلى اتباع التنسيق yyyy-MM-ddTHH:mm:ssZ. بالنسبة للمناطق الزمنية startTime الأخرى، endTime واتبع yyyy-MM-ddTHH:mm:ss التنسيق.

وفقا لمعيار ISO 8601، يتم استخدام لاحقة Z لوضع علامة الطابع الزمني على التاريخ والوقت إلى المنطقة الزمنية UTC وجعل الحقل عديم الفائدة timeZone . إذا كانت اللاحقة Z مفقودة للمنطقة الزمنية UTC، تكون النتيجة خطأ عند تنشيط المشغل.

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

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

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

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

المنطقة الزمنية إزاحة التوقيت العالمي المتفق عليه (غير التوقيت الصيفي) قيمة المنطقة الزمنية مراقبة التوقيت الصيفي تنسيق الطابع الزمني
التوقيت العالمي المتفق عليه 1 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'
توقيت غرينتش 1 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'

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

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

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

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

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

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

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

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

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

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

في ظل هذه الظروف، يكون التنفيذ الأول 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، يعمل في اليومين الأول والثاني من الشهر، بدلاً من مرة واحدة في الشهر.

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

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

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

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

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

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

مثال ‏‏الوصف
{"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.

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

هذا الجدول يعادل مشغلا frequency بقيمة hour وقيمة 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 صباحا في اليوم الثامن والعشرين من كل شهر (بافتراض frequency قيمة month).
{"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 للقيمة occurrence .
{"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 مساءً يوم الأربعاء الثالث من كل شهر.