تشغيل المهام بشكل مشروط في مهمة 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 مهمة:

  1. في القائمة المنسدلة النوع ، حدد If/else condition.
  2. في مربع النص الشرط الأول، أدخل المعامل الذي سيتم تقييمه. يمكن للمعامل الرجوع إلى متغير معلمة مهمة أو مهمة أو قيمة مهمة.
  3. حدد عامل تشغيل منطقي من القائمة المنسدلة.
  4. في مربع النص الشرط الثاني، أدخل قيمة تقييم الشرط.

لتكوين التبعيات على مهمة If/else condition :

  1. If/else condition حدد المهمة في طريقة عرض DAG وانقر فوق + إضافة مهمة.
  2. بعد إدخال تفاصيل المهمة، انقر فوق يعتمد على وحدد <task-name> (true) مكان <task-name> اسم If/else condition المهمة.
  3. كرر الإجراء لتقييم الشرط إلى false.

على سبيل المثال، افترض أن لديك مهمة تسمى process_records تحتفظ بعدد السجلات غير الصالحة في قيمة مسماة bad_records، وتريد معالجة الفروع استنادا إلى ما إذا كان يتم العثور على السجلات غير الصالحة. لإضافة هذا المنطق إلى سير العمل الخاص بك، يمكنك إنشاء If/else condition مهمة بتعبير مثل {{tasks.process_records.values.bad_records}} > 0. يمكنك بعد ذلك إضافة مهام تابعة استنادا إلى نتائج الشرط.

بعد اكتمال تشغيل مهمة تحتوي على If/else condition مهمة، يمكنك عرض نتيجة التعبير وتفاصيل تقييم التعبير عند عرض تفاصيل تشغيل الوظيفة في واجهة المستخدم.