تشغيل المهام بشكل مشروط في مهمة Azure Databricks
بشكل افتراضي، يتم تشغيل مهمة مهمة عند تشغيل تبعياتها ونجحت كلها، ولكن يمكنك أيضا تكوين المهام في مهمة Azure Databricks للتشغيل فقط عند استيفاء شروط محددة. تدعم وظائف Azure Databricks الطرق التالية لتشغيل المهام بشكل مشروط:
- يمكنك تحديد Run if dependencies لتشغيل مهمة استنادا إلى حالة تشغيل تبعيات المهمة. على سبيل المثال، يمكنك استخدام
Run if
لتشغيل مهمة حتى عندما تفشل بعض تبعياتها أو كلها، مما يسمح لمهمتك بالتعافي من حالات الفشل ومتابعة التشغيل. - يتم استخدام مهمة شرط If/else لتشغيل جزء من مهمة DAG استنادا إلى نتائج تعبير منطقي.
If/else condition
تسمح لك المهمة بإضافة منطق تفريع إلى وظيفتك. على سبيل المثال، قم بتشغيل مهام التحويل فقط إذا كانت مهمة الاستيعاب المصدر تضيف بيانات جديدة. وإلا، قم بتشغيل مهام معالجة البيانات.
Run if
إضافة شرط مهمة
يمكنك تكوين Run if
شرط عند تحرير مهمة باستخدام تبعية واحدة أو أكثر. لإضافة الشرط إلى المهمة، حدد الشرط من القائمة المنسدلة Run if dependencies في تكوين المهمة. Run if
يتم تقييم الشرط بعد إكمال كافة تبعيات المهام. يمكنك أيضا إضافة Run if
شرط عند إضافة مهمة جديدة مع تبعية واحدة أو أكثر.
Run if
خيارات الشرط
يمكنك إضافة الشروط التالية Run if
إلى مهمة:
- الكل نجح: تم تشغيل جميع التبعيات ونجحت. هذا هو الشرط الافتراضي لتشغيل مهمة. يتم وضع علامة على المهمة كما
Upstream failed
لو لم يتم استيفاء الشرط. - نجح واحد على الأقل: نجحت تبعية واحدة على الأقل. يتم وضع علامة على المهمة كما
Upstream failed
لو لم يتم استيفاء الشرط. - فشل بلا: فشل أي من التبعيات، وتم تشغيل تبعية واحدة على الأقل. يتم وضع علامة على المهمة كما
Upstream failed
لو لم يتم استيفاء الشرط. - تم كل شيء: يتم تشغيل المهمة بعد تشغيل جميع تبعياتها، بغض النظر عن حالة عمليات التشغيل التابعة. يسمح لك هذا الشرط بتعريف مهمة يتم تشغيلها دون الاعتماد على نتيجة المهام التابعة لها.
- فشل واحد على الأقل: فشلت تبعية واحدة على الأقل. يتم وضع علامة على المهمة كما
Excluded
لو لم يتم استيفاء الشرط. - فشل الكل: فشلت كافة التبعيات. يتم وضع علامة على المهمة كما
Excluded
لو لم يتم استيفاء الشرط.
إشعار
- يتم وضع علامة على المهام التي تم تكوينها للتعامل مع حالات الفشل كما
Excluded
لو لم يتم استيفاء شرطهاRun if
. يتم تخطي المهام المستبعدة ويتم التعامل معها على أنها ناجحة. - إذا تم استبعاد كافة تبعيات المهام، يتم استبعاد المهمة أيضا، بغض النظر عن حالتها
Run if
. - إذا قمت بإلغاء تشغيل مهمة، يتم نشر الإلغاء من خلال مهام انتقال البيانات من الخادم، ويتم تشغيل المهام التي
Run if
لها شرط يعالج الفشل، على سبيل المثال، للتحقق من تشغيل مهمة تنظيف عند إلغاء تشغيل مهمة.
كيف تحدد وظائف Azure Databricks حالة تشغيل الوظيفة؟
تحدد وظائف Azure Databricks ما إذا كان تشغيل الوظيفة ناجحا بناء على نتيجة المهام الطرفية للوظيفة. المهمة الطرفية هي مهمة لا تحتوي على تبعيات انتقال البيانات من الخادم. يمكن أن يكون لتشغيل الوظيفة إحدى النتائج الثلاث:
- تم النجاح: كل المهام كانت ناجحة.
- نجحت مع حالات الفشل: فشلت بعض المهام، ولكن كافة المهام الطرفية كانت ناجحة.
- فشل: فشلت مهمة طرفية واحدة أو أكثر.
إضافة منطق تفريع إلى وظيفتك مع If/else condition
المهمة
If/else condition
استخدم المهمة لتشغيل جزء من مهمة DAG استنادا إلى تعبير منطقي. يتكون التعبير من عامل تشغيل منطقي وزوج من المعاملات، حيث قد تشير المعاملات إلى مهمة أو حالة مهمة باستخدام متغيرات معلمات المهمة والمهمة أو استخدام قيم المهمة.
إشعار
- تتم معالجة القيم الرقمية وغير الرقمية بشكل مختلف اعتمادا على عامل التشغيل المنطقي:
- يقوم
==
عاملا التشغيل و!=
بإجراء مقارنة سلسلة للمعاملات الخاصة بهم. على سبيل المثال،12.0 == 12
يتم تقييم إلى خطأ. >
>=
تقوم عوامل التشغيل و و<=
بإجراء مقارنات رقمية للمعاملات الخاصة بها. على سبيل المثال،12.0 >= 12
يتم تقييمها إلى true، ويتم10.0 >= 12
تقييمها إلى false.- يسمح فقط بالقيم الرقمية والسلسلة والقيم المنطقية عند الإشارة إلى قيم المهام في معامل. ستؤدي أي أنواع أخرى إلى فشل تعبير الشرط. يتم تسلسل أنواع القيم غير الرقمية إلى سلاسل ويتم التعامل معها كسلاسل في
If/else condition
التعبيرات. على سبيل المثال، إذا تم تعيين قيمة مهمة إلى قيمة منطقية، يتم تسلسلها إلى"true"
أو"false"
.
- يقوم
يمكنك إضافة If/else condition
مهمة عند إنشاء مهمة أو تحرير مهمة في مهمة موجودة. لتكوين If/else condition
مهمة:
- في القائمة المنسدلة النوع ، حدد
If/else condition
. - في مربع النص الشرط الأول، أدخل المعامل الذي سيتم تقييمه. يمكن للمعامل الرجوع إلى متغير معلمة مهمة أو مهمة أو قيمة مهمة.
- حدد عامل تشغيل منطقي من القائمة المنسدلة.
- في مربع النص الشرط الثاني، أدخل قيمة تقييم الشرط.
لتكوين التبعيات على مهمة If/else condition
:
If/else condition
حدد المهمة في طريقة عرض DAG وانقر فوق + إضافة مهمة.- بعد إدخال تفاصيل المهمة، انقر فوق يعتمد على وحدد
<task-name> (true)
مكان<task-name>
اسمIf/else condition
المهمة. - كرر الإجراء لتقييم الشرط إلى
false
.
على سبيل المثال، افترض أن لديك مهمة تسمى process_records
تحتفظ بعدد السجلات غير الصالحة في قيمة مسماة bad_records
، وتريد معالجة الفروع استنادا إلى ما إذا كان يتم العثور على السجلات غير الصالحة. لإضافة هذا المنطق إلى سير العمل الخاص بك، يمكنك إنشاء If/else condition
مهمة بتعبير مثل {{tasks.process_records.values.bad_records}} > 0
. يمكنك بعد ذلك إضافة مهام تابعة استنادا إلى نتائج الشرط.
بعد اكتمال تشغيل مهمة تحتوي على If/else condition
مهمة، يمكنك عرض نتيجة التعبير وتفاصيل تقييم التعبير عند عرض تفاصيل تشغيل الوظيفة في واجهة المستخدم.