Lakehouse for Apache Iceberg מנהל את המטא-נתונים באמצעות הקטלוג של זמן הריצה של Lakehouse. כשמשתמשים בנקודת הקצה Apache Iceberg REST catalog, המערכת מארגנת את הנתונים בהיררכיית משאבים מוגדרת. ההגדרה של הקטלוג קובעת את סוגי האחסון הנתמכים, את אופן ההתנהגות של הניתוב האזורי ואת האפשרויות של איחוד השאילתות.
יכולות ותאימות
קטלוג זמן הריצה של Lakehouse מיועד להשתלב עם מנועי שאילתות שתואמים ל-Iceberg, באמצעות תמיכה בפורמטים סטנדרטיים של טבלאות ותאימות לממשקי API פתוחים.
פורמטים נתמכים של טבלאות
יש תמיכה בטבלאות Apache Iceberg V2 (זמינות כללית) ובטבלאות V3 (גרסת Preview). אין תמיכה בטבלאות Iceberg V1. כדי להשתמש בטבלאות קיימות מגרסה 1 עם נקודת הקצה של קטלוג REST של Apache Iceberg, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר שדרוג טבלאות Iceberg V1 ל-V2.
תאימות ל-API ופעולות REST
הקטלוג של Lakehouse runtime מטמיע את התקן הפתוח Apache Iceberg REST Catalog API. מנועי שאילתות של לקוחות יוצרים אינטראקציה עם הקטלוג באמצעות ממשקי API סטנדרטיים של קטלוג REST. מידע נוסף זמין במאמר בנושא הטמעה של Apache Iceberg REST Catalog API ב-Lakehouse.
היררכיית המשאבים
נקודת הקצה של קטלוג Apache Iceberg REST משתמשת בהיררכיה של משאבים כדי לארגן את הנתונים. בטבלה הבאה מפורטים המשאבים האלה:
| משאב | תיאור |
|---|---|
| קטלוג | מאגר נתונים הוא קונטיינר ברמה העליונה שמאפשר לארגן מרחבי שמות וטבלאות בקבוצות לוגיות על ידי פיצול שלהם למאגרי נתונים שונים. כל קטלוג מגובה במיקום אחסון ייעודי במחסן הנתונים (כמו קטגוריה של Cloud Storage או שרת proxy של פדרציה ב-BigQuery) שבו מאוחסנים מטא-הנתונים וקבצי הנתונים הבסיסיים שלו. |
| מרחב שמות | קיבוץ לוגי שמשמש לארגון טבלאות בקטלוג. הוא פועל כמו מסדי נתונים, סכימות או ספריות. |
| טבלה | טבלאות מכילות הגדרות של שורות ועמודות שאפשר להריץ עליהן שאילתות. |
קטלוגים ומיקומי אחסון
ההגדרה של קטלוג קובעת איך הוא פועל ואיך הוא משתלב עם שירותי Google Cloud. אתם יכולים להגדיר קטלוג עם כמה קטגוריות (bl://) (מומלץ) או קטלוג עם קטגוריה אחת (gs://).
שתי האפשרויות תומכות בהקצאת הרשאות גישה פרטניות.
קטלוג עם כמה קטגוריות (bl://) (מומלץ)
הגישה הזו מאפשרת לכם לתת שם לקטלוג באופן עצמאי בלי קשר לשם של קטגוריה, וגם להגדיר כמה קטגוריות לקטלוג אחד. ב-API הבסיסי, ההגדרה הזו תואמת להגדרה CATALOG_TYPE_BIGLAKE.
שיקולים:
- מיקום ברירת מחדל: מציינים נתיב לקטגוריה (
default_location) או לנתיב משנה (למשלgs://my-bucket/path) שישמש כמיקום ברירת המחדל לאחסון. כל משאבי הקטלוג (מרחבי שמות וטבלאות) צריכים להיות ממוקמים בנתיב שצוין. לדוגמה, אם מצייניםgs://my-bucket/path, אי אפשר לארח מרחבי שמות או טבלאות מתחת ל-gs://my-bucket/another/path. למרחבי שמות שנוצרו ללא מיקום מוגדר, נעשה שימוש ב-default_location. - מיקומים מוגבלים: אפשר גם לספק הגדרת
restricted_locationsאופציונלית לדליים או לנתיבים נוספים שבהם אפשר ליצור מרחבי שמות וטבלאות. אם מציינים נתיב משנה (לדוגמה,gs://my-bucket/path), כל המשאבים שנוצרים באמצעות ההגדרה הזו חייבים להיות בנתיב הזה (לדוגמה, אי אפשר לארח מרחבי שמות או טבלאות ב-gs://my-bucket/path).gs://my-bucket/another/path - דרישות לגבי קבוצת אזורים גיאוגרפיים: למרות שאפשר להשתמש בדליים בפרויקטים שונים, באזורים שונים ולהגדיר להם הגדרות שונות (למשל אזור יחיד, שני אזורים או מספר אזורים), כל המיקומים ב-Cloud Storage, כולל מיקום ברירת המחדל ומיקומים מוגבלים, צריכים להיות באותה קבוצת אזורים גיאוגרפיים (למשל ארה"ב, אירופה, קנדה או אסיה). לדוגמה, אי אפשר להגדיר קטגוריה במספר אזורים בארה"ב עם קטגוריה באירופה או בקנדה.
- כמה קטלוגים בכל דלי: אפשר להפנות כמה קטלוגים לאותו דלי (לדוגמה, באמצעות מיקומי ברירת מחדל שונים או מיקומים מוגבלים). עם זאת, לא מומלץ להשתמש בהגדרה הזו כי היא עלולה לגרום לסתירות במטא-נתונים, להחלפה לא מכוונת של נתונים או לבעיות אבטחה כמו דליפת הרשאות.
- מרחבי שמות: מאפשרים לציין מיקומים מותאמים אישית של מרחבי שמות, כל עוד הם נמצאים בנתיב שהוגדר במיקומים שמוגדרים כברירת מחדל או במיקומים מוגבלים.
שימו לב: לטבלאות שנוצרות בקטלוגים האלה מתווסף אוטומטית מחרוזת אקראית בסוף הנתיבים הפיזיים שלהן כדי למנוע התנגשויות (לדוגמה,
gs://{bucket_name}/{namespace_name}/{table_name}/{random_suffix}). מידע נוסף זמין במאמר כללי ניהול ואבטחה של טבלאות.
קטלוג של דלי יחיד (gs://)
זוהי הגישה הקודמת שבה הקטלוג מנהל ישירות את המטא-נתונים ואת קובצי הנתונים של Apache Iceberg בקטגוריה אחת של Cloud Storage שאתם מציינים. ב-API הבסיסי, ההגדרה הזו תואמת להגדרה CATALOG_TYPE_GCS_BUCKET.
בקטלוגים עם קטגוריה אחת, שם הקטלוג מוגדר כשם הקטגוריה.
לדוגמה, אם יצרתם קטגוריה לאחסון הקטלוג ונתתם לה את השם iceberg-bucket, גם שם הקטלוג וגם שם הקטגוריה יהיו iceberg-bucket. הערך הזה משמש בהמשך כששולחים שאילתה לקטלוג ב-BigQuery באמצעות התחביר של P.C.N.T. לדוגמה
my-project.lakehouse-catalog-id.quickstart_namespace.quickstart_table.
שיקולים:
מגבלות של סוגי קטלוגים מדור קודם. לא מומלץ להשתמש בהגדרת דלי יחיד מדור קודם בפרויקטים חדשים. לשיטה הזו יש כמה מגבלות חשובות:
- שם הקטלוג: נעול לשם הקטגוריה הבסיסית של Cloud Storage.
- פרויקט: נעול לפרויקט של הקטגוריה (קטלוגים חוצי-פרויקטים לא אפשריים).
- אזור: נגזר באופן בלעדי מהמיקום של הדלי ולא ניתן להתאים אותו אישית.
- אחסון: מגביל את הקטלוג לקטגוריה אחת (ללא מיקומים מוגבלים).
קטלוג אחד לכל הגבלת קטגוריה: בסוג הקטלוג הזה מדור קודם, יכול להיות לכם רק קטלוג אחד לכל קטגוריה, ושם הקטלוג חייב להיות זהה לשם הקטגוריה.
שדרוג לקטלוג עם כמה קטגוריות (
bl://) (מומלץ): אפשר לשדרג קטלוג קיים עם קטגוריה אחת (gs://) לקטלוג עם כמה קטגוריות (bl://) (מומלץ). הקטלוג המשודרג שומר על השם של הקטגוריה המקורית. לאחר מכן, תוכלו לשייך כמה מאגרי מידע לקטלוג ולהגדיר מיקומים מוגבלים.
אזורים של קטגוריות וקטלוגים
האזור של נקודת קצה של קטלוג בקטלוג של זמן הריצה של Lakehouse נקבע לפי האזור של קטגוריה של Cloud Storage הבסיסית שלו:
- קטלוג של כמה קטגוריות (
bl://): (מומלץ): האזור של הקטלוג נגזר מהקטגוריה שהוגדרה ב-default_location. - קטגוריה אחת (
gs://): האזור של הקטלוג נגזר באופן בלעדי מהקטגוריה שמשויכת לקטלוג, ואי אפשר להתאים אותו אישית.
האזור של הקטלוג הממופה משתנה בהתאם לסוג האזור של ה-bucket:
- אזור יחיד: האזור בקטלוג תואם בדיוק לאזור בדלי.
- שני אזורים: האזור בקטלוג תואם לשני האזורים של הבאקט (למשל
ASIA1אוNAM4). - מספר אזורים: האזור בקטלוג מוגדר למיקום אזורי ספציפי בתוך התחום הגיאוגרפי של מספר האזורים. יכול להיות שברירת המחדל לא תתאים למיקומים נפוצים במספר אזורים ב-BigQuery, כמו
USו-EU(לדוגמה, באקט במיקוםUSבמספר אזורים ימופה ל-us-central1או ל-us-east4).
כש-BigQuery מריץ שאילתה על טבלאות בקטלוגים האלה, הוא מעביר את השאילתה לאזור הראשי של הקטלוג. אם שולחים שאילתות לטבלאות באזור וירטואלי ספציפי (למשל US או EU) והמטא-נתונים של הקטלוג לא נמצאים במיקום הזה, השאילתה תיכשל.
אזורים ראשיים למספר אזורים
כדי לאפשר ל-BigQuery להריץ שאילתות בטבלאות הקטלוג מאזור US או מאזור EU שפרוס במספר אזורים, צריך לציין את US או EU כאזור הראשי כשיוצרים את הקטלוג.
אתם יכולים לציין אזור מרובה (US או EU) כאזור הראשי בהגדרות הבאות:
אם קטגוריית default_location היא:
- קטגוריית
USאוEUבמספר אזורים. - קטגוריה באזור יחיד בתוך אותם אזורים (למשל
us-central1אוeurope-west4). - קטגוריה של שני אזורים או קטגוריה מותאמת אישית של שני אזורים באזורים האלה (למשל
NAM4אוEUR4).
ההגדרה של העותק המשוכפל הראשי מתבצעת כשיוצרים את הקטלוג, אבל אפשר לבצע מעבר לגיבוי (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.