שימוש באופרטורים שניתן לדחות ב-DAG של Airflow

Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)

בדף הזה מוסבר איך להפעיל תמיכה באופרטורים שניתן לדחות בסביבה שלכם, ואיך להשתמש באופרטורים שניתן לדחות ב-DAGs. Google Cloud

מידע על הפעלת פעולות שניתן לדחות ב-Managed Airflow

אם יש לכם לפחות מופע אחד של מפעיל (או לפחות שניים בסביבות עמידות במיוחד), תוכלו להשתמש במפעילים ובטריגרים שניתנים להשהיה ב-DAG.

עבור אופרטורים שניתן לדחות, Airflow מפצל את ביצוע המשימה לשלבים הבאים:

  1. מתחילים את הפעולה. בשלב הזה, המשימה תופסת משבצת של עובד Airflow. המשימה מבצעת פעולה שמקצה את העבודה לשירות אחר.

    לדוגמה, הפעלת משימה ב-BigQuery יכולה להימשך כמה שניות עד כמה שעות. אחרי שיוצרים את המשימה, הפעולה מעבירה את מזהה העבודה (מזהה המשימה ב-BigQuery) לטריגר של Airflow.

  2. הטריגר עוקב אחרי העבודה עד שהיא מסתיימת. בשלב הזה, משבצת של עובד לא מאוכלסת. ל-Airflow triggerer יש ארכיטקטורה אסינכרונית, והוא יכול לטפל במאות משימות כאלה. כשהטריגר מזהה שהעבודה הסתיימה, הוא שולח אירוע שמפעיל את השלב האחרון.

  3. בשלב האחרון, תהליך עבודה של Airflow מפעיל קריאה חוזרת. לדוגמה, הפונקציה הזו יכולה לסמן את המשימה כהצלחה, או להפעיל פעולה אחרת ולהגדיר את העבודה כך שהטריגר ינטר אותה שוב.

הטריגר הוא בלי שמירת מצב ולכן הוא עמיד בפני הפרעות או הפעלות מחדש. לכן, עבודות שפועלות לאורך זמן עמידות להפעלות מחדש של פודים, אלא אם ההפעלה מחדש מתרחשת בשלב האחרון, שאמור להיות קצר.

לפני שמתחילים

הפעלת תמיכה באופרטורים שניתן לדחות

רכיב סביבה שנקרא Airflow triggerer עוקב באופן אסינכרוני אחרי כל המשימות שנדחו בסביבה. אחרי שפעולה מושהית ממשימה כזו מסתיימת, המפעיל מעביר את המשימה לעובד של Airflow.

כדי להשתמש במצב שאפשר לדחות בו את ההפעלה ב-DAG, צריך לפחות מופע אחד של מפעיל בסביבה (או לפחות שניים בסביבות עם חוסן גבוה). אפשר להגדיר את הטריגרים כשיוצרים סביבה או לשנות את מספר הטריגרים ואת פרמטרי הביצועים של סביבה קיימת.

אופרטורים שלGoogle Cloud שתומכים במצב שאפשר לדחות

רק חלק מהאופרטורים של Airflow הורחבו כדי לתמוך במודל הניתן להשהיה. הרשימה הבאה היא רשימת העזר של האופרטורים בחבילה apache-airflow-providers-google שתומכים במצב ההשהיה. העמודה עם גרסת החבילה המינימלית הנדרשת של apache-airflow-providers-google מייצגת את גרסת החבילה הכי מוקדמת שבה האופרטור הזה תומך במצב שניתן להשהיה.

אופרטורים של BigQuery

שם המפעיל גרסה נדרשת apache-airflow-providers-google
BigQueryCheckOperator 8.4.0
BigQueryValueCheckOperator 8.4.0
BigQueryIntervalCheckOperator 8.4.0
BigQueryGetDataOperator 8.4.0
BigQueryInsertJobOperator 8.4.0

אופרטורים של שירות העברת נתונים ל-BigQuery

שם המפעיל גרסה נדרשת apache-airflow-providers-google
BigQueryDataTransferServiceStartTransferRunsOperator 8.9.0

