ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
المسارات الشرطية
يسمح تزامن Azure Data Factory وSynapse Pipeline بالمنطق الشرطي ويمكن المستخدم من اتخاذ مسار مختلف استنادا إلى نتائج نشاط سابق. يسمح استخدام مسارات مختلفة للمستخدمين بإنشاء بنية أساسية لبرنامج ربط العمليات التجارية قوية ويدمج معالجة الأخطاء في منطق ETL/ELT. نسمح بإجمالي أربعة مسارات شرطية،
الاسم | الشرح |
---|---|
عند النجاح | (رمز المرور الافتراضي) تنفيذ هذا المسار إذا نجح النشاط الحالي |
عند الفشل | تنفيذ هذا المسار إذا فشل النشاط الحالي |
عند الانتهاء | تنفيذ هذا المسار بعد اكتمال النشاط الحالي، بغض النظر عما إذا كان قد نجح أم لا |
عند التخطي | تنفيذ هذا المسار إذا لم يتم تشغيل النشاط نفسه |
يمكنك إضافة فروع متعددة بعد نشاط، باستثناء واحد: لا يمكن أن يتعايش مسار عند الاكتمال إما مع مسار عند النجاح أو عند الفشل . لكل تشغيل للبنية الأساسية لبرنامج ربط العمليات التجارية، يتم تنشيط مسار واحد على الأكثر، بناء على نتيجة تنفيذ النشاط.
Error Handling
آلية معالجة الأخطاء الشائعة
جرب كتلة Catch
يحدد العميل في هذا الأسلوب منطق تسلسل العمل، ويحدد فقط مسار عند الفشل للالتقاط أي خطأ من النشاط السابق. يعرض هذا الأسلوب نجاح المسار، إذا نجح مسار عند الفشل.
كتلة Do If Else
يحدد العميل في هذا النهج، منطق تسلسل العمل، ويحدد كلا مساري عند الفشل وعند النجاح. يعرض هذا الأسلوب فشل المسار، إذا نجح مسار عند الفشل.
كتلة Do If Skip Else
يحد العميل في هذا النهج منطق تسلسل العمل، ويحدد كلا من مسار عند الفشل ومسار عند النجاح، مع إرفاق نشاط عند التخطي وهمي. يعرض هذا الأسلوب نجاح المسار، إذا نجح مسار عند الفشل.
جدول الملخص
النهج | التعريف | عند نجاح النشاط، تظهر البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية | عند فشل النشاط، تظهر البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية |
---|---|---|---|
Try-Catch | مسار عند الفشل فقط | نجاح | نجاح |
Do-If-Else | مسار عند الفشل + مسار عند النجاح | نجاح | فشل |
Do-If-Skip-Else | مسار عند الفشل + مسار عند النجاح(مع وهمي عند التخطي في النهاية) | نجاح | نجاح |
كيفية تحديد فشل البنية الأساسية لبرنامج ربط العمليات التجارية
تؤدي آليات معالجة الأخطاء المختلفة إلى حالة مختلفة للبنية الأساسية لبرنامج ربط العمليات التجارية: بينما تفشل بعض المسارات، ينجح البعض الآخر. نحدد نجاح البنية الأساسية لبرنامج ربط العمليات التجارية وفشلها كما يلي:
- تقييم النتيجة لجميع أنشطة العُقد الطرفية. إذا جرى تخطي نشاط عقدة طرفية، نُقيّم نشاطه الأصل بدلًا من ذلك
- تنجح نتيجة البنية الأساسية لبرنامج ربط العمليات التجارية فقط إذا نجحت جميع العُقد التي جرى تقييمها
بافتراض نجاح نشاط عند الفشل ونشاط وهمي عند الفشل،
في نهج Try-Catch،
- عند نجاح النشاط السابق: تُتخطى العقدة عند الفشل وتنجح العقدة الأصل، نجاح البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
- عند فشل النشاط السابق: تُسن العقدة عند الفشل، نجاح البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
في نهج Do-If-Else،
- عند نجاح النشاط السابق: تنجح العقدة عند النجاح وتُتخطى العقدة عند الفشل (وتنجح العقدة الأصل)، نجاح البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
- عند فشل النشاط السابق: تُتخطى العقدة عند النجاح وتفشل العقدة الأصل، فشل البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
في نهج Do-If-Skip-Else،
- عند نجاح النشاط السابق: تُتخطى العقدة... وهمي عند التخطي وتنجح العقدة الأصل عند النجاح، يُتخطى نشاط العقدة الأخرى، عند الفشل، وتنجح العقدة الأصل، نجاح البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
- عند فشل النشاط السابق: تنجح العقدة عند الفشل وينجح وهمي عند التخطي، نجاح البنية الأساسية لبرنامج ربط العمليات التجارية الإجمالية
التنفيذ الشرطي
بينما نطور مسارات أكثر تعقيدا ومرونة، يطلب أحيانا إدخال عمليات تنفيذ شرطية إلى منطقنا: تنفيذ نشاط معين فقط إذا تم استيفاء شروط معينة. حالات الاستخدام كثيرة، على سبيل المثال:
- تشغيل نشاط متابعة، مثل إرسال إعلام بالبريد الإلكتروني، إذا نجحت مهام النسخ السابقة
- تشغيل مهمة معالجة الأخطاء، إذا فشل أي من الأنشطة السابقة
- انتقل إلى الخطوة التالية إذا نجح النشاط نفسه أو نشاط معالجة الأخطاء المقابل له
- وغيرها
هنا نشرح بعض المنطق المشترك وكيفية تنفيذها في ADF.
نشاط واحد
فيما يلي بعض الأنماط الشائعة التي تتبع نشاط واحد. يمكننا استخدام هذه الأنماط ككتل بناء لإنشاء تدفقات عمل معقدة.
معالجة الخطأ
النمط هو منطق الشرط الأكثر شيوعا في ADF. يتم تعريف نشاط معالجة الأخطاء لمسار "عند الفشل"، وسيتم استدعاؤه إذا فشل النشاط الرئيسي. وينبغي إدراجه كأفضل ممارسة لجميع الخطوات الحرجة للبعثة التي تحتاج إلى بدائل احتياطية أو قطع الأشجار.
أفضل خطوات الجهد
بعض الخطوات، مثل التسجيل المعلوماتي، أقل أهمية، ويجب ألا تمنع حالات فشلها البنية الأساسية لبرنامج ربط العمليات التجارية بأكملها. في مثل هذه الحالات، يجب أن نعتمد أفضل استراتيجيات الجهد: إضافة الخطوات التالية إلى مسار "عند الانتهاء"، لإلغاء حظر تدفق العمل.
و
السيناريوهات الأولى والأكثر شيوعا هي شرطية "و": متابعة المسار إذا وفقط إذا نجحت الأنشطة السابقة. على سبيل المثال، قد يكون لديك أنشطة نسخ متعددة تحتاج إلى النجاح أولا قبل الانتقال إلى المرحلة التالية من معالجة البيانات. في ADF، يمكن تحقيق السلوك بسهولة: الإعلان عن تبعيات متعددة للخطوة التالية. بشكل بياني، يعني ذلك خطوطا متعددة تشير إلى النشاط التالي. يمكنك اختيار إما مسار "عند النجاح" لضمان نجاح التبعية، أو مسار "عند الاكتمال" للسماح بتنفيذ أفضل جهد.
هنا، سيتم تنفيذ نشاط انتظار المتابعة فقط عند نجاح نشاطي الويب.
وهنا، يتم تنفيذ نشاط انتظار المتابعة عند تمرير ActivitySucceeded وإكمال ActivityFailed . ملاحظة، مع مسار "عند النجاح" يجب أن ينجح ActivitySucceeded ، في حين أن ActivityFailed على مسار "عند الانتهاء" يعمل بأفضل جهد، أي قد يفشل.
أو
السيناريوهات الشائعة الثانية هي شرطي "أو": تشغيل نشاط إذا نجحت أي من التبعيات أو فشلت. هنا نحن بحاجة إلى استخدام مسارات "عند الانتهاء"، نشاط If Condition ولغة التعبير.
قبل أن نتعمق في التعليمات البرمجية، نحتاج إلى فهم شيء آخر. بعد تشغيل نشاط واكتماله، يمكنك الرجوع إلى حالته باستخدام @activity('ActivityName'). الحالة. إما "Succeeded" أو "Failed". نستخدم هذه الخاصية لإنشاء شرطي أو منطق.
خطوة تسجيل معالجة الأخطاء المشتركة
في بعض الحالات، قد تحتاج إلى استدعاء خطوة معالجة الأخطاء المشتركة أو التسجيل، إذا فشل أي من الأنشطة السابقة. يمكنك إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك مثل هذا:
- تشغيل أنشطة متعددة بالتوازي
- إضافة شرط if لاحتواء خطوات معالجة الأخطاء، في الفرع True
- توصيل الأنشطة بنشاط الشرط باستخدام مسار "عند الاكتمال"
- التعبير المنطقي لقراءة نشاط الشرط
@or(equals(activity('ActivityFailed').Status, 'Failed'), equals(activity('ActivitySucceeded').Status, 'Failed'))
- ملاحظة: تحتاج إلى تسلسل أو إذا كان لديك أكثر من نشاطي تبعية، على سبيل المثال،
@or(or(equals(activity('ActivityFailed').Status, 'Failed'), equals(activity('ActivitySucceeded1').Status, 'Failed')),equals(activity('ActivitySucceeded1').Status, 'Failed'))
الضوء الأخضر إذا نجح أي نشاط
عندما تكون جميع أنشطتك هي أفضل جهد، قد ترغب في المتابعة إلى الخطوة التالية إذا نجح أي من الأنشطة السابقة. يمكنك إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك مثل هذا:
- تشغيل أنشطة متعددة بالتوازي
- إضافة شرط if لاحتواء الخطوات التالية، في الفرع True
- توصيل الأنشطة بنشاط الشرط باستخدام مسار "عند الاكتمال"
- التعبير المنطقي لقراءة نشاط الشرط
@or(equals(activity('ActivityFailed').Status, 'Succeeded'), equals(activity('ActivitySucceeded').Status, 'Succeeded'))
- ملاحظة: يبدو الرسم البياني تماما مثل السيناريو السابق. الفرق الوحيد هو لغة التعبير المستخدمة
السيناريوهات المعقدة
يجب أن تنجح جميع الأنشطة للمتابعة
النمط هو مزيج من اثنين: معالجة الأخطاء الشرطية + . ينتقل المسار إلى الخطوات التالية إذا نجحت جميع أنشطة المتابعة، أو إذا كان يقوم بتشغيل خطوة تسجيل خطأ مشتركة. يمكنك إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية مثل هذا:
- تشغيل أنشطة متعددة بالتوازي
- إضافة شرط if. أضف الخطوات التالية في الفرع True، وأضف رمز معالجة الأخطاء في فرع False
- توصيل الأنشطة بنشاط الشرط باستخدام مسار "عند الاكتمال"
- التعبير المنطقي لقراءة نشاط الشرط
@and(equals(activity('ActivityFailed').Status, 'Succeeded'), equals(activity('ActivitySucceeded').Status, 'Succeeded'))
الأنماط الشائعة
تجربة المتابعة
النمط يعادل محاولة التقاط كتلة في الترميز. قد يفشل نشاط في البنية الأساسية لبرنامج ربط العمليات التجارية. عندما يفشل، يحتاج العميل إلى تشغيل مهمة معالجة الأخطاء للتعامل معها. ومع ذلك، يجب ألا يمنع فشل النشاط الفردي الأنشطة التالية في البنية الأساسية لبرنامج ربط العمليات التجارية. على سبيل المثال، أحاول تشغيل مهمة نسخ، ونقل الملفات إلى التخزين. ومع ذلك فقد تفشل في منتصف الطريق. وفي هذه الحالة، أريد حذف الملفات المنسخة جزئيا وغير الموثوق بها من حساب التخزين (خطوة معالجة الأخطاء). ولكن أنا موافق على المضي قدما في الأنشطة الأخرى بعد ذلك.
لإعداد النمط:
- إضافة النشاط الأول
- إضافة معالجة الأخطاء إلى مسار UponFailure
- إضافة نشاط ثان، ولكن لا تتصل بالنشاط الأول
- توصيل مساري UponFailure وUpnSkip من نشاط معالجة الأخطاء إلى النشاط الثاني
إشعار
يمكن أن يشير كل مسار (UponSuccess وUpnFailure وUpnSkip) إلى أي نشاط. يمكن أن تشير مسارات متعددة إلى نفس النشاط. على سبيل المثال، يمكن لكل من UponSuccess وOneSkip الإشارة إلى نشاط واحد بينما يشير UponFailure إلى نشاط آخر.
يتم تشغيل مهمة معالجة الأخطاء فقط عند فشل النشاط الأول. سيتم تشغيل النشاط التالي بغض النظر عما إذا نجح النشاط الأول أم لا.
معالجة الأخطاء العامة
عادة، لدينا أنشطة متعددة تعمل بشكل تسلسلي في البنية الأساسية لبرنامج ربط العمليات التجارية. إذا فشل أي شيء، أحتاج إلى تشغيل مهمة معالجة خطأ لمسح الحالة و/أو تسجيل الخطأ. على سبيل المثال، لدي أنشطة نسخ متتالية في البنية الأساسية لبرنامج ربط العمليات التجارية. إذا فشل أي من هذه، أحتاج إلى تشغيل مهمة برنامج نصي لتسجيل فشل البنية الأساسية لبرنامج ربط العمليات التجارية.
لإعداد النمط:
- إنشاء البنية الأساسية لمعالجة البيانات المتسلسلة
- إضافة خطوة معالجة الأخطاء العامة إلى نهاية البنية الأساسية لبرنامج ربط العمليات التجارية
- توصيل كل من مسارات UponFailure وUpnSkip من النشاط الأخير إلى نشاط معالجة الأخطاء
سيتم تشغيل الخطوة الأخيرة، معالجة الأخطاء العامة، فقط إذا فشل أي من الأنشطة السابقة. لن يتم تشغيله إذا نجحوا جميعا.
يمكنك إضافة أنشطة متعددة لمعالجة الأخطاء.