במאמר הזה מוסבר איך לשלב את OpenLineage עם Knowledge Catalog (לשעבר Dataplex Universal Catalog) כדי לייבא נתוני שושלת נתונים ממערכות חיצוניות ולהציג אותם באופן חזותי. באמצעות ProcessOpenLineageRunEvent API בארכיטקטורת REST, Knowledge Catalog פועל כצרכן של OpenLineage ומאפשר לכם לאחד את שושלת הנתונים של פייפליינים בהתאמה אישית עם שושלת הנתונים המובנית משירותי Google Cloud .
סקירה כללית
OpenLineage היא פלטפורמה פתוחה לאיסוף ולניתוח של מידע על מקורות נתונים. OpenLineage משתמשת בתקן פתוח לנתוני שושלת כדי לתעד אירועי שושלת מרכיבים של צינורות נתונים שמשתמשים ב-OpenLineage API כדי לדווח על הרצות, על משימות ועל מערכי נתונים.
באמצעות 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 של ProcessOpenLineageRunEvent API בארכיטקטורת REST ולמפות את המאפיינים של OpenLineage למאפיינים של Data Lineage API.
מגבלות על השילוב של OpenLineage
גרסאות נתמכות: Data Lineage API תומך בגרסה הראשית 1 של OpenLineage.
פעולות API: נקודת הקצה של Data Lineage API
ProcessOpenLineageRunEventפועלת רק כצרכן של הודעות OpenLineage, ולא כיצרן. ה-API מאפשר לכם לשלוח מידע על שושלת נתונים שנוצר על ידי כל כלי או מערכת שתואמים ל-OpenLineage אל Knowledge Catalog. חלק מהשירותים, כמו Managed Service for Apache Spark ו-Managed Airflow, כוללים יצרנים מובנים של OpenLineage שיכולים לשלוח אירועים לנקודת הקצה הזו, וכך לבצע אוטומציה של תיעוד השושלת מהשירותים האלה. Google Cloudתכונות שלא נתמכות: ה-API של מעקב מקורות נתונים לא תומך בתכונות הבאות:
- כל גרסה עתידית של OpenLineage עם שינויים בפורמט ההודעה
DatasetEventJobEvent
גודל ההודעה: הגודל המקסימלי של הודעה אחת הוא 5MB.
אורך השם: האורך של כל שם מלא בקלט ובפלט מוגבל ל-4,000 תווים.
מגבלות על קישורים: קישורים מקובצים לפי אירועים, עם מקסימום של 100 קישורים לכל אירוע. המספר המקסימלי של קישורים ברמת הטבלה הוא 1,000. אם הודעה מכילה יותר מ-1,500 קישורים ברמת העמודה, המידע ברמת העמודה ייפסח.
היקף התרשים: Knowledge Catalog מציג תרשים של שושלת נתונים לכל הרצת עבודה, שבו מוצגים הקלט והפלט של אירועי שושלת הנתונים. היא לא תומכת בתהליכים ברמה נמוכה יותר, כמו שלבי Spark.
מיפוי מאפיינים של היבט OpenLineage
מידע על מיפוי OpenLineage זמין במאמר מיפוי OpenLineage.
ייבוא אירוע OpenLineage
אם עדיין לא הגדרתם את OpenLineage, תוכלו לקרוא את המאמר תחילת העבודה.
כדי לייבא אירוע OpenLineage אל Knowledge Catalog, מפעילים את שיטת ה-API ProcessOpenLineageRunEvent.
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 Library: Google מספקת ספריית Java בקוד פתוח שעוזרת ליצור ולשלוח אירועי OpenLineage אל Data Lineage API. מידע נוסף זמין בפוסט בבלוג Producer java library for Data Lineage is now open source. הספרייה זמינה ב-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 data lineage
- אפשר לנסות את זה במעבדה אינטראקטיבית: Capture and Explore Data Updates With Data Lineage and OpenLineage