שושלת נתונים עם Knowledge Catalog

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 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. כדאי לעיין בשיקולים לגבי שושלת הנתונים כדי לוודא שרמות התמיכה תואמות לדרישות הסביבה שלכם.

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

איך בודקים אם יש תמיכה באופרטור

התמיכה בתיעוד מקורות הנתונים מסופקת על ידי פלאגין שמתממשק עם שירותים חיצוניים שבה נמצא האופרטור:

  1. בודקים ביומני השינויים של חבילת הספק שבה נמצא האופרטור אם יש רשומות שמוסיפות תמיכה ב-OpenLineage.

    לדוגמה, BigQueryToBigQueryOperator תומך ב-OpenLineage החל מapache-airflow-providers-google גרסה 11.0.0.

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

בנוסף, בדף Supported classes בתיעוד של apache-airflow-providers-openlineage מפורטים האופרטורים הנתמכים העדכניים.

הגדרת שילוב של מעקב אחר מקורות נתונים

שילוב של מעקב אחר מקורות נתונים ב-Managed Service for Apache Airflow מנוהל על בסיס כל סביבה. כלומר, כדי להפעיל את התכונה צריך לבצע שני שלבים:

  1. מפעילים את Data Lineage API בפרויקט.
  2. הפעלה של שילוב שושלת הנתונים בסביבה ספציפית של Managed Service for Apache Airflow.

הפעלת מעקב אחר מקורות נתונים ב-Managed Service for Apache Airflow

המסוף

  1. במסוף Google Cloud , עוברים לדף Environments.

    מעבר אל Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.

  3. בוחרים בכרטיסייה הגדרת הסביבה.

  4. בקטע Knowledge Catalog Lineage integration, לוחצים על Edit.

  5. בחלונית Knowledge Catalog Lineage integration, בוחרים באפשרות Enable integration with Knowledge Catalog Lineage.

  6. לוחצים על 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. מידע נוסף זמין במאמר השבתת שירותים.

המסוף

  1. במסוף Google Cloud , עוברים לדף Environments.

    מעבר אל Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.

  3. בוחרים בכרטיסייה הגדרת הסביבה.

  4. בקטע Knowledge Catalog Lineage integration, לוחצים על Edit.

  5. בחלונית Knowledge Catalog Lineage integration, בוחרים באפשרות Disable integration with Knowledge Catalog Lineage.

  6. לוחצים על 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:

דוגמה לתרשים של שרשרת מקורות נתונים בממשק המשתמש של Knowledge Catalog.
איור 1. ‫דוגמה לתרשים של שושלת נתונים לטבלה ב-BigQuery בממשק המשתמש של 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:

דוגמה לגרף של שרשרת מקורות נתונים לאירועים מותאמים אישית בממשק המשתמש של Knowledge Catalog.
איור 2. דוגמה לתרשים של שושלת נתונים של כמה טבלאות BigQuery בממשק המשתמש של 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 כדי לזהות בעיות אפשריות.

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