במדריך הזה מוסבר על המטא-נתונים של Dataplex Universal Catalog לגבי אגמים, אזורים ונכסים, ואיך אפשר להשתמש ב-Dataplex API כדי לנהל אותם.
טבלאות חיצוניות ב-BigQuery שמתפרסמות על ידי Discovery ייכללו ב-Dataplex Universal Catalog כרשומות.
סקירה כללית
Dataplex Universal Catalog סורק את המקורות הבאים:
- נכסי נתונים מובְנים ומובְנים למחצה באגמי נתונים, כדי לחלץ מטא-נתונים של טבלאות לישויות של טבלאות
- נתונים לא מובְנים, כמו תמונות וטקסטים, כדי לחלץ מטא-נתונים של קבוצת קבצים לתוך ישויות של קבוצת קבצים
אתם יכולים להשתמש ב-Dataplex Universal Catalog Metadata API כדי:
- הצגה, עריכה ומחיקה של מטא-נתונים של ישויות של טבלאות וקבוצות קבצים
- יצירת מטא-נתונים משלכם של ישות מסוג טבלה או קבוצת קבצים
אפשר לנתח את המטא-נתונים של Dataplex Universal Catalog באמצעות:
- Data Catalog (הוצא משימוש) לחיפוש ולתיוג
- Dataproc Metastore ו-BigQuery לשאילתות של מטא-נתונים של טבלאות ולעיבוד ניתוחים
Dataplex API
בקטע הזה מופיע סיכום של משאבי האגם, האזור והנכס ב-Dataplex API, ושל המשאבים העיקריים שקשורים אליהם.
Control plane API
ממשק ה-API של מישור הבקרה של Dataplex Universal Catalog מאפשר ליצור ולנהל את משאבי האגם, האזור והנכס.
Lake: מופע של שירות Dataplex Universal Catalog שמאפשר לנהל משאבי אחסון בפרויקטים שונים בארגון.
אזור: קיבוץ לוגי של נכסים בתוך אגם. אפשר להשתמש בכמה אזורים באגם כדי לארגן את הנתונים לפי מוכנות, עומס עבודה או מבנה ארגוני.
נכסים: משאבי אחסון, עם נתונים שמאוחסנים בקטגוריות של Cloud Storage או במערכי נתונים של BigQuery, שמצורפים לאזור באגם.
Metadata API
אפשר להשתמש ב-Dataplex Universal Catalog Metadata API כדי ליצור ולנהל מטא-נתונים בתוך ישויות של טבלאות וקבוצות קבצים ומחיצות. Dataplex Universal Catalog סורק נכסי נתונים, באגם או כאלה שאתם מספקים, כדי ליצור ישויות ומחיצות. ישויות ומחיצות שומרות הפניות לנכסים משויכים ולמיקומי אחסון פיזיים.
מושגים מרכזיים
- ישות טבלה:
מטא-נתונים לנתונים מובְנים עם סכימות מוגדרות היטב. ישויות בטבלה מזוהות באופן ייחודי באמצעות מזהה ישות ומיקום נתונים. אפשר להריץ שאילתות על מטא-נתונים של ישויות טבלה ב-BigQuery וב-Dataproc Metastore:
- אובייקטים ב-Cloud Storage: מטא-נתונים של אובייקטים ב-Cloud Storage, שאפשר לגשת אליהם דרך ממשקי ה-API של Cloud Storage.
- טבלאות BigQuery: מטא-נתונים של טבלאות BigQuery, שאפשר לגשת אליהם דרך ממשקי ה-API של BigQuery.
- ישות של קבוצת קבצים:
מטא-נתונים על נתונים לא מובְנים, בדרך כלל ללא סכימה. קבוצות קבצים מזוהות באופן ייחודי לפי מזהה הישות ומיקום הנתונים. לכל קבוצת קבצים יש פורמט נתונים.
- מחיצות:
מטא-נתונים של קבוצת משנה של נתונים בישות של טבלה או של קבוצת קבצים, שמזוהים על ידי קבוצה של צמדי מפתח/ערך ומיקום נתונים.
התנסות עם ה-API
כדי לראות את הפרמטרים והשדות שמשויכים לכל API, אפשר לעיין במאמרי העזרה של ה-API בנושא Dataplex Universal Catalog lakes.zones.entities ו-lakes.zones.partitions. אפשר להשתמש בחלונית Try this API שמצורפת למאמרי העזרה של כל method ב-API כדי לשלוח בקשות API עם פרמטרים ושדות שונים. אתם יכולים ליצור בקשות, לראות אותן ולשלוח אותן בלי ליצור אישורים, ואז לראות את התשובות שהשירות מחזיר.
בקטעים הבאים מוסבר על ממשקי ה-API של המטא-נתונים של Dataplex Universal Catalog, כדי לעזור לכם להבין אותם ולהשתמש בהם.
ישויות
הצגת רשימה של ישויות
כדי להגביל את רשימת הישויות שמוחזרות על ידי השירות, מוסיפים פרמטרים של שאילתת filter לכתובת ה-URL של בקשת list entities.
קבלת ישות
כברירת מחדל, התגובה Get Entity מכילה מטא-נתונים בסיסיים של הישות. כדי לאחזר מטא-נתונים נוספים של סכימה, מוסיפים את פרמטר השאילתה view לכתובת ה-URL של הבקשה.
פרטים לגבי תאימות: למרות שמטא-נתונים של Dataplex Universal Catalog מתועדים באופן מרכזי ב-Metadata API, רק מטא-נתונים של טבלאות ישויות שתואמים ל-BigQuery ול-Apache Hive Metastore מתפרסמים ב-BigQuery וב-Dataproc Metastore.
Get Entity API מחזיר הודעה CompatibilityStatus שמציינת אם המטא-נתונים של הטבלה תואמים ל-BigQuery ול-Hive Metastore, ואם לא, מה הסיבה לחוסר התאימות.
עדכון ישות
אפשר להשתמש ב-API הזה כדי לערוך מטא-נתונים של ישויות, כולל ההגדרה אם אתם או Dataplex Universal Catalog תנהלו את המטא-נתונים של הישויות.
- ממשק ה-API הזה מבצע החלפה מלאה של כל השדות הניתנים לשינוי של הישות. השדות הבאים של הישות הם קבועים, ואם תציינו אותם בבקשת עדכון, המערכת תתעלם מהם:
- צריך לציין ערך לכל השדות של הישות שאפשר לשנות, כולל כל השדות של הסכימה, גם אם הערכים לא משתנים.
- מציינים את השדה etag. כדי לקבל את ה-etag, צריך קודם לשלוח בקשת entities.get, שתחזיר את
etagשל הישות בתגובה. - עדכון שדות הסכימה: אפשר לעדכן את סכימת הטבלה שזוהתה על ידי Dataplex Universal Catalog כדי לשפר את הדיוק שלה:
- אם הסכימה היא קבוצת קבצים, משאירים את כל שדות הסכימה ריקים.
- כדי להגדיר שדה חוזר, מגדירים את mode לערך
REPEATED. כדי להגדיר שדה struct, מגדירים את type לערךRECORD. - אפשר להגדיר את השדה
userManagedבסכימה כדי לציין אם אתם או Dataplex Universal Catalog מנהלים את המטא-נתונים של הטבלה. הגדרת ברירת המחדל היא Dataplex Universal Catalog managed. אםuserManagedמוגדר כ-true, ההגדרה הזו נכללת במידע שמוחזר מבקשתentities.getאם EntityView מוגדר כ-SCHEMAאו כ-FULL.
- עדכון שדות של מחיצות:
- בנתונים מחולקים שלא תואמים לסגנון של Hive, המערכת של Dataplex Universal Catalog מגלה את מפתחות החלוקה באופן אוטומטי. לדוגמה, עבור נתיב הנתונים
gs://root/2020/12/31, נוצרים מפתחות חלוקהp0,p1ו-p2. כדי שהשאילתות יהיו אינטואיטיביות יותר, אפשר לעדכן אתp0,p1ו-p2ל-year,monthו-dayבהתאמה. - אם מעדכנים את סגנון המחיצה לסגנון HIVE, שדה המחיצה לא ניתן לשינוי.
- בנתונים מחולקים שלא תואמים לסגנון של Hive, המערכת של Dataplex Universal Catalog מגלה את מפתחות החלוקה באופן אוטומטי. לדוגמה, עבור נתיב הנתונים
- עדכון שדות מטא-נתונים אחרים: אפשר לעדכן את השדות הבאים שנוצרים אוטומטית כדי לשפר את האיתור של Dataplex Universal Catalog: mimeType, CompressionFormat, CsvOptions ו-JsonOptions. בפעם הבאה שיתבצע גילוי ב-Dataplex Universal Catalog, המערכת תשתמש בערכים החדשים.
יצירת ישות
משתמשים ב-entities.create API כדי ליצור ישויות מטא-נתונים של טבלה או של קבוצת קבצים.
מאכלסים את שדות החובה ואת השדות האופציונליים הרלוונטיים, או מאפשרים לשירות הגילוי של Dataplex Universal Catalog לאכלס את השדות האופציונליים.
מחיקת ישות
- מציינים את השדה etag. כדי לקבל את ה-etag, צריך קודם לשלוח בקשת entities.get, שתחזיר את
etagשל הישות בתגובה.
אם נמחקים נתונים בסיסיים של טבלה או של קבוצת קבצים באזור גולמי, המטא-נתונים של הטבלה או של קבוצת הקבצים נמחקים אוטומטית בסריקת הגילוי הבאה. אם נמחקים נתונים בסיסיים של טבלה בתחום לאחסון נתונים מובְנים (Curated zone), המטא-נתונים של הטבלה לא נמחקים בהתאם, אלא מדווחת פעולה של נתונים חסרים. כדי לפתור את הבעיה, צריך למחוק במפורש את ישות המטא-נתונים של הטבלה באמצעות Metadata API.
מחיצות
הצגת רשימה של מחיצות
כדי לצמצם את רשימת המחיצות שמוחזרות על ידי השירות, מוסיפים פרמטרים של שאילתת filter לכתובת ה-URL של הבקשה list partitions.
לדוגמה:
?filter="Country=US AND State=CA AND City=Sunnyvale"?filter="year < 2000 AND month > 12 AND Date > 10"
קבלת מחיצה
כדי לקבל מחיצה, צריך להשלים את כתובת ה-URL של הבקשה על ידי הוספת הערכים של מפתח המחיצה לסוף כתובת ה-URL, בפורמט הבא: partitions/value1/value2/…./value10.
דוגמה: אם למחיצה יש ערכים, {Country=US, State=CA, City=Sunnyvale}, כתובת ה-URL של בקשת ה-GET צריכה להסתיים ב-/partitions/US/CA/Sunnyvale.
חשוב: ערכי כתובות ה-URL שנוספים צריכים להיות מקודדים פעמיים. לדוגמה, אפשר להשתמש ב-url_encode(url_encode(value)) כדי לקודד את המחרוזת US:CA/CA#Sunnyvale כך שכתובת ה-URL של הבקשה תסתיים ב-/partitions/US%253ACA/CA%2523Sunnyvale. שדה השם בתגובה שומר על הפורמט המקודד.
יצירת מחיצה
כדי ליצור מחיצה בהתאמה אישית למקור הנתונים, משתמשים ב-API partitions.create. מציינים את שדה המיקום הנדרש עם נתיב Cloud Storage.
מחיקת מחיצה
משלימים את כתובת ה-URL של הבקשה על ידי הוספת ערכים של מפתח המחיצה לסוף כתובת ה-URL של הבקשה, בפורמט partitions/value1/value2/…./value10.
לדוגמה: אם למחיצה יש ערכים, {Country=US, State=CA, City=Sunnyvale}, כתובת ה-URL של הבקשה צריכה להסתיים ב-/partitions/US/CA/Sunnyvale.
חשוב: ערכי כתובות ה-URL שמוסיפים צריכים להיות תואמים ל-RFC-1034 או להיות מקודדים פעמיים, למשל US:/CA#/Sunnyvale כ-US%3A/CA%3A/Sunnyvale.