Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך להעביר DAG, נתונים והגדרות מהסביבות הקיימות שלכם ב-Managed Airflow (Legacy Gen 1) וב-Airflow 2 אל Managed Airflow (Gen 3) ו-Airflow 2 באמצעות תמונות מצב.
מדריכים אחרים להעברת נתונים
| מאת | אל | Method | מדריך |
|---|---|---|---|
| Managed Airflow (דור 3), Airflow 2 | Managed Airflow (דור 3), Airflow 3 | העברה ידנית זה לצד זה | מדריך להעברה ידנית |
| Managed Airflow (דור 2) | Managed Airflow (דור 3) | זה לצד זה, באמצעות סקריפט ההעברה | מדריך להעברת סקריפטים |
| Managed Airflow (דור 2) | Managed Airflow (דור 3) | זו לצד זו, באמצעות תמונות מצב | מדריך להעברת תמונות מצב |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (דור 3) | זו לצד זו, באמצעות תמונות מצב | המדריך הזה |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (דור 2) | זו לצד זו, באמצעות תמונות מצב | מדריך להעברת תמונות מצב |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (דור 2) | העברה ידנית זה לצד זה | מדריך להעברה ידנית |
| Managed Airflow (דור 1 מדור קודם), Airflow 1 | Managed Airflow (דור 2), Airflow 2 | זו לצד זו, באמצעות תמונות מצב | מדריך להעברת תמונות מצב |
| Managed Airflow (דור 1 מדור קודם), Airflow 1 | Managed Airflow (דור 2), Airflow 2 | העברה ידנית זה לצד זה | מדריך להעברה ידנית |
| Managed Airflow (דור 1 מדור קודם), Airflow 1 | Managed Airflow (Legacy Gen 1), Airflow 2 | העברה ידנית זה לצד זה | מדריך להעברה ידנית |
לפני שמתחילים
ב-Managed Airflow יש תמיכה בהעברה זה לצד זה מ-Managed Airflow (Legacy Gen 1) אל Managed Airflow (Gen 3). אי אפשר לשדרג מ-Managed Airflow (Legacy Gen 1) ל-Managed Airflow (Gen 3) במקום.
אפשר לעיין ברשימת ההבדלים בין Managed Airflow (דור 1 מדור קודם), Managed Airflow (דור 2) ו-Managed Airflow (דור 3).
הגודל המקסימלי של מסד הנתונים של Airflow שתומך בתמונות מצב הוא 20GB. אם מסד הנתונים של הסביבה גדול מ-20GB, צריך להקטין את הגודל של מסד הנתונים של Airflow.
כדי ליצור תמונות מצב, המספר הכולל של האובייקטים בתיקיות
/dags,/pluginsו-/dataבדלי של הסביבה צריך להיות קטן מ-100,000.אם אתם משתמשים במנגנון XCom להעברת קבצים, חשוב לוודא שאתם משתמשים בו בהתאם להנחיות של Airflow. העברה של קבצים גדולים או של מספר גדול של קבצים באמצעות XCom משפיעה על הביצועים של מסד הנתונים של Airflow, ויכולה לגרום לכשלים בטעינת תמונות מצב או בשדרוג הסביבה. כדאי לשקול שימוש בחלופות כמו Cloud Storage להעברת נפחים גדולים של נתונים.
מוודאים שקובצי ה-DAG תואמים ל-Managed Airflow (דור 3)
כדי לוודא שקובצי ה-DAG תואמים ל-Managed Airflow (דור 3), כדאי לפעול לפי ההצעות הבאות:
יכול להיות ש[רשימת החבילות][cc-versions] בסביבת Managed Airflow (דור 3) תהיה שונה מרשימת החבילות בסביבת Managed Airflow (דור 1 מדור קודם). יכול להיות שהשינוי הזה ישפיע על התאימות של גרפי ה-DAG שלכם ל-Managed Airflow (דור 3).
Managed Airflow טוען החלפות של הגדרות, משתני סביבה וחבילות PyPI מהסביבה שלכם ב-Managed Airflow (דור קודם 1) אל Managed Airflow (דור 3) בלי לשנות או להתאים אותם לצורך תאימות. אם חבילות PyPI מותאמות אישית גורמות להתנגשויות בין יחסי תלות, אפשר לדלג על ההתקנה שלהן כשמטעינים את התמונה.
ב-Managed Airflow (דור 3), האשכול של הסביבה נמצא בפרויקט הדייר. חשוב לוודא שגרפי ה-DAG שלכם תואמים לשינוי הזה. בפרט, עומסי העבודה של
KubernetesPodOperatorניתנים עכשיו להרחבה באופן עצמאי מהסביבה שלכם, ואי אפשר להשתמש בהגדרות של זיקה ל-Pod.ב-Managed Airflow (דור 3), אי אפשר לגשת ישירות למסד הנתונים של Airflow. חשוב לוודא שגרפי ה-DAG שלכם תואמים לשינוי הזה.
השהיית DAGs בסביבת Managed Airflow (Legacy Gen 1)
כדי למנוע הפעלות כפולות של DAG, צריך להשהות את כל ה-DAG בסביבת Managed Airflow (Legacy Gen 1)
לפני ששומרים את התמונה שלה. מדלגים על DAG של מעקב אחר פעילות (airflow_monitoring). הוא משמש למטרות מעקב ולא נכלל בתמונות מצב של הסביבה.
אפשר להשתמש באחת מהאפשרויות הבאות:
בממשק האינטרנט של Airflow, עוברים אל DAGs ומשהים את כל ה-DAGs באופן ידני.
כדי להשהות את כל ה-DAGs, משתמשים בסקריפט composer_dags:
python3 composer_dags.py --environment COMPOSER_1_ENV \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ --operation pauseמחליפים את:
-
COMPOSER_1_ENVבשם של סביבת Managed Airflow (Legacy Gen 1). -
PROJECT_IDבמזהה הפרויקט (Project ID). -
COMPOSER_1_LOCATIONעם האזור שבו הסביבה ממוקמת.
-
(Airflow גרסה 2.9.1 ואילך) אם יש שגיאות שקשורות למכסת השימוש בזמן השהיה של מספר גדול של DAG, אפשר להשתמש בפקודות הבאות של Airflow CLI כדי להשהות את כל ה-DAG בבת אחת:
gcloud composer environments run COMPOSER_1_ENV dags pause \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Airflow בגרסאות מוקדמות יותר מ-2.9.1) אם יש שגיאות שקשורות למכסת השימוש בזמן השהיה של מספר גדול של DAG, אפשר להשהות את ה-DAG באמצעות API בארכיטקטורת REST של Airflow. אפשר גם לעיין במאמר Trying the API במסמכי העזרה של Airflow.
שמירת תמונת מצב של סביבת Managed Airflow (דור ראשון מדור קודם)
המסוף
יוצרים תמונת מצב של הסביבה:
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על השם של סביבת Managed Airflow (Legacy Gen 1). הדף Environment details ייפתח.
לוחצים על יצירת תמונת מצב.
בתיבת הדו-שיח יצירת תמונת מצב, לוחצים על שליחה. במדריך הזה, אתם שומרים את התמונה ב-bucket של סביבת Managed Airflow (Legacy Gen 1), אבל אתם יכולים לבחור מיקום אחר אם אתם רוצים.
מחכים עד ש-Managed Airflow יוצר את התמונה.
gcloud
כדי לקבל את מזהה ה-URI של הקטגוריה בסביבת Managed Airflow (Legacy Gen 1):
מריצים את הפקודה הבאה:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"מחליפים את:
-
COMPOSER_1_ENVבשם של סביבת Managed Airflow (Legacy Gen 1). -
COMPOSER_1_LOCATIONבאזור שבו הסביבה נמצאת.
-
בפלט, מסירים את התיקייה
/dags. התוצאה היא ה-URI של דלי הסביבה שלכם ב-Managed Airflow (Legacy Gen 1).לדוגמה, שינוי של
gs://us-central1-example-916807e1-bucket/dagsל-gs://us-central1-example-916807e1-bucket.
יצירת תמונת מצב של סביבת Managed Airflow (דור קודם 1):
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"מחליפים את:
-
COMPOSER_1_ENVבשם של סביבת Managed Airflow (Legacy Gen 1). -
COMPOSER_1_LOCATIONעם האזור שבו נמצאת סביבת Managed Airflow (Legacy Gen 1). -
COMPOSER_1_SNAPSHOTS_FOLDERעם ה-URI של קטגוריית הסביבה של Managed Airflow (Legacy Gen 1). במדריך הזה, אתם שומרים את התמונה ב-bucket של סביבת Managed Airflow (Legacy Gen 1), אבל אתם יכולים לבחור מיקום אחר אם אתם רוצים. אם מציינים מיקום מותאם אישית, לחשבונות השירות של שתי הסביבות צריכות להיות הרשאות קריאה וכתיבה לכל מיקום שזמין לחשבונות השירות של שתי הסביבות.
-
יצירת סביבת Managed Airflow (דור 3)
איך יוצרים סביבת Managed Airflow (דור 3) אתם יכולים להתחיל עם הגדרה קבועה מראש של סביבה שתואמת לביקוש הצפוי למשאבים, ומאוחר יותר להרחיב ולבצע אופטימיזציה נוספת של הסביבה.
אין צורך לציין שינויים בהגדרות ומשתני סביבה, כי מחליפים אותם בהמשך כשמעלים את תמונת המצב של סביבת Managed Airflow (Legacy Gen 1).
טוענים את תמונת המצב לסביבת Managed Airflow (דור 3)
המסוף
כדי לטעון את התמונה לנקודת זמן לסביבת Managed Airflow (דור 3):
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על השם של סביבת Managed Airflow (דור 3). הדף Environment details ייפתח.
לוחצים על טעינת תמונת מצב.
בתיבת הדו-שיח טעינת תמונת מצב, לוחצים על עיון.
בוחרים את התיקייה עם התמונה. אם משתמשים במיקום ברירת המחדל של המדריך הזה, התיקייה הזו נמצאת בקטגוריה של סביבת Managed Airflow (Legacy Gen 1) בתיקייה
/snapshots, והשם שלה הוא חותמת הזמן של פעולת השמירה של התמונה. לדוגמה,us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.לוחצים על Load וממתינים עד שהתמונה תטען ב-Managed Airflow.
gcloud
טוענים את התמונה של סביבת Managed Airflow (Legacy Gen 1) לסביבת Managed Airflow (Gen 3):
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
מחליפים את:
-
COMPOSER_3_ENVבשם של סביבת Managed Airflow (דור 3). -
COMPOSER_3_LOCATIONעם האזור שבו נמצאת סביבת Managed Airflow (דור 3). -
SNAPSHOT_PATHעם ה-URI של דלי בסביבת Managed Airflow (Legacy Gen 1) שלכם, ואחריו הנתיב לתמונת המצב. לדוגמה,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.
ביטול ההשהיה של DAG בסביבת Managed Airflow (דור 3)
אפשר להשתמש באחת מהאפשרויות הבאות:
בממשק האינטרנט של Airflow, עוברים אל DAGs ומבטלים את ההשהיה של כל ה-DAGs באופן ידני, אחד אחרי השני.
כדי לבטל את ההשהיה של כל ה-DAGs, משתמשים בסקריפט composer_dags:
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpauseמחליפים את:
-
COMPOSER_3_ENVבשם של סביבת Managed Airflow (דור 3). -
PROJECT_IDבמזהה הפרויקט (Project ID). -
COMPOSER_3_LOCATIONעם האזור שבו הסביבה ממוקמת.
-
(Airflow גרסה 2.9.1 ואילך) אם מופיעות שגיאות לגבי מכסת המשאבים כשמבטלים את ההשהיה של מספר גדול של DAG, אפשר להשתמש בפקודות הבאות של Airflow CLI כדי לבטל את ההשהיה של כל ה-DAG בבת אחת:
gcloud composer environments run COMPOSER_3_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Airflow בגרסאות קודמות ל-2.9.1) אם יש שגיאות שקשורות למכסת השימוש כשמבטלים את ההשהיה של מספר גדול של DAG, אפשר לבטל את ההשהיה של DAG באמצעות Airflow API בארכיטקטורת REST. אפשר גם לעיין במאמר Trying the API במסמכי העזרה של Airflow.
בדיקה אם יש שגיאות ב-DAG
בממשק האינטרנט של Airflow, עוברים אל DAGs ובודקים אם יש שגיאות תחביר שדווחו ב-DAG.
בודקים שהרצות ה-DAG מתוזמנות לשעה הנכונה.
מחכים שהרצת ה-DAG תתבצע בסביבת Managed Airflow (דור 3) ובודקים אם היא הסתיימה בהצלחה. אם הפעלת DAG הסתיימה בהצלחה, אל תבטלו את ההשהיה שלה בסביבת Managed Airflow (Legacy Gen 1). אם תעשו זאת, הפעלת DAG לאותו זמן ותאריך תתבצע בסביבת Managed Airflow (Legacy Gen 1).
אם הפעלת DAG ספציפי נכשלת, צריך לנסות לפתור את הבעיה ב-DAG עד שהוא יפעל בהצלחה ב-Managed Airflow (דור 3).
מעקב אחרי סביבת Managed Airflow (דור 3)
אחרי שמעבירים את כל ה-DAG וההגדרות לסביבת Managed Airflow (דור 3), צריך לעקוב אחרי הסביבה כדי לזהות בעיות פוטנציאליות, הפעלות של DAG שנכשלו ומצב כללי של הסביבה.
אם סביבת Managed Airflow (דור 3) פועלת ללא בעיות במשך תקופה מספיק ארוכה, כדאי למחוק את סביבת Managed Airflow (דור 1 מדור קודם).