جدولة مهام سير العمل وتنسيقها

تحتوي Databricks Workflows على أدوات تسمح لك بجدولة مهام معالجة البيانات وتنسيقها على Azure Databricks. يمكنك استخدام مهام سير عمل Databricks لتكوين وظائف Databricks.

تقدم هذه المقالة المفاهيم والخيارات المتعلقة بإدارة أحمال عمل الإنتاج باستخدام وظائف Databricks.

ما هي وظائف Databricks؟

الوظيفة هي الوحدة الأساسية لجدولة أحمال عمل الإنتاج وتنسيقها على Azure Databricks. تتكون الوظائف من مهمة واحدة أو أكثر. تسمح لك المهام والمهام معا بتكوين ونشر ما يلي:

  • منطق مخصص، بما في ذلك Spark وSQL وOSS Python وML والرمز العشوائي.
  • حساب الموارد مع البيئات والمكتبات المخصصة.
  • الجداول والمشغلات لتشغيل أحمال العمل.
  • منطق شرطي لتدفق التحكم بين المهام.

توفر الوظائف نهجا إجرائيا لتحديد العلاقات بين المهام. توفر خطوط أنابيب Delta Live Tables نهجا تعريفيا لتعريف العلاقات بين مجموعات البيانات والتحويلات. يمكنك تضمين خطوط أنابيب Delta Live Tables كمهمة في مهمة. راجع مهمة البنية الأساسية لبرنامج ربط العمليات التجارية Delta Live Tables للوظائف.

يمكن أن تختلف الوظائف من حيث التعقيد من مهمة واحدة تقوم بتشغيل دفتر ملاحظات Databricks إلى آلاف المهام التي تعمل بمنطق وتبعيات شرطية.

كيف يمكنني تكوين الوظائف وتشغيلها؟

يمكنك إنشاء وظيفة وتشغيلها باستخدام واجهة مستخدم الوظائف أو Databricks CLI أو عن طريق استدعاء واجهة برمجة تطبيقات الوظائف. باستخدام واجهة المستخدم أو واجهة برمجة التطبيقات، يمكنك إصلاح مهمة فاشلة أو ملغاة وإعادة تشغيلها. يمكنك مراقبة نتائج تشغيل المهمة باستخدام واجهة المستخدم وCLI وواجهة برمجة التطبيقات والإعلامات (على سبيل المثال، البريد الإلكتروني أو وجهة خطاف الويب أو إعلامات Slack).

إذا كنت تفضل نهج البنية الأساسية كتعليمية (IaC) لتكوين مهامك وتنسيقها، فاستخدم Databricks Asset Bundles (DABs). يمكن أن تحتوي الحزم على تعريفات YAML للوظائف والمهام، وتتم إدارتها باستخدام Databricks CLI، ويمكن مشاركتها وتشغيلها في مساحات عمل مستهدفة مختلفة (مثل التطوير والتقسيم المرحلي والإنتاج). للتعرف على استخدام DABs لتكوين مهامك وتنسيقها، راجع Databricks Asset Bundles.

لمعرفة المزيد حول استخدام Databricks CLI، راجع ما هو Databricks CLI؟. للتعرف على استخدام واجهة برمجة تطبيقات الوظائف، راجع واجهة برمجة تطبيقات الوظائف.

ما هو الحد الأدنى للتكوين المطلوب لوظيفة ما؟

تتطلب جميع الوظائف على Azure Databricks ما يلي:

  • التعليمات البرمجية المصدر (مثل دفتر ملاحظات Databricks) التي تحتوي على منطق ليتم تشغيله.
  • مورد حساب لتشغيل المنطق. يمكن أن يكون مورد الحوسبة حسابا بلا خادم أو حساب مهام كلاسيكي أو حسابا لجميع الأغراض. راجع تكوين الحساب للوظائف.
  • جدول زمني محدد لوقت تشغيل المهمة. اختياريا، يمكنك حذف إعداد جدول زمني وتشغيل المهمة يدويا.
  • اسم فريد.

إشعار

إذا قمت بتطوير التعليمات البرمجية الخاصة بك في دفاتر ملاحظات Databricks، يمكنك استخدام الزر Schedule لتكوين دفتر الملاحظات هذا كوظيفة. راجع إنشاء مهام دفتر الملاحظات المجدولة وإدارتها.

ما هي المهمة؟

تمثل المهمة وحدة من المنطق ليتم تشغيلها كخطوة في مهمة. يمكن أن تتراوح المهام في التعقيد ويمكن أن تتضمن ما يلي:

  • دفتر ملاحظات
  • جرة
  • استعلامات SQL
  • مسار DLT
  • وظيفة أخرى
  • التحكم في مهام التدفق

يمكنك التحكم في ترتيب تنفيذ المهام عن طريق تحديد التبعيات بينها. يمكنك تكوين المهام للتشغيل بالتسلسل أو بالتوازي.

