Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך להפעיל שילוב של שושלת נתונים ב-Managed Airflow.
מידע על שילוב של מעקב אחר מקורות נתונים
Data lineage היא תכונה של Knowledge Catalog שעוקבת אחרי תנועת הנתונים במערכות שלכם: מאיפה הם מגיעים, לאן הם מועברים ואילו טרנספורמציות מוחלות עליהם.
ב-Managed Airflow נעשה שימוש בחבילה apache-airflow-providers-openlineage כדי ליצור את אירועי שרשרת המקורות שנשלחים אל Data Lineage API.
החבילה הזו כבר מותקנת בסביבות Managed Airflow. אם תתקינו גרסה אחרת של החבילה הזו, יכול להיות שרשימת האופרטורים הנתמכים תשתנה. מומלץ לעשות זאת רק אם יש צורך בכך, אחרת כדאי להשאיר את הגרסה של החבילה שהותקנה מראש.
התכונה Data Lineage זמינה לסביבות שנמצאות באותם אזורים כמו אזורי Knowledge Catalog שבהם יש תמיכה ב-Data Lineage.
אם תכונת שרשרת מקורות הנתונים מופעלת בסביבת Managed Service for Apache Airflow, Managed Service for Apache Airflow מדווח על מידע לגבי שרשרת מקורות הנתונים ל-Data Lineage API עבור DAGs שמשתמשים באחד מהאופרטורים הנתמכים. אפשר גם לשלוח אירועי שושלת מותאמים אישית אם רוצים לדווח על שושלת של אופרטור שלא נתמך.
אפשר לגשת למידע על שושלת נתונים באמצעות:
- Data Lineage API
- תרשימי השתלשלות עבור רשומות נתמכות ב-Knowledge Catalog. מידע נוסף זמין במאמר גרפים של שרשרת מקורות הנתונים במסמכי התיעוד של Knowledge Catalog.
כשיוצרים סביבה, השילוב של מעקב אחר מקורות הנתונים מופעל באופן אוטומטי אם מתקיימים התנאים הבאים:
Data Lineage API מופעל בפרויקט. מידע נוסף זמין במאמר בנושא הפעלת Data Lineage API במסמכי התיעוד של Knowledge Catalog.
לא מוגדר Lineage Backend מותאם אישית ב-Airflow.
אפשר להשבית את השילוב של מעקב אחר מקורות נתונים כשיוצרים סביבה.
בסביבה קיימת, אפשר להפעיל או להשבית את השילוב של מעקב אחר מקורות הנתונים בכל שלב.
דברים שכדאי לדעת על תכונות ב-Managed Service for Apache Airflow
Managed Airflow מבצע קריאת RPC כדי ליצור אירועי שושלת נתונים במקרים הבאים:
- כשמשימה ב-Airflow מתחילה או מסתיימת
- כשמתחילה או מסתיימת הרצה של DAG
פרטים על הישויות האלה זמינים במאמרים מודל מידע על שושלת נתונים והפניית API במסמכי Knowledge Catalog.
תנועת הנתונים של שושלת הנתונים כפופה למכסות ב-Data Lineage API. Managed Airflow צורך מכסה של פעולות כתיבה.
התמחור שקשור לטיפול בנתוני שושלת כפוף לתמחור של שושלת. שיקולים לגבי שושלת הנתונים
שיקולי ביצועים ב-Managed Service for Apache Airflow
השיוך של מקורות הנתונים מדווח בסוף ההפעלה של משימת Airflow. בממוצע, הדיווח על מקורות הנתונים נמשך כשנייה עד שתי שניות.
השינוי הזה לא משפיע על הביצועים של המשימה עצמה: משימות Airflow לא נכשלות אם שושלת הנתונים לא מדווחת בהצלחה ל-Lineage API. אין השפעה על הלוגיקה העיקרית של האופרטור, אבל מופע המשימה כולו פועל קצת יותר זמן כדי להביא בחשבון את נתוני השושלת של הדיווח.
בסביבה שבה מדווח על שושלת הנתונים תהיה עלייה קלה בעלויות המשויכות, כי נדרש זמן נוסף כדי לדווח על שושלת הנתונים.
תאימות
התכונה 'מקורות נתונים' מציעה רמות תמיכה שונות בתכונות כמו VPC Service Controls. כדאי לעיין בשיקולים לגבי שושלת הנתונים כדי לוודא שרמות התמיכה תואמות לדרישות הסביבה שלכם.
לפני שמתחילים
התכונה הזו מספקת תמיכה משתנה בתאימות. חשוב קודם לעיין בשיקולים לגבי התכונה שספציפיים ל-Managed Service for Apache Airflow ובשיקולים לגבי התכונה של שושלת הנתונים.
שילוב של מעקב אחר מקורות נתונים נתמך ב-Managed Airflow מגרסה 2.1.2 ואילך, עם Airflow מגרסה 2.2.5 ואילך.
כל הרשאות ה-IAM הנדרשות למעקב אחר מקורות נתונים כבר כלולות בתפקיד Composer Worker (
roles/composer.worker). התפקיד הזה הוא התפקיד הנדרש לחשבונות השירות של הסביבה.מידע נוסף על הרשאות של שושלת הנתונים זמין במאמר תפקידים והרשאות של שושלת הנתונים במאמרי העזרה של Knowledge Catalog.
איך בודקים אם יש תמיכה באופרטור
התמיכה בתיעוד מקורות הנתונים מסופקת על ידי פלאגין שמתממשק עם שירותים חיצוניים שבה נמצא האופרטור:
בודקים ביומני השינויים של חבילת הספק שבה נמצא האופרטור אם יש רשומות שמוסיפות תמיכה ב-OpenLineage.
לדוגמה, BigQueryToBigQueryOperator תומך ב-OpenLineage החל מ
apache-airflow-providers-googleגרסה 11.0.0.בודקים את הגרסה של חבילת הספק שבה נעשה שימוש בסביבה שלכם. כדי לעשות זאת, אפשר לעיין ברשימת החבילות שמותקנות מראש לגרסה של Managed Airflow שבה נעשה שימוש בסביבה שלכם. אפשר גם להתקין גרסה אחרת של החבילה בסביבה.
בנוסף, בדף Supported classes בתיעוד של apache-airflow-providers-openlineage מפורטים האופרטורים הנתמכים העדכניים.
הגדרת שילוב של מעקב אחר מקורות נתונים
שילוב של מעקב אחר מקורות נתונים ב-Managed Service for Apache Airflow מנוהל על בסיס כל סביבה. כלומר, כדי להפעיל את התכונה צריך לבצע שני שלבים:
- מפעילים את Data Lineage API בפרויקט.
- הפעלה של שילוב שושלת הנתונים בסביבה ספציפית של Managed Service for Apache Airflow.
הפעלת מעקב אחר מקורות נתונים ב-Managed Service for Apache Airflow
המסוף
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
בוחרים בכרטיסייה הגדרת הסביבה.
בקטע Knowledge Catalog Lineage integration, לוחצים על Edit.
בחלונית Knowledge Catalog Lineage integration, בוחרים באפשרות Enable integration with Knowledge Catalog Lineage.
לוחצים על Save.
gcloud
משתמשים בארגומנט --enable-cloud-data-lineage-integration.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-cloud-data-lineage-integration
מחליפים את מה שכתוב בשדות הבאים:
-
ENVIRONMENT_NAME: השם של הסביבה. -
LOCATION: האזור שבו נמצאת הסביבה.
דוגמה:
gcloud composer environments update example-environment \
--location us-central1 \
--enable-cloud-data-lineage-integration
השבתת מעקב אחר מקורות נתונים ב-Managed Service for Apache Airflow
השבתת השילוב של מעקב המקורות בסביבת Managed Service for Apache Airflow לא משביתה את Data Lineage API. אם רוצים להשבית לגמרי את הדיווח על שושלת הנתונים בפרויקט, צריך להשבית גם את Data Lineage API. מידע נוסף זמין במאמר השבתת שירותים.
המסוף
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
בוחרים בכרטיסייה הגדרת הסביבה.
בקטע Knowledge Catalog Lineage integration, לוחצים על Edit.
בחלונית Knowledge Catalog Lineage integration, בוחרים באפשרות Disable integration with Knowledge Catalog Lineage.
לוחצים על Save.
gcloud
משתמשים בארגומנט --disable-cloud-data-lineage-integration.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-cloud-data-lineage-integration
מחליפים את מה שכתוב בשדות הבאים:
-
ENVIRONMENT_NAME: השם של הסביבה. -
LOCATION: האזור שבו נמצאת הסביבה.
דוגמה:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-cloud-data-lineage-integration
שליחת אירועי שושלת באופרטורים נתמכים
אם תכונת שרשרת המקורות של הנתונים מופעלת, אופרטורים נתמכים שולחים אירועים של שרשרת המקורות באופן אוטומטי. אין צורך לשנות את קוד ה-DAG.
לדוגמה, הרצת המשימה הבאה:
task = BigQueryInsertJobOperator(
task_id='snapshot_task',
dag=dag,
location='<dataset-location>',
configuration={
'query': {
'query': 'SELECT * FROM dataset.tableA',
'useLegacySql': False,
'destinationTable': {
'project_id': 'example-project',
'dataset_id': 'dataset',
'table_id': 'tableB',
},
}
},
)
התוצאה היא יצירת גרף של שושלת נתונים בממשק המשתמש של Knowledge Catalog:
שליחת אירועים מותאמים אישית של שושלת
אתם יכולים לשלוח אירועים מותאמים אישית של שושלת אם אתם רוצים לדווח על שושלת של אופרטור שלא נתמך בדיווח אוטומטי על שושלת.
לדוגמה, כדי לשלוח אירועים מותאמים אישית עם:
- BashOperator: משנים את הפרמטר
inletsאוoutletsבהגדרת המשימה. - PythonOperator: משנים את הפרמטר
task.inletsאוtask.outletsבהגדרת המשימה. - אפשר להשתמש ב-
AUTOבתור הפרמטרinlets. הערך שלו יהיה שווה לערך שלoutletsבמשימה הקודמת.
בדוגמה הבאה אפשר לראות איך משתמשים ב-inlets וב-outlets:
from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO
...
bash_task = BashOperator(
task_id="bash_task",
dag=dag,
bash_command="sleep 0",
inlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table1",
)
],
outlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table2",
)
],
)
def _python_task(task):
print("Python task")
python_task = PythonOperator(
task_id="python_task",
dag=dag,
python_callable=_python_task,
inlets=[
AUTO,
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table3",
),
],
outlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table4",
)
],
)
bash_task >> python_task
כתוצאה מכך, גרף שושלת הנתונים הבא נוצר בממשק המשתמש של Knowledge Catalog:
הצגת יומני שושלת נתונים ב-Managed Service for Apache Airflow
אפשר לבדוק יומנים שקשורים לתיעוד מקורות הנתונים באמצעות הקישור בדף הגדרת הסביבה בקטע שילוב של תיעוד מקורות הנתונים עם Knowledge Catalog.
פתרון בעיות
אם נתוני השושלת לא מדווחים ל-Lineage API, או שאתם לא רואים אותם ב-Knowledge Catalog, נסו את השלבים הבאים לפתרון בעיות:
- מוודאים ש-Data Lineage API מופעל בפרויקט של סביבת Managed Service for Apache Airflow.
- בודקים אם שילוב של מעקב אחר מקורות נתונים מופעל בסביבת Managed Service for Apache Airflow.
- בודקים אם האופרטור שבו אתם משתמשים כלול בתמיכה בדוחות אוטומטיים של שרשרת מקורות המידע. מידע נוסף זמין במאמר בנושא אופרטורים נתמכים של Airflow.
- כדאי לבדוק את יומני השושלת ב-Managed Service for Apache Airflow כדי לזהות בעיות אפשריות.