אופרטורים של פעולות בחבילה

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudBatchSubmitJobOperator 10.7.0

אופרטורים של Cloud Build

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudBuildCreateBuildOperator 8.7.0

Managed Service for Apache Airflow operators

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudComposerCreateEnvironmentOperator 6.4.0
CloudComposerDeleteEnvironmentOperator 6.4.0
CloudComposerUpdateEnvironmentOperator 6.4.0
CloudComposerRunAirflowCLICommandOperator 11.0.0

אופרטורים של Cloud Run

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudRunExecuteJobOperator 10.7.0

אופרטורים של Cloud SQL

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudSQLExportInstanceOperator 10.3.0

מפעילים של Storage Transfer Service

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudDataTransferServiceS3ToGCSOperator 14.0.0
CloudDataTransferServiceGCSToGCSOperator 14.0.0

אופרטורים של Dataflow

שם המפעיל גרסה נדרשת apache-airflow-providers-google
DataflowTemplatedJobStartOperator 8.9.0
DataflowStartFlexTemplateOperator 8.9.0
DataflowStartYamlJobOperator 11.0.0

אופרטורים של Cloud Data Fusion

שם המפעיל גרסה נדרשת apache-airflow-providers-google
CloudDataFusionStartPipelineOperator 8.9.0

אופרטורים של Knowledge Catalog

שם המפעיל גרסה נדרשת apache-airflow-providers-google
DataplexRunDataQualityScanOperator 10.8.0
DataplexGetDataQualityScanResultOperator 10.8.0
DataplexRunDataProfileScanOperator 11.0.0

Google Kubernetes Engine operators

שם המפעיל גרסה נדרשת apache-airflow-providers-google
GKEDeleteClusterOperator 9.0.0
GKECreateClusterOperator 9.0.0
GKEStartPodOperator 12.0.0
GKEStartJobOperator 11.0.0

אופרטורים של Pub/Sub

שם המפעיל גרסה נדרשת apache-airflow-providers-google
PubSubPullOperator 14.0.0

מפעילים של AI Platform

שם המפעיל גרסה נדרשת apache-airflow-providers-google
MLEngineStartTrainingJobOperator 8.9.0

שימוש באופרטורים שניתנים להשהיה ב-DAG

מוסכמה נפוצה לכל האופרטורים Google Cloud היא להפעיל את מצב ההשהיה באמצעות הפרמטר הבוליאני deferrable. אם לאופרטור מסוים אין את הפרמטר הזה, הוא לא יכול לפעול במצב שניתן לדחייה. Google Cloudלפעמים יש מוסכמות שונות לאופרטורים אחרים. לדוגמה, לחלק ממפעילי הקהילות יש מחלקה נפרדת עם הסיומת Async בשם.

בדוגמה הבאה של DAG נעשה שימוש באופרטור DataprocSubmitJobOperator במצב deferrable:

PYSPARK_JOB = {
    "reference": { "project_id": "PROJECT_ID" },
    "placement": { "cluster_name": "PYSPARK_CLUSTER_NAME" },
    "pyspark_job": {
        "main_python_file_uri": "gs://dataproc-examples/pyspark/hello-world/hello-world.py"
    },
}

DataprocSubmitJobOperator(
        task_id="dataproc-deferrable-example",
        job=PYSPARK_JOB,
        deferrable=True,
    )

צפייה ביומנים של מפעיל הטריגר

הטריגר יוצר יומנים שזמינים יחד עם יומנים של רכיבים אחרים בסביבה. מידע נוסף על הצגת יומני הסביבה זמין במאמר הצגת יומנים.

מעקב אחר הגורם להפעלת הכלל

למידע נוסף על מעקב אחרי רכיב ההפעלה, ראו מדדים של Airflow.

בנוסף למעקב אחרי הגורם שהפעיל את התהליך, אפשר לבדוק את מספר המשימות שנדחו במדדים Unfinished Task בלוח הבקרה Monitoring של הסביבה.

המאמרים הבאים