בעזרת שושלת היוחסין של הנתונים ב-Knowledge Catalog (לשעבר Dataplex Universal Catalog) אתם יכולים לייבא אירועי OpenLineage כדי לעקוב אחרי תנועת הנתונים ממערכות חיצוניות ולהציג אותה באופן חזותי. אתם יכולים לאחד את שושלת היוחסין של צינור עיבוד נתונים בהתאמה אישית עם שושלת היוחסין המובנית משירותיGoogle Cloud בתרשים שושלת יוחסין אחד.
סקירה כללית
OpenLineage היא פלטפורמה פתוחה לאיסוף ולניתוח של מידע על שושלת נתונים. באמצעות תקן פתוח לנתוני שושלת, OpenLineage מתעד אירועי שושלת מרכיבי פייפליין שמשתמשים ב-OpenLineage API כדי לדווח על הפעלות, משימות ומערכי נתונים.
Knowledge Catalog פועל כצרכן של OpenLineage באמצעות Data Lineage API. אתם יכולים לייבא אירועי OpenLineage ממערכות חיצוניות ומצינורות עיבוד נתונים בהתאמה אישית, כדי להציג אותם בממשק האינטרנט של Knowledge Catalog לצד מידע מובנה על שושלת הנתונים משירותי Google Cloud , כמו BigQuery, Managed Service for Apache Airflow, Cloud Data Fusion ו-Managed Service for Apache Spark.
כדי לייבא אירועים של OpenLineage שמשתמשים במפרט של OpenLineage, משתמשים ב-method של ה-API בארכיטקטורת REST ProcessOpenLineageRunEvent וממפים את ההיבטים של OpenLineage למאפיינים של Data Lineage API.
מגבלות השילוב של OpenLineage
גרסאות נתמכות: ה-Data Lineage API תומך בגרסאות העיקריות 1 ו-2 של OpenLineage.
פעולות API: נקודת הקצה ל-API של Data Lineage
ProcessOpenLineageRunEventפועלת רק כצרכן של הודעות OpenLineage, ולא כיצרן. באמצעות ה-API אפשר לשלוח ל-Knowledge Catalog מידע על שושלת נתונים שנוצר על ידי כל כלי או מערכת שתואמים ל-OpenLineage. בחלק משירותי Google Cloud , כמו Managed Service for Apache Spark ו-Managed Airflow, יש יצרני OpenLineage מובְנים שיכולים לשלוח אירועים לנקודת הקצה הזו, וכך להפוך את תיעוד שושלת היוחסין מהשירותים האלה לאוטומטי.תכונות שלא נתמכות: Data Lineage API לא תומך בתכונות הבאות:
- כל גרסה עתידית של OpenLineage עם שינויים בפורמט ההודעות
DatasetEventJobEvent
גודל ההודעה: הגודל המקסימלי של הודעה בודדת הוא 5MB.
אורך השם: האורך של כל שם מלא בקלט ובפלט מוגבל ל-4,000 תווים.
שושלת ברמת העמודה: נקודת הקצה
ProcessOpenLineageRunEventיוצרת קצוות של שושלת ברמת הטבלה רק לאירועים מותאמים אישית של OpenLineage. תרשימי שושלת יוחסין ברמת העמודה נוצרים רק בשביל טרנספורמציות SQL ב-BigQuery ומשימות של Managed Service for Apache Spark. היבטים ברמת העמודה בהתאמה אישית לא מוצגים במסוף.מגבלות על קישורים: הקישורים מקובצים לפי אירועים, עד 100 קישורים לכל אירוע. המספר המקסימלי של קישורים ברמת הטבלה הוא 1,000. במנועים אוטומטיים נתמכים שאוספים שושלת יוחסין ברמת העמודה, אם הודעה מכילה יותר מ-1,500 קישורים ברמת העמודה, המערכת מדלגת על המידע ברמת העמודה.
היקף התרשים: ב-Knowledge Catalog מוצג תרשים של שושלת היוחסין לכל הרצת משימה, עם הקלט והפלט של אירועי שושלת היוחסין. היא לא תומכת בתהליכים ברמה נמוכה יותר, כמו שלבי Spark.
מיפוי מאפייני פאסט של OpenLineage
למידע על מיפוי OpenLineage, ראו מיפוי OpenLineage.
ייבוא אירוע OpenLineage
אם עדיין לא הגדרתם את OpenLineage, קראו את המאמר תחילת השימוש.
כדי לייבא אירוע OpenLineage ל-Knowledge Catalog, צריך להפעיל את ה-method ProcessOpenLineageRunEvent של ה-API.
C#
C#
לפני שתנסו את הדוגמה הזו, בצעו את הוראות ההגדרה של C# במדריך למתחילים בנושא שושלת נתונים באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של Data Lineage C# API.
כדי לבצע אימות ב-Data Lineage, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
המשך
Go
לפני שתנסו את הדוגמה הזו, בצעו את הוראות ההגדרה של Go במדריך למתחילים בנושא שושלת נתונים באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של Data Lineage Go API.
כדי לבצע אימות ב-Data Lineage, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
Java
לפני שתנסו את הדוגמה הזו, בצעו את הוראות ההגדרה של Java במדריך למתחילים בנושא שושלת נתונים באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של Data Lineage Java API.
כדי לבצע אימות ב-Data Lineage, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
Python
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Python במדריך למתחילים בנושא שושלת נתונים באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של Data Lineage Python API.
כדי לבצע אימות ב-Data Lineage, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Ruby
Ruby
לפני שתנסו את הדוגמה הזו, בצעו את הוראות ההגדרה של Ruby במדריך למתחילים בנושא שושלת נתונים באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של Data Lineage Ruby API.
כדי לבצע אימות ב-Data Lineage, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי לייבא אירוע OpenLineage, משתמשים בשיטה processOpenLineageRunEvent.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION_ID: המיקום של Google Cloud , למשלus-central1.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:processOpenLineageRunEvent
תוכן בקשת JSON:
{
"eventTime": "2023-04-04T13:21:16.098Z",
"eventType": "COMPLETE",
"inputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"job": {
"name": "somename",
"namespace": "customnamespace"
},
"outputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"producer": "someproducer",
"run": {
"runId": "somerunid"
},
"schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"process": "projects/my-project/locations/us-central1/processes/my-process",
"run": "projects/my-project/locations/us-central1/processes/my-process/runs/my-run",
"lineageEvents": [
"projects/my-project/locations/us-central1/processes/my-process/runs/my-run/lineageEvents/my-lineage-event"
]
}
כלים לשליחת הודעות OpenLineage
כדי לפשט את שליחת האירועים ל-Data Lineage API, אתם יכולים להשתמש בכלים ובספריות שונים:
- ספריות הלקוח של Google Cloud ל-Data Lineage: Google מספקת ספריות לקוח כדי ליצור אינטראקציה עם Data Lineage API באופן פרוגרמטי. הוראות להתקנת ספריות לקוח
- ספריית Google Cloud Java Producer: Google מספקת ספריית Java בקוד פתוח שעוזרת ליצור ולשלוח אירועי OpenLineage ל-Data Lineage API. למידע נוסף, קראו את הפוסט בבלוג ספריית Java של Producer ל-Data Lineage היא עכשיו בקוד פתוח. הספרייה זמינה ב-GitHub וב-Maven.
- OpenLineage GCP Transport: ליוצרי OpenLineage שמבוססים על Java, יש GcpLineage Transport ייעודי. הוא מפשט את השילוב עם Data Lineage API, על ידי צמצום הקוד שנדרש לשליחת אירועים ל-Data Lineage API. אפשר להגדיר את
GcpLineageTransportככיור האירועים של כל יצרן OpenLineage קיים, כמו Airflow, Spark ו-Flink. למידע נוסף ולדוגמאות, ראו GcpLineage.
ניתוח מידע מ-OpenLineage
כדי לנתח את אירועי OpenLineage שיובאו, קראו את המאמר הצגת תרשימי שושלת נתונים בממשק המשתמש של Knowledge Catalog.
נתוני פאסטים של OpenLineage שנשמרו
Data Lineage API לא מאחסן את כל נתוני ההיבטים מההודעות של OpenLineage. Data Lineage API מאחסן את שדות ההיבטים הבאים:
spark_versionopenlineage-spark-versionspark-version
- כל
spark.logicalPlan.* -
environment-properties(היבט מותאם אישית Google Cloud של שושלת נתונים)origin.sourcetypeוגםorigin.namespark.app.idspark.app.namespark.batch.idspark.batch.uuidspark.cluster.namespark.cluster.regionspark.job.idspark.job.uuidspark.project.idspark.query.node.namespark.session.idspark.session.uuid
ב-Data Lineage API נשמר המידע הבא:
eventTimerun.runIdjob.namespacejob.name
המאמרים הבאים
- מידע נוסף על שילובים של שושלת נתונים עם Managed Service for Apache Spark ושושלת נתונים של Hive.
- נסו את זה במעבדה אינטראקטיבית: תיעוד וניתוח של עדכוני נתונים באמצעות שושלת נתונים ו-OpenLineage