Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך להפעיל תמיכה באופרטורים שניתן לדחות בסביבה שלכם, ואיך להשתמש באופרטורים שניתן לדחות ב-DAGs. Google Cloud
מידע על Deferrable Operators ב-Managed Airflow
אם יש לכם לפחות מופע אחד של מפעיל (או לפחות שניים בסביבות עמידות במיוחד), תוכלו להשתמש במפעילים ובטריגרים שניתנים להשהיה ב-DAG.
עבור אופרטורים שניתן לדחות, Airflow מפצל את ביצוע המשימה לשלבים הבאים:
מתחילים את הפעולה. בשלב הזה, המשימה תופסת משבצת של עובד Airflow. המשימה מבצעת פעולה שמקצה את העבודה לשירות אחר.
לדוגמה, הפעלת משימה ב-BigQuery יכולה להימשך כמה שניות עד כמה שעות. אחרי שיוצרים את המשימה, הפעולה מעבירה את מזהה העבודה (מזהה המשימה ב-BigQuery) לטריגר של Airflow.
הטריגר עוקב אחרי העבודה עד שהיא מסתיימת. בשלב הזה, משבצת של עובד לא מאוכלסת. ל-Airflow triggerer יש ארכיטקטורה אסינכרונית, והוא יכול לטפל במאות משימות כאלה. כשהטריגר מזהה שהעבודה הסתיימה, הוא שולח אירוע שמפעיל את השלב האחרון.
בשלב האחרון, תהליך עבודה של Airflow מפעיל קריאה חוזרת. לדוגמה, הפונקציה הזו יכולה לסמן את המשימה כהצלחה, או להפעיל פעולה אחרת ולהגדיר את העבודה כך שהטריגר ינטר אותה שוב.
הטריגר הוא בלי שמירת מצב ולכן הוא עמיד בפני הפרעות או הפעלות מחדש. לכן, עבודות שפועלות לאורך זמן עמידות להפעלות מחדש של פודים, אלא אם ההפעלה מחדש מתרחשת בשלב האחרון, שאמור להיות קצר.
לפני שמתחילים
ב-Managed Airflow (דור 2), כדי להשתמש ב-Deferrable Operators וב-Sensors צריך:
- Managed Service for Apache Airflow בגרסה 2.0.31 ואילך
- Airflow 2.2.5, 2.3.3 וגרסאות מאוחרות יותר
הפעלת תמיכה באופרטורים שניתן לדחות
רכיב סביבה שנקרא 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 |
Managed Service for Apache Spark operators
| שם המפעיל | גרסה נדרשת apache-airflow-providers-google |
|---|---|
| DataprocCreateClusterOperator | 8.9.0 |
| DataprocDeleteClusterOperator | 8.9.0 |
| DataprocJobBaseOperator | 8.4.0 |
| DataprocInstantiateWorkflowTemplateOperator | 9.0.0 |
| DataprocInstantiateInlineWorkflowTemplateOperator | 10.1.0 |
| DataprocSubmitJobOperator | 8.4.0 |
| DataprocUpdateClusterOperator | 8.9.0 |
| DataprocDiagnoseClusterOperator | 11.0.0 |
| DataprocCreateBatchOperator | 8.9.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 של הסביבה.