محتويات الدورة

Apache Airflow / الأساسي: التعريفات والفترات وتنفيذ المهام الآمن / الدرس 1

التنسيق وDAG وبنية Airflow

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

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح الفرق بين تعريف DAG وتشغيلة DAG ونسخة المهمة.
  • تحديد مسؤوليات التأليف والجدولة والتنفيذ والحالة.

تنسيق عمل محدود بعلاقات اعتماد

يمثل Airflow سير العمل بمهام تربطها اعتمادات. قد يتحقق تقرير طرود يومي اصطناعي من بيان المدخلات، ثم يلخص الصفوف وينشر مؤشر التقرير. يقرر Airflow أهلية نسخ المهام ويسجل حالتها، لكنه لا يتحقق تلقائياً من صحة التقرير التجارية. قد تنفذ المهمة Python أو تفوض عملية لنظام آخر. حدد وحدة عمل منتهية وناتجاً قابلاً للرصد قبل رسم الأسهم. تختلف حلقة مستهلك أحداث تعمل دائماً عن مهمة تقرير محدودة، ولا ينبغي إخفاء الأولى بوصفها دفعة يومية عادية.

التعريف ليس تنفيذاً واحداً

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

فحص هوية تنفيذ اصطناعية

يعرف JSON مهمة تحقق واحدة غير موزعة في تشغيلة اصطناعية. يميز try_number محاولة تنفيذ عن النسخة المنطقية، ولا ينبغي جعله معرف قسم العمل للمخرجات الدائمة. معرف التشغيلة تسمية، لا دليل على أن الجدول اشتغل فعلاً. قد تعالج تشغيلة يدوية فترة معلنة أيضاً، لكن فقط إذا دعم عقد مدخلات المهمة ذلك. افصل تاريخ العمل عن تاريخ الجهاز الحالي. يجعل هذا الفصل الملء التاريخي والمحاولات قابلين للمراجعة، دون استنتاج نطاق البيانات المقصود من طابع زمني في سجل العامل.

json سياق نسخة مهمة اصطناعية
{"dag_id":"lab_parcel_report","run_id":"lab-run-2026-10-01","task_id":"validate","map_index":-1,"try_number":1}

تميز المعرفات سير العمل والتشغيلة والمهمة والمحاولة؛ ولا تثبت حدوث تنفيذ Airflow.

تتبع مسار التحكم دون تشغيل خدمات

تكتشف معالجة DAG التعريفات وتسلسلها، وتحدد الجدولة العمل المؤهل، ويربط المنفذ القرار بالتنفيذ، ويشغل العمال المهام وفق نموذج النشر. يفصل Airflow 3 تنفيذ المهام عبر Task SDK العامة وواجهات التنفيذ، بدلاً من السماح لشفرة المهمة بتعديل قاعدة التنسيق مباشرة. يدعم خادم API واجهات التطبيق، وتحفظ قاعدة البيانات حالة التنسيق. يلزم triggerer عندما تستخدم مشغلات مؤجلة. تعتمد التفاصيل على المنفذ والمزود؛ فلا يمثل رسم جهاز واحد بنية إنتاج عامة، ولا يبرر ربط المهام بافتراض نظام ملفات محلي مشترك.

فحص اتجاه الاعتماد المعلن

يسجل المثال المحلي validate قبل summarize ثم publish. ويفحص الترتيب المعطى وتفرد أسماء المراحل فقط؛ وليس كاشف دورات كاملاً أو مجدول Airflow. غرضه توضيح اعتماد العمل قبل صياغة الإطار. إذا فشل التحقق، فنشر تقرير على أنه متحقق يخالف العقد حتى لو سمحت قاعدة تشغيل متساهلة بذلك. يعتمد المقرر وثائق Airflow 3.1.0 ولا يشغل خادم API أو مجدولاً أو منفذاً أو قاعدة تنسيق. تبقى أمثلة الإطار غير قابلة للتنفيذ حتى تتوفر بيئة مستقلة متوافقة مصرح بها.

python فحص محلي لترتيب الاعتماد
stages = ['validate', 'summarize', 'publish']
assert len(stages) == len(set(stages))
assert stages.index('validate') < stages.index('summarize') < stages.index('publish')
print('validate -> summarize -> publish')
الناتج المتوقع
validate -> summarize -> publish

ينجح التسلسل المعلن؛ ولا تحاكى جدولة أو انتقال حالة.

الأخطاء الشائعة وإصلاحها

استخدام معرف المهمة وحده لتعريف حادث.

لماذا يحدث؟
دمج التشغيلات والمحاولات في التعريف القابل للتكرار.
كيف تصلحه؟
اجمع سياق DAG والتشغيلة والمهمة وفهرس التوزيع والمحاولة.
كيف تتجنب تكراره؟
وحد هوية التنفيذ في السجلات والآثار.

توقع مهمة لاحقة ملفاً تركه عامل آخر.

لماذا يحدث؟
اعتبار التنفيذ الموزع عملية مشتركة واحدة.
كيف تصلحه؟
استخدم موقع آثار مشتركاً مراجعاً وعقد مؤشر صغيراً.
كيف تتجنب تكراره؟
اختبر عزل المهام وافتراضات الإعادة.

اعتبار نجاح المهمة دليلاً على صحة التقرير دون تحقق.

لماذا يحدث؟
استبدال قبول العمل بحالة التنفيذ.
كيف تصلحه؟
حدد قواعد التقرير وافحصها قبل النشر.
كيف تتجنب تكراره؟
احفظ دليل القبول مع الناتج.

اختبر فهمك

1. هل تمثل validate في معرفي تشغيلتين مختلفتين نسخة المهمة نفسها؟

اعرض الحل المشروح

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

2. لماذا لا يثبت تأكيد ترتيب المراحل قدرة Airflow على التعافي من عطل عامل؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • افصل التعريف القابل للتكرار عن أدلة التشغيلة والمحاولة.
  • تحتاج حالة التنسيق وصحة العمل فحوصاً مختلفة.

المراجع الرسمية