ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توفر هذه المقالة معلومات حول مشغل الجدولة والخطوات لإنشاء مشغل جدول وبدء تشغيله ومراقبته. للحصول على أنواع أخرى من المشغلات، راجع تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية والمشغلات.
عند إنشاء مشغل جدول، يمكنك تحديد جدول مثل تاريخ بدء أو تكرار أو تاريخ انتهاء للمشغل وربطه بمسار. تتمتع التدفقات والمشغلات بعلاقة متعدد إلى متعدد. يمكن أن تقوم العديد من المشغلات ببدء تشغيل تدفق واحد. يمكن لمشغل واحد أن يطلق البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة.
توفر المقاطع التالية خطوات لإنشاء مشغل جدول زمني بطرق مختلفة.
تجربة مدخل Azure Data Factory وAzure Synapse
يمكنك إنشاء مشغل جدول لجدولة مسار لتشغيله بشكل دوري، مثل كل ساعة أو يوميا.
إشعار
للحصول على معاينة كاملة لإنشاء مسار ومشغل جدول زمني، والذي يربط المشغل بالبنية الأساسية لبرنامج ربط العمليات التجارية ويشغل البنية الأساسية لبرنامج ربط العمليات التجارية ويراقبها، راجع التشغيل السريع: إنشاء مصنع بيانات باستخدام واجهة مستخدم Data Factory.
قم بالتبديل إلى علامة التبويب Edit في Data Factory أو علامة التبويب Integrate في Azure Synapse.
حدد Trigger في القائمة، ثم حدد New/Edit.
في صفحة إضافة مشغلات ، حدد اختيار مشغل، ثم حدد جديد.
في صفحة مشغل جديد:
تأكد من تحديد "Schedule" لـ "Type".
حدد وقت بدء المشغل لـ "Start Date". يتم تعيين إلى التاريخ الحالي في التوقيت العالمي المتفق عليه بشكل افتراضي.
حدد المنطقة الزمنية التي يتم فيها إنشاء المشغل. ينطبق إعداد المنطقة الزمنية على تاريخ البدء وتاريخ الانتهاء وأوقاتتنفيذ الجدولة في خيارات التكرار المتقدمة. لا يؤدي تغيير إعداد المنطقة الزمنية إلى تغيير تاريخ البدء تلقائيا. تأكد من صحة تاريخ البدء في المنطقة الزمنية المحددة. يعتبر وقت التنفيذ المجدول للمشغل بعد تاريخ البدء. (تأكد من أن تاريخ البدء أقل بدقيقة واحدة على الأقل من وقت التنفيذ أو أنه يقوم بتشغيل المسار في التكرار التالي.)
إشعار
بالنسبة للمناطق الزمنية التي تراقب التوقيت الصيفي، يتم ضبط وقت التشغيل التلقائي للتغيير مرتين في السنة، إذا تم تعيين التكرار إلى أيام أو أعلى. لإلغاء الاشتراك في تغيير التوقيت الصيفي، حدد منطقة زمنية لا تراعي التوقيت الصيفي، على سبيل المثال، التوقيت العالمي المتفق عليه.
يحدث ضبط التوقيت الصيفي فقط لمشغل مع تعيين التكرار إلى أيام أو أعلى. إذا تم تعيين المشغل على تردد الساعات أو الدقائق ، فإنه يستمر في إطلاق النار على فترات منتظمة.
حدد "Recurrence" للمشغل. حدد إحدى القيم من القائمة المنسدلة (كل دقيقة أو كل ساعة أو يومية أو أسبوعية أو شهرية). أدخل المضاعف في مربع النص. على سبيل المثال، إذا كنت تريد تشغيل المشغل مرة واحدة كل 15 دقيقة، فحدد كل دقيقة وأدخل 15 في مربع النص.
ضمن التكرار، إذا اخترت يوم (أيام) أو أسبوع (أسابيع) أو شهر (أشهر) من القائمة المنسدلة، يمكنك مشاهدة خيارات التكرار المتقدمة.
لتحديد وقت تاريخ الانتهاء، حدد تحديد تاريخ انتهاء. حدد معلومات Ends On، ثم حدد OK.
ترتبط التكلفة بكل تشغيل للبنية الأساسية لبرنامج ربط العمليات التجارية. إذا كنت تختبر، فقد تحتاج إلى التأكد من تشغيل المسار مرتين فقط. على الرغم من ذلك، تأكد من وجود وقت كافٍ لتشغيل التدفق بين وقت النشر ووقت الانتهاء. المشغل حيز التنفيذ فقط بعد نشر الحل، وليس عند حفظ المشغل في واجهة المستخدم.
في نافذة New Trigger ، حدد Yes في الخيار Activated ، ثم حدد OK. يمكنك استخدام خانة الاختيار هذه لإلغاء تنشيط المشغل لاحقاً.
في نافذة New Trigger ، راجع رسالة التحذير ثم حدد OK.
حدد "Publish all" لنشر البنية الأساسية. حتى تقوم بنشر التغييرات، لا يبدأ المشغل بتشغيل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
قم بالتبديل إلى علامة التبويب Pipeline runs على اليسار، ثم حدد Refresh لتحديث القائمة. ترى تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الذي تم تشغيله بواسطة المشغل المجدول. لاحظ القيم في العمود "Triggered By". إذا كنت تستخدم الخيار Trigger Now ، فسترى المشغل اليدوي قيد التشغيل في القائمة.
قم بالتبديل إلى طريقة عرض Trigger runs>Schedule.
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* بالمحتوى التالي:
هام
قبل حفظ ملف 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،
startTime
endTime
وتحتاج إلى اتباع التنسيقyyyy-MM-ddTHH:mm:ss
Z. بالنسبة للمناطق الزمنيةstartTime
الأخرى،endTime
واتبعyyyy-MM-ddTHH:mm:ss
التنسيق.وفقا لمعيار ISO 8601،
Z
يتم استخدام اللاحقة لوضع علامة الطابع الزمني على التاريخ والوقت إلى المنطقة الزمنية UTC وجعل الحقل عديم الفائدةtimeZone
. إذا كانت لاحقةZ
المنطقة الزمنية UTC مفقودة، تكون النتيجة خطأ عند تنشيط المشغل.يرتبط المشغل بالبنية الأساسية لبرنامج ربط العمليات
Adfv2QuickStartPipeline
التجارية. لربط مسارات متعددة بمشغل، أضف المزيد منpipelineReference
الأقسام.تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين
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"
إشعار
يتم تحديد وقت تشغيل مشغلات الجدولة في الطابع الزمني UTC.
TriggerRunStartedAfter
وتوقعTriggerRunStartedBefore
أيضا الطابع الزمني UTC.لمراقبة تشغيل المشغل وتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في Azure portal، راجع مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
Azure CLI
يوضح لك هذا القسم كيفية استخدام Azure CLI لإنشاء مشغل جدول وبدء تشغيله ومراقبته. لمشاهدة هذا النموذج يعمل، انتقل أولا من خلال التشغيل السريع: إنشاء Azure Data Factory باستخدام Azure CLI. بعد ذلك، اتبع الخطوات لإنشاء مشغل جدول زمني يتم تشغيله كل 15 دقيقة وبدء تشغيله. يرتبط المشغل ببنية أساسية لبرنامج ربط العمليات التجارية المسماة Adfv2QuickStartPipeline
التي تقوم بإنشائها كجزء من التشغيل السريع.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات تسجيل الدخول الأخرى، راجع المصادقة على Azure باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات حول الملحقات، راجع استخدام الملحقات وإدارتها باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
التعليمة البرمجية العينة
في دليل العمل الخاص بك، قم بإنشاء ملف 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:ss
Z. بالنسبة للمناطق الزمنيةstartTime
الأخرى،endTime
واتبعyyyy-MM-ddTHH:mm:ss
التنسيق.وفقا لمعيار ISO 8601، يتم استخدام لاحقة Z لوضع علامة الطابع الزمني على التاريخ والوقت إلى المنطقة الزمنية UTC وجعل الحقل عديم الفائدة
timeZone
. إذا كانت اللاحقة Z مفقودة للمنطقة الزمنية UTC، تكون النتيجة خطأ عند تنشيط المشغل.يرتبط المشغل بالبنية الأساسية لبرنامج ربط العمليات
Adfv2QuickStartPipeline
التجارية. لربط مسارات متعددة بمشغل، أضف المزيد منpipelineReference
الأقسام.تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية في التشغيل السريع قيمتين
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 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
النظام و SliceEnd
WindowStart
و و.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 |
عنصر التكرار الذي يُحدد قواعد التكرار للمشغل. يدعم frequency interval endTime count كائن التكرار العناصر و.schedule عند تعريف كائن تكرار، frequency يكون العنصر مطلوبا. تُعد العناصر الأخرى لعناصر التكرار اختيارية. |
frequency |
وحدة التردد التي يتكرر فيها المشغل. تتضمن minute, hour, day القيم المدعومة و week و.month |
interval |
عدد صحيح موجب يشير إلى الفاصل الزمني للقيمة frequency ، والذي يحدد عدد مرات تشغيل المشغل. على سبيل المثال، إذا كان interval هو 3 و frequency هو week ، يتكرر المشغل كل 3 أسابيع. |
schedule |
جدول التكرار للمشغل. يقوم المشغل بقيمة محددة frequency بتغيير تكراره استنادا إلى جدول التكرار.
schedule تحتوي الخاصية على تعديلات للتكرار تستند إلى الدقائق والساعات وأيام الأسبوع وأيام الشهر ورقم الأسبوع. |
هام
بالنسبة للمنطقة الزمنية UTC، startTime
endTime
وتحتاج إلى اتباع التنسيق yyyy-MM-ddTHH:mm:ss
Z. بالنسبة للمناطق الزمنية 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 |
أيام الأسبوع التي يتم تشغيل المشغل فيها. يمكن تحديد القيمة بتردد أسبوعي فقط. |
|
monthlyOccurrences |
أيام الشهر الذي يتم تشغيل المشغل فيه. يمكن تحديد القيمة بتردد شهري فقط. |
|
monthDays |
اليوم الذي يتم تشغيل المشغل فيه خلال الشهر. يمكن تحديد القيمة بتردد شهري فقط. |
|
أمثلة على جداول تكرار المشغل
يوفر هذا القسم أمثلة على جداول التكرار ويركز على 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.هذا الجدول يعادل وجود مشغل بقيمة frequency hour ، وقيمة interval 1 ، ولا 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 مساءً يوم الأربعاء الثالث من كل شهر. |
المحتوى ذو الصلة
- لمزيد من المعلومات حول المشغلات، راجع تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية والمشغلات.
- لمعرفة كيفية الرجوع إلى بيانات تعريف المشغل في البنية الأساسية لبرنامج ربط العمليات التجارية، راجع بيانات تعريف مشغل المرجع في عمليات تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.