إنشاء مشغل يقوم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية على جدول زمني
ينطبق على:Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توفر هذه المقالة معلومات حول مشغل الجدولة والخطوات لإنشاء مشغل جدول وبدء تشغيله ومراقبته. للحصول على أنواع أخرى من المشغلات، راجع تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية والمشغلات.
عند إنشاء مشغل جدول زمني، يُمكنك تحديد جدول زمني (تاريخ البدء، التكرار، تاريخ الانتهاء وما إلى ذلك) للمشغل، وربطه بالبنية الأساسية لبرنامج ربط العمليات التجارية. تتمتع التدفقات والمشغلات بعلاقة متعدد إلى متعدد. يمكن أن تقوم العديد من المشغلات ببدء تشغيل تدفق واحد. يمكن لمشغل واحد أن يطلق البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة.
توفر المقاطع التالية خطوات لإنشاء مشغل جدول زمني بطرق مختلفة.
تجربة Azure Data Factory وSynapse portal
يمكنك إنشاء مشغل جدول لجدولة البنية الأساسية لبرنامج ربط العمليات التجارية للتشغيل دورياً (كل ساعة ويوميا وما إلى ذلك).
إشعار
للحصول على معاينة كاملة لإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية ومشغل جدول زمني، والذي يربط المشغل بالبنية الأساسية لبرنامج ربط العمليات التجارية، ويقوم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية ومراقبة، راجع التشغيل السريع: إنشاء مصنع بيانات باستخدام واجهة مستخدم مصنع البيانات.
التبديل إلى علامة التبويب "Edit" في مصنع البيانات أو علامة التبويب دمج في Azure Synapse.
حدد Trigger في القائمة، ثم حدد New/Edit.
في صفحة Add Triggers، حدد Choose trigger...، ثم حدد +New.
في صفحة "New Trigger" قم بالخطوات التالية:
تأكد من تحديد "Schedule" لـ "Type".
حدد وقت بدء المشغل لـ "Start Date". يتم تعيين إلى التاريخ الحالي في التوقيت العالمي المتفق عليه بشكل افتراضي.
حدد المنطقة الزمنية التي سيتم إنشاء المشغل فيها. سيتم تطبيق إعداد المنطقة الزمنية على "Start Date"و"End Date"و"Schedule Execution Times" في خيارات التكرار المتقدمة. تغيير إعداد المنطقة الزمنية لن يغير تاريخ البدء تلقائياً. تأكد من صحة "تاريخ البدء" في المنطقة الزمنية المحددة. يرجى ملاحظة أنه سيتم اعتبار وقت التنفيذ المجدول للمشغل بعد تاريخ البدء (تأكد من أن تاريخ البدء أقل بدقيقة واحدة من وقت التنفيذ وإلا فسيؤدي ذلك إلى بدء مسار التدفق في التكرار التالي).
إشعار
بالنسبة إلى المناطق الزمنية التي تراعي التوقيت الصيفي، سيتم ضبط وقت التشغيل تلقائياً للتغيير مرتين في السنة، إذا تم تعيين التكرار على Days أو أعلى. لإلغاء الاشتراك في تغيير التوقيت الصيفي، يرجى تحديد منطقة زمنية لا تراعي التوقيت الصيفي، على سبيل المثال التوقيت العالمي المتفق عليه
هام
يحدث تعديل التوقيت الصيفي فقط للمشغل مع تعيين التكرار على Days أو أعلى. إذا تم تعيين المشغل على تردد Hours أو Minutes، فسيستمر في إطلاقه على فترات منتظمة.
حدد "Recurrence" للمشغل. حدد إحدى القيم من القائمة المنسدلة (كل دقيقة، كل ساعة ويومياً وأسبوعياً وشهرياً). أدخل المضاعف في مربع النص. على سبيل المثال، إذا كنت تريد تشغيل المشغل مرة واحدة كل 15 دقيقة، حدد "Every Minute"، وأدخل 15 في مربع النص.
في "Recurrence"، إذا اخترت "يوم(أيام) أو أسبوع (أيام) أو شهر (أشهر)" من القائمة المنسدلة، يمكنك العثور على "خيارات التكرار المتقدمة".
لتحديد وقت تاريخ الانتهاء، حدد "Specify an End Date"، وحدد "End On"ثم حدد "OK". هناك تكلفة مقترنة بكل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية. إذا كنت تختبر، قد تحتاج إلى التأكد من تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بضع مرات فقط. ومع ذلك، تأكد من وجود وقت كاف لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بين وقت النشر ووقت الانتهاء. المشغل حيز التنفيذ فقط بعد نشر الحل، وليس عند حفظ المشغل في واجهة المستخدم.
في نافذة "New Trigger" حدد "Yes" في الخيار "Activated" ثم حدد "OK". يمكنك استخدام خانة الاختيار هذه لإلغاء تنشيط المشغل لاحقاً.
في إطار "New Trigger" راجع رسالة التحذير، ثم حدد "OK".
حدد "Publish all" لنشر البنية الأساسية. حتى تقوم بنشر التغييرات، لا يبدأ المشغل بتشغيل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
التبديل إلى "Pipeline runs" على اليسار، ثم حدد "Refresh" لتحديث القائمة. سترى تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الذي تم تشغيله بواسطة المشغل المجدول. لاحظ القيم في العمود "Triggered By". إذا كنت تستخدم الخيار "Trigger Now" سترى تشغيل المشغل اليدوي في القائمة.
التبديل إلى عرض عمليات التشغيل المشغلة \ الجدول.
Azure PowerShell
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
يوضح هذا القسم كيفية استخدام Azure PowerShell لإنشاء مشغل جدولة وبدء تشغيله ومراقبة ذلك. لمشاهدة هذه العينة العمل، انتقل أولا من خلال التشغيل السريع: إنشاء مصنع بيانات باستخدام Azure PowerShell. ثم قم بإضافة التعليمات البرمجية التالية إلى الأسلوب الرئيسي الذي يقوم بإنشاء وبدء تشغيل جدول تشغيل كل 15 دقيقة. المشغل مقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية تُسمى Adfv2QuickStartPipeline التي تقوم بإنشائها كجزء من التشغيل السريع.
المتطلبات الأساسية
اشتراك Azure. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
Azure PowerShell. اتبع الإرشادات الواردة في تثبيت Azure PowerShell على Windows باستخدام PowerShellGet.
نموذج التعليمات البرمجية
أنشئ ملف 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. وتقوم بتمرير قيم هذه المعلمات من المشغل.
إنشاء مشغل باستخدام cmdlet Set-AzDataFactoryV2Trigger:
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
تأكد من أن حالة المشغل متوقفة باستخدام الأمر Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
ابدأ المشغل باستخدام الأمر cmdlet Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
تأكد من أن حالة المشغل بدأت باستخدام الأمر Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
يمكن تشغيل المشغل في 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 التي تقوم بإنشائها كجزء من التشغيل السريع.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
نموذج التعليمات البرمجية
في دليل العمل الخاص بك، قم بإنشاء ملف 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. وتقوم بتمرير قيم هذه المعلمات من المشغل.
قم بإنشاء مشغل باستخدام الأمر az datafactory trigger create:
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
تأكد من أن حالة المشغل في وضع "Stopped" باستخدام أمر عرض مشغل البيانات az:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
ابدأ المشغل باستخدام الأمر az datafactory trigger start:
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
تأكد من أن حالة المشغل بدأت باستخدام الأمر az datafactory trigger show:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
احصل على المشغل يتم تشغيله في 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 | الوصف | قيم صحيحة |
---|---|---|
الدقائق | دقائق من الساعة التي يعمل فيها المشغل. |
|
hours | ساعات من اليوم الذي يتم تشغيل المشغل فيه. |
|
أيام الأسبوع | أيام الأسبوع التي يتم تشغيل المشغل فيها. يمكن تحديد القيمة بتردد أسبوعي فقط. |
|
monthlyOccurrences | أيام الشهر الذي يتم تشغيل المشغل فيه. يمكن تحديد القيمة بتردد شهري فقط. |
|
monthDays | اليوم الذي يتم تشغيل المشغل فيه خلال الشهر. يمكن تحديد القيمة بتردد شهري فقط. |
|
أمثلة على جداول تكرار المشغل
يقدم هذا القسم أمثلة على جداول التكرار ويركز على عنصر الجدولة وعناصره.
تفترض الأمثلة أن قيمة الفاصل الزمني هي 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 مساءً يوم الأربعاء الثالث من كل شهر. |
المحتوى ذو الصلة
- للحصول على معلومات مفصلة حول المشغلات، راجع تنفيذ خط التدفق والمشغلات.
- تعرف على كيفية الإشارة إلى بيانات التعريف المشغلة في التسلسل، راجع بيانات التعريف المرجعية للمشغل في عمليات تشغيل خط التدفق