تتفاعل المهام مع معلومات الحالة وبيانات التعريف للمهام، ولكن يتم عزل نطاق المهمة. يمكنك استخدام قيم المهام لمشاركة السياق بين المهام المجدولة. راجع استخدام قيم المهام لتمرير المعلومات بين المهام.

ما هي خيارات تدفق التحكم المتوفرة للوظائف؟

عند تكوين الوظائف والمهام في الوظائف، يمكنك تخصيص الإعدادات التي تتحكم في كيفية تشغيل الوظيفة بأكملها والمهام الفردية. وهذه الخيارات هي:

أنواع المشغلات

يجب تحديد نوع مشغل عند تكوين وظيفة. يمكنك الاختيار من بين أنواع المشغلات التالية:

يمكنك أيضا اختيار تشغيل وظيفتك يدويا، ولكن هذا محجوز بشكل أساسي لحالات استخدام معينة مثل:

  • يمكنك استخدام أداة تنسيق خارجية لتشغيل المهام باستخدام استدعاءات واجهة برمجة تطبيقات REST.
  • لديك وظيفة نادرا ما تعمل وتتطلب تدخلا يدويا للتحقق من الصحة أو حل مشكلات جودة البيانات.
  • أنت تقوم بتشغيل حمل عمل يحتاج فقط إلى التشغيل مرة واحدة أو عدة مرات، مثل الترحيل.

راجع أنواع المشغلات لوظائف Databricks.

إعادة المحاولات

تحدد عمليات إعادة المحاولة عدد المرات التي يجب إعادة تشغيل مهمة معينة إذا فشلت المهمة مع ظهور رسالة خطأ. غالبا ما تكون الأخطاء عابرة ويتم حلها من خلال إعادة التشغيل. تفترض بعض الميزات على Azure Databricks، مثل تطور المخطط مع Structured Streaming، أنك تقوم بتشغيل المهام مع إعادة المحاولة لإعادة تعيين البيئة والسماح لسير العمل بالمتابعة.

إذا قمت بتحديد عمليات إعادة المحاولة لمهمة ما، فستتم إعادة تشغيل المهمة حتى العدد المحدد من المرات إذا واجهت خطأ. لا تدعم كافة تكوينات الوظائف إعادة محاولة المهمة. راجع تعيين نهج إعادة المحاولة.

عند التشغيل في وضع المشغل المستمر، يعيد Databricks المحاولة تلقائيا مع التراجع الأسي. راجع كيف تتم معالجة حالات الفشل للمهام المستمرة؟.

تشغيل إذا كانت المهام الشرطية

يمكنك استخدام نوع المهمة Run if لتحديد الشروط للمهام اللاحقة استنادا إلى نتيجة المهام الأخرى. يمكنك إضافة مهام إلى وظيفتك وتحديد المهام المعتمدة على المصدر. استنادا إلى حالة هذه المهام، يمكنك تكوين مهمة واحدة أو أكثر من مهام انتقال البيانات من الخادم لتشغيلها. تدعم الوظائف التبعيات التالية:

  • الكل نجح
  • نجح واحد على الأقل
  • فشل بلا
  • تم كل شيء
  • فشل واحد على الأقل
  • فشل الكل

راجع تكوين تبعيات المهام

المهام الشرطية If/else

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

تدعم taskValues الوظائف التي تحددها في منطقك وتسمح لك بإرجاع نتائج بعض الحسابات أو الحالة من مهمة إلى بيئة الوظائف. يمكنك تحديد شروط If/else مقابل taskValuesأو معلمات الوظيفة أو القيم الديناميكية.

يدعم Azure Databricks المعاملات التالية للمعاملات الشرطية:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

راجع أيضًا:

لكل مهمة

For each استخدم المهمة لتشغيل مهمة أخرى في حلقة، لتمرير مجموعة مختلفة من المعلمات إلى كل تكرار للمهمة.

For each تتطلب إضافة المهمة إلى مهمة تحديد مهمتين: For each المهمة والمهمة المتداخلة. المهمة المتداخلة هي المهمة التي يجب تشغيلها لكل تكرار للمهمة For each وهي أحد أنواع مهام مهام Databricks القياسية. يتم دعم أساليب متعددة لتمرير المعلمات إلى المهمة المتداخلة.

راجع تشغيل مهمة مهمة Azure Databricks ذات معلمات في حلقة.

حد المدة

يمكنك تحديد حد مدة لإرسال تحذير أو إيقاف مهمة أو مهمة إذا تم تجاوز مدة محددة. تتضمن أمثلة الوقت الذي قد ترغب في تكوين هذا الإعداد ما يلي:

  • لديك مهام عرضة للتعثر في حالة تعليق.
  • يجب تحذير مهندس إذا تم تجاوز اتفاقية مستوى الخدمة لسير العمل.
  • لتجنب التكاليف غير المتوقعة، تريد فشل مهمة تم تكوينها باستخدام مجموعة كبيرة.

راجع تكوين وقت إكمال متوقع أو مهلة لوظيفة وتكوين وقت إكمال متوقع أو مهلة لمهمة.

التزامن

يتم تكوين معظم المهام مع التزامن الافتراضي لوظيفة واحدة متزامنة. وهذا يعني أنه إذا لم يكتمل تشغيل مهمة سابقة بحلول الوقت الذي يجب تشغيل وظيفة جديدة، يتم تخطي تشغيل الوظيفة التالية.

توجد بعض حالات الاستخدام لزيادة التزامن، ولكن معظم أحمال العمل لا تتطلب تغيير هذا الإعداد.

لمزيد من المعلومات حول تكوين التزامن، راجع قائمة انتظار وظائف Databricks وإعدادات التزامن.

كيف يمكنني مراقبة الوظائف؟

تتيح لك واجهة مستخدم الوظائف رؤية عمليات تشغيل الوظائف، بما في ذلك عمليات التشغيل قيد التقدم. راجع مراقبة ومراقبة وظائف Databricks.

يمكنك تلقي إعلامات عند بدء مهمة أو مهمة أو اكتمالها أو فشلها. يمكنك إرسال إعلامات إلى عنوان بريد إلكتروني واحد أو أكثر أو وجهات النظام. راجع إضافة إعلامات البريد الإلكتروني والنظام لأحداث الوظيفة.

تتضمن جداول النظام مخططا lakeflow حيث يمكنك عرض السجلات المتعلقة بنشاط الوظيفة في حسابك. راجع مرجع جدول نظام الوظائف.

يمكنك أيضا ربط جداول نظام الوظائف بجداول الفوترة لمراقبة تكلفة الوظائف عبر حسابك. راجع مراقبة تكاليف الوظائف باستخدام جداول النظام.

القيود

توجد القيود التالية:

  • تقتصر مساحة العمل على 2000 تشغيل مهمة متزامنة. 429 Too Many Requests يتم إرجاع استجابة عند طلب تشغيل لا يمكن بدء تشغيله على الفور.
  • يقتصر عدد المهام التي يمكن لمساحة العمل إنشاؤها في ساعة على 10000 (بما في ذلك "إرسال عمليات التشغيل"). يؤثر هذا الحد أيضا على المهام التي تم إنشاؤها بواسطة واجهة برمجة تطبيقات REST ومهام سير عمل دفتر الملاحظات.
  • يمكن أن تحتوي مساحة العمل على ما يصل إلى 12000 وظيفة محفوظة.
  • يمكن أن تحتوي الوظيفة على ما يصل إلى 100 مهمة.

هل يمكنني إدارة مهام سير العمل برمجيا؟

تحتوي Databricks على أدوات وواجهات برمجة تطبيقات تسمح لك بجدولة مهام سير العمل وتنسيقها برمجيا، بما في ذلك ما يلي:

لمزيد من المعلومات حول أدوات المطور، راجع أدوات المطور.

تزامن سير العمل مع Apache AirFlow

يمكنك استخدام Apache Airflow لإدارة مهام سير عمل البيانات وجدولتها. باستخدام Airflow، يمكنك تحديد سير العمل الخاص بك في ملف Python، ويدير Airflow جدولة سير العمل وتشغيله. راجع تنسيق وظائف Azure Databricks باستخدام Apache Airflow.

تزامن سير العمل مع Azure Data Factory

Azure Data Factory (ADF) هي خدمة تكامل بيانات سحابية تتيح لك إنشاء خدمات تخزين البيانات ونقلها ومعالجتها في مسارات البيانات التلقائية. يمكنك استخدام ADF لتنسيق مهمة Azure Databricks كجزء من مسار ADF.

لمعرفة كيفية تشغيل وظيفة باستخدام نشاط ويب ADF، بما في ذلك كيفية المصادقة على Azure Databricks من ADF، راجع الاستفادة من تنسيق مهام Azure Databricks من Azure Data Factory.

يحتوي ADF أيضا على دعم مضمن لتشغيل دفاتر ملاحظات Databricks أو برامج Python النصية أو التعليمات البرمجية المحزمة في JARs في مسار ADF.

لمعرفة كيفية تشغيل دفتر ملاحظات Databricks في مسار ADF، راجع تشغيل دفتر ملاحظات Databricks مع نشاط دفتر ملاحظات Databricks في Azure Data Factory، متبوعا بتحويل البيانات عن طريق تشغيل دفتر ملاحظات Databricks.

لمعرفة كيفية تشغيل برنامج نصي Python في مسار ADF، راجع تحويل البيانات عن طريق تشغيل نشاط Python في Azure Databricks.

لمعرفة كيفية تشغيل التعليمات البرمجية المحزمة في JAR في مسار ADF، راجع تحويل البيانات عن طريق تشغيل نشاط JAR في Azure Databricks.