Lakehouse for Apache Iceberg מנהל את המטא-נתונים באמצעות הקטלוג של זמן הריצה של Lakehouse. כשמשתמשים בנקודת הקצה Apache Iceberg REST catalog, המערכת מארגנת את הנתונים בהיררכיית משאבים קפדנית. ההגדרות של הקטלוג קובעות את סוגי האחסון הנתמכים, את אופן ההתנהגות של הניתוב האזורי ואת האפשרויות של איחוד השאילתות.
יכולות ותאימות
קטלוג זמן הריצה של Lakehouse מיועד לשילוב עם מנועי עיבוד בקוד פתוח. הוא תומך בפורמטים סטנדרטיים של טבלאות ועומד בדרישות של ממשקי API פתוחים.
פורמטים נתמכים של טבלאות
יש תמיכה בטבלאות Apache Iceberg V2 (זמינות כללית) ובטבלאות V3 (גרסת Preview). אין תמיכה בטבלאות Iceberg V1. כדי להשתמש בטבלאות קיימות מגרסה 1 עם נקודת הקצה של קטלוג Apache Iceberg REST, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר בנושא שדרוג טבלאות Iceberg V1 ל-V2.
תאימות ל-API ופעולות REST
הקטלוג של Lakehouse runtime מטמיע את Apache Iceberg REST Catalog API בקוד פתוח. מנועי שאילתות של לקוחות יוצרים אינטראקציה עם מאגר המטא-נתונים באמצעות ממשקי API סטנדרטיים של קטלוג REST. מידע נוסף מופיע במאמר בנושא תאימות ל-Iceberg REST Catalog API.
היררכיית המשאבים
נקודת הקצה של קטלוג Apache Iceberg REST משתמשת בהיררכיה של משאבים כדי לארגן את הנתונים. בטבלה הבאה מפורטים המשאבים האלה:
| משאב | תיאור |
|---|---|
| קטלוג | מאגר נתונים הוא קונטיינר ברמה העליונה שמאפשר לארגן מרחבי שמות וטבלאות בקבוצות לוגיות על ידי פיצול שלהם למאגרי נתונים שונים. כל קטלוג מגובה במיקום אחסון ייעודי במחסן הנתונים (כמו קטגוריה של Cloud Storage או שרת proxy של פדרציה ב-BigQuery) שבו מאוחסנים מטא-הנתונים וקבצי הנתונים הבסיסיים שלו. |
| מרחב שמות | קיבוץ לוגי שמשמש לארגון טבלאות בקטלוג. הוא פועל כמו מסדי נתונים, סכימות או ספריות. |
| טבלה | טבלאות מכילות הגדרות של שורות ועמודות שאפשר להריץ עליהן שאילתות. |
קטלוגים ומיקומי אחסון
כשמגדירים את הלקוח, מציינים קטלוג. מיקום האחסון נקבע לפי הקטלוג שבוחרים. הבחירה הזו קובעת איך הקטלוג שלכם פועל ומשתלב עםGoogle Cloud שירותים אחרים. אפשר לבחור קטלוג BigLake או קטלוג Cloud Storage.
שתי האפשרויות מאפשרות גמישות בנתונים ותומכות בהקצאת הרשאות לבקרת גישה פרטנית.
הקטלוג של BigLake (bl://)
הגישה הזו מאפשרת לכם לתת שם לקטלוג באופן עצמאי, בלי קשר לשם של קטגוריה כלשהי, וגם להגדיר כמה קטגוריות לקטלוג אחד. ב-API הבסיסי, ההגדרה הזו תואמת להגדרה CATALOG_TYPE_BIGLAKE.
שיקולים:
- Default location: מציינים נתיב לקטגוריה (
default_location), שמשמשת כמיקום האחסון שמוגדר כברירת מחדל. למרחבי שמות שנוצרו בלי מיקום מוגדר, נעשה שימוש ב-default_location. - מיקומים מוגבלים: אפשר גם לספק הגדרת
restricted_locationsאופציונלית לדליים או לנתיבים נוספים שבהם אפשר ליצור מרחבי שמות וטבלאות. - דרישות לגבי קבוצת אזורים גיאוגרפיים: למרות שאפשר להשתמש בדליים בפרויקטים שונים, באזורים שונים ולהגדיר אותם בצורות שונות (למשל אזור יחיד, שני אזורים או מספר אזורים), כל המיקומים ב-Cloud Storage, כולל מיקום ברירת המחדל והמיקומים המוגבלים, צריכים להיות באותה קבוצת אזורים גיאוגרפיים (למשל ארה"ב, אירופה, קנדה או אסיה). לדוגמה, אי אפשר להגדיר קטגוריה במספר אזורים בארה"ב עם קטגוריה באירופה או בקנדה.
קטלוג Cloud Storage (gs://)
זוהי הגישה הרגילה מדור קודם, שבה הקטלוג מנהל ישירות את המטא-נתונים ואת קובצי הנתונים של Apache Iceberg בקטגוריה אחת של Cloud Storage שאתם מציינים. ב-API הבסיסי, ההגדרה הזו תואמת להגדרה CATALOG_TYPE_GCS_BUCKET.
בקטלוגים של קטגוריות Cloud Storage, שם הקטלוג זהה לשם הקטגוריה.
לדוגמה, אם יצרתם קטגוריה לאחסון הקטלוג ונתתם לה את השם iceberg-bucket, גם שם הקטלוג וגם שם הקטגוריה יהיו iceberg-bucket. הערך הזה משמש בהמשך כששולחים שאילתה לקטלוג ב-BigQuery באמצעות התחביר של P.C.N.T. לדוגמה
my-project.lakehouse-catalog-id.quickstart_namespace.quickstart_table.
שיקולים:
- שדרוג לקטלוגים של BigLake: אפשר לשדרג קטלוג קיים של קטגוריות Cloud Storage (קטלוג
gs://) לקטלוג של BigLake (קטלוגbl://). הקטלוג המשודרג שומר על השם של הקטגוריה המקורית. אחר כך תוכלו לשייך לקטלוג כמה מאגרי מידע ולהגדיר מיקומים מוגבלים.
אזורים של קטגוריות וקטלוגים
האזור של נקודת קצה של קטלוג בקטלוג של Lakehouse runtime נקבע לפי האזור של קטגוריה של Cloud Storage הבסיסית שלו:
- קטלוגים של BigLake: האזור של הקטלוג נגזר מהבאקט שהוגדר ב-
default_location. - קטלוגים של קטגוריות ב-Cloud Storage: האזור של הקטלוג נגזר מהקטגוריה שמשויכת לקטלוג.
האזור של הקטלוג הממופה משתנה בהתאם לסוג האזור של ה-bucket:
- אזור יחיד: האזור של הקטלוג תואם בדיוק לאזור של הדלי.
- שני אזורים: האזור בקטלוג תואם לשני האזורים של הבאקט (למשל
ASIA1אוNAM4). - מספר אזורים: האזור בקטלוג מוגדר למיקום אזורי ספציפי בתוך התחום הגיאוגרפי של מספר האזורים. יכול להיות שברירת המחדל לא תתאים למיקומים נפוצים במספר אזורים ב-BigQuery, כמו
USו-EU(לדוגמה, באקט במיקוםUSבמספר אזורים ימופה ל-us-central1או ל-us-east4).
כש-BigQuery מריץ שאילתה על טבלאות בקטלוגים האלה, הוא מעביר את השאילתה לאזור הראשי של הקטלוג. אם שולחים שאילתות לטבלאות באזור וירטואלי ספציפי (למשל US או EU) והמטא-נתונים של הקטלוג לא נמצאים במיקום הזה, השאילתה תיכשל.
אזורים ראשיים למספר אזורים
כדי לאפשר ל-BigQuery להריץ שאילתות בטבלאות הקטלוג מאזור US או מאזור EU שפרוס במספר אזורים, צריך לציין את US או EU כאזור הראשי כשיוצרים את הקטלוג.
אתם יכולים לציין אזור מרובה (US או EU) כאזור הראשי בהגדרות הבאות:
- קטלוגים של BigLake: אם קטגוריית ה-
default_locationהיא:- קטגוריית
USאוEUבמספר אזורים. - קטגוריה באזור יחיד בתוך אותם אזורים (למשל
us-central1אוeurope-west4). - קטגוריה של שני אזורים או קטגוריה מותאמת אישית של שני אזורים באזורים האלה (למשל
NAM4אוEUR4).
- קטגוריית
- קטלוגים של קטגוריות ב-Cloud Storage: אם הקטגוריה של הקטלוג היא:
- קטגוריית
USאוEUבמספר אזורים. - קטגוריה באזור יחיד בתוך אותם אזורים (למשל
us-central1אוeurope-west4).
- קטגוריית
הרפליקה הראשית מוגדרת כשיוצרים את הקטלוג, אבל אפשר לבצע מעבר לגיבוי (failover) באופן דינמי על ידי קריאה ל-FailoverCatalog. מידע נוסף זמין במאמר יצירת קטלוג.
שליחת שאילתות לקטלוגים מ-BigQuery
כשמריצים שאילתות על טבלאות של קטלוג זמן הריצה של Lakehouse מ-BigQuery, משתמשים במבנה שמות בן ארבעה חלקים, שלרוב נקרא P.C.N.T:
- Project: מזהה הפרויקט Google Cloud שבבעלותו הקטלוג.
- Catalog: השם של קטלוג זמן הריצה של Lakehouse.
- Namespace (מרחב שמות): מרחב השמות של Apache Iceberg (שווה ערך למערך נתונים ב-BigQuery).
- Table: השם של הטבלה.
לדוגמה, my-project.lakehouse-catalog-id.my-namespace.my-table.