Data lineage היא תכונה של Dataflow שמאפשרת לעקוב אחרי תנועת הנתונים במערכות שלכם: מאיפה הם מגיעים, לאן הם מועברים ואילו טרנספורמציות מוחלות עליהם.
לכל צינור שאתם מריצים באמצעות Dataflow משויכים כמה נכסי נתונים. השיוך של נכס נתונים כולל את המקור שלו, מה קורה לו ולאן הוא עובר לאורך זמן. באמצעות מעקב אחר מקורות נתונים, אפשר לעקוב אחרי התנועה מקצה לקצה של נכסי הנתונים, מהמקור ועד ליעד הסופי.
כשמפעילים את התכונה 'מקורות נתונים' לעבודות Dataflow, Dataflow מתעד אירועים שקשורים למקורות נתונים ומפרסם אותם ב-Data Lineage API של Knowledge Catalog.
כדי לגשת למידע על השתלשלות הנתונים דרך Knowledge Catalog, אפשר לעיין במאמר בנושא שימוש בהשתלשלות נתונים עם מערכות Google Cloud .
לפני שמתחילים
מגדירים את הפרויקט:
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataplex, BigQuery, and Data lineage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataplex, BigQuery, and Data lineage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
ב-Dataflow, צריך גם להפעיל את מעקב המקורות ברמת העבודה. מידע נוסף על הפעלת מעקב אחר מקורות נתונים ב-Dataflow
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להצגת תרשימים של ויזואליזציה של שושלת, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Dataplex Catalog viewer (
roles/dataplex.catalogViewer) on the Knowledge Catalog resource project - Data Lineage Viewer (
roles/datalineage.viewer) בפרויקט שבו משתמשים ב- Dataflow - Dataflow viewer (
roles/dataflow.viewer) on the project where you use Dataflow
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מידע נוסף על תפקידים של מעקב אחר מקורות נתונים זמין במאמר בנושא תפקידים מוגדרים מראש למעקב אחר מקורות נתונים.
תמיכה ומגבלות
יש מגבלות על מעקב אחר מקורות נתונים ב-Dataflow:
- התכונה 'מקורות נתונים' נתמכת בגרסאות 2.63.0 ואילך של Apache Beam SDK.
- צריך להפעיל את מקורות הנתונים לכל עבודה בנפרד.
- איסוף הנתונים לא מתבצע באופן מיידי. יכול להיות שיחלפו כמה דקות עד שנתוני השושלת של משימת Dataflow יופיעו ב-Knowledge Catalog.
המקורות והיעדים הבאים נתמכים:
- Apache Kafka
- BigQuery (משימות סטרימינג ב-Python משתמשות בשיטה הקודמת
STREAMING_INSERT, שלא תומכת בתיעוד מקורות הנתונים. כדי להשתמש בתיעוד מקורות הנתונים, צריך לעבור לשיטה המומלצתSTORAGE_WRITE_API. מידע נוסף זמין במאמר בנושא כתיבה מ-Dataflow ל-BigQuery. - Bigtable
- Cloud Storage
- JDBC (Java Database Connectivity)
- Pub/Sub
- Spanner (אין תמיכה ב-Change Stream)
תבניות של Dataflow שמשתמשות במקורות וביעדים האלה גם מתעדות ומפרסמות באופן אוטומטי אירועים של שרשרת מקורות.
הפעלת שושלת נתונים ב-Dataflow
צריך להפעיל את מעקב המקורות ברמת המשימה. כדי להפעיל את מעקב המקורות, צריך להשתמש בenable_lineage
Dataflow service option באופן הבא:
Java
--dataflowServiceOptions=enable_lineage=true
Python
--dataflow_service_options=enable_lineage=true
המשך
--dataflow_service_options=enable_lineage=true
gcloud
משתמשים בפקודה gcloud dataflow jobs run עם האפשרות additional-experiments. אם משתמשים בתבניות Flex, משתמשים בפקודה gcloud dataflow flex-template run.
--additional-experiments=enable_lineage=true
אפשר גם לציין פרמטר אחד או את שני הפרמטרים הבאים באמצעות אפשרות השירות:
-
process_id: מזהה ייחודי שמשמש את Knowledge Catalog לקיבוץ של הרצות של משימות. אם לא מציינים שם, המערכת משתמשת בשם המשרה. process_name: שם קריא לאנשים של תהליך שרשרת מקורות הנתונים. אם לא מציינים שם, המערכת משתמשת בשם המשימה עם הקידומת"Dataflow ".
מציינים את האפשרויות האלה באופן הבא:
Java
--dataflowServiceOptions=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
Python
--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
המשך
--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
gcloud
--additional-experiments=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
הצגת שושלת נתונים ב-Knowledge Catalog
שושלת הנתונים מספקת מידע על הקשרים בין משאבי הפרויקט לבין התהליכים שיצרו אותם. אפשר לראות את פרטי שרשרת מקורות הנתונים במסוף Google Cloud בפורמט של תרשים או של טבלה אחת. אפשר גם לאחזר מידע על מקורות נתונים מ-Data Lineage API בצורה של נתוני JSON.
מידע נוסף זמין במאמר בנושא שימוש ב-Data Lineage עם מערכות Google Cloud .
השבתת שושלת הנתונים ב-Dataflow
אם תכונת שרשרת המקורות של הנתונים מופעלת עבור משימה ספציפית ואתם רוצים להשבית אותה, אתם צריכים לבטל את המשימה הקיימת ולהריץ גרסה חדשה של המשימה ללא אפשרות השירות enable_lineage.
חיוב
השימוש ב-Dataflow לצורך מעקב אחר מקורות נתונים לא משפיע על החיוב ב-Dataflow, אבל הוא עשוי להוביל לחיובים נוספים בחיוב של Knowledge Catalog. מידע נוסף זמין במאמרים בנושא שיקולים לגבי שושלת הנתונים ותמחור של Knowledge Catalog.