יצירת קטלוג (כמו קטלוג REST של Apache Iceberg או קטלוג Apache Hive) יוצרת נקודת קצה לניהול בתוך קטלוג זמן הריצה של Lakehouse. נקודת הקצה הזו מצביעה על קטגוריית Cloud Storage בסיסית, ומספקת שכבת מטא-נתונים שמאפשרת למנועי שאילתות ולעומסי עבודה בקוד פתוח לקיים אינטראקציה ישירה עם הטבלאות.
כשיוצרים קטלוג ל-Lakehouse for Apache Iceberg, אפשר לבחור בין פרטי כניסה של משתמש קצה לבין מצב של הקצאת פרטי כניסה להענקת גישה לאחסון.
לפני שמתחילים
-
מפעילים את BigLake API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת קטלוג, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
הכול:
- אדמין BigLake (
roles/biglake.admin) בפרויקט - אדמין לניהול נפח האחסון (
roles/storage.admin) בפרויקט
- אדמין BigLake (
-
חשבון שירות של קטלוג זמן ריצה של Lakehouse שמוקצה אוטומטית במצב של מכירת אישורים:
Storage Object User (
roles/storage.objectUser) בקטגוריה של Cloud Storage ביעד. אחרי שיוצרים את הקטלוג, צריך להעניק במפורש את התפקיד Storage Object User (roles/storage.objectUser) בקטגוריית האחסון לחשבון השירות של הקטלוג של זמן הריצה של Lakehouse שהוקצה אוטומטית.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת קטלוג
יוצרים נקודת קצה של קטלוג.
המסוף
במסוף Google Cloud , פותחים את הדף Lakehouse.
בוחרים באפשרות יצירת קטלוג. ייפתח הדף Create catalog.
בוחרים את הגדרות הקטלוג:
- כדי ליצור קטלוג REST של Apache Iceberg, בוחרים באפשרות Iceberg REST catalog (קטלוג REST של Iceberg).
- כדי ליצור קטלוג Apache Hive, בוחרים באפשרות Hive catalog (קטלוג Hive).
מגדירים את הקטלוג:
- אם בוחרים באפשרות Iceberg REST catalog, בוחרים באפשרות Cloud Storage bucket בשדה catalog type (סוג הקטלוג), ובוחרים את הקטגוריה של Cloud Storage שבה רוצים להשתמש עם הקטלוג. יכול להיות רק קטלוג אחד לכל קטגוריה, והשם של הקטלוג זהה לשם של הקטגוריה.
- אם בוחרים באפשרות Hive catalog (קטלוג Hive), מזינים שם ייחודי לקטלוג ובוחרים את הנתיב המשויך ב-Cloud Storage.
בקטע שיטת אימות, בוחרים באפשרות פרטי הכניסה של משתמש הקצה או באפשרות מצב מכירת פרטי כניסה.
אם בוחרים באפשרות Credential vending mode (מצב אספקת אישורים), חשבון השירות של קטלוג זמן הריצה של Lakehouse שהוקצה אוטומטית צריך את התפקיד Storage Object User (משתמש באובייקט אחסון) (
roles/storage.objectUser) באופן מפורש בכל הקטגוריות המשויכות של Cloud Storage. כברירת מחדל, אין לו גישה בכלל. בלי התפקיד הזה, לפרטי הכניסה שנמכרים אין היקף מספיק כדי לבצע כתיבה לאחסון.לוחצים על יצירה.
הקטלוג נוצר והדף פרטי הקטלוג נפתח.
בקטע שיטת אימות, בוחרים באפשרות הגדרת הרשאות של מאגר.
בתיבת הדו-שיח, לוחצים על אישור.
כך מוודאים שלחשבון השירות של הקטלוג הוקצה התפקיד 'משתמש באובייקט אחסון' (
roles/storage.objectUser) בכל קטגוריות האחסון המשויכות. אם אתם יוצרים קטלוגים באמצעותgcloudאו Terraform, אתם צריכים להעניק את התפקיד הזה באופן ידני.
gcloud
כדי ליצור קטלוג באמצעות gcloud, מריצים את הפקודה gcloud biglake iceberg catalogs create.
יצירת קטלוג BigLake
כדי ליצור קטלוג BigLake, מגדירים את --catalog-type ל-biglake ומציינים את מיקום ברירת המחדל של מחסן הנתונים:
gcloud biglake iceberg catalogs create CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="biglake" \ --default-location="DEFAULT_LOCATION" \ [--restricted-locations="RESTRICTED_LOCATIONS"] \ [--credential-mode="CREDENTIAL_MODE"] \ [--primary-location="PRIMARY_LOCATION"]
יצירת קטלוג של קטגוריות ב-Cloud Storage
כדי ליצור קטלוג של קטגוריות ב-Cloud Storage, מגדירים את --catalog-type ל-gcs-bucket:
gcloud biglake iceberg catalogs create CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="gcs-bucket" \ [--credential-mode="CREDENTIAL_MODE"]
מחליפים את מה שכתוב בשדות הבאים:
-
CATALOG_ID: המזהה של קטלוג זמן הריצה של Lakehouse. בקטלוגים של קטגוריות Cloud Storage, השם הזה חייב להיות זהה לשם של קטגוריית Cloud Storage. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
DEFAULT_LOCATION: נתיב הבסיס ב-Cloud Storage לנתוני הקטלוג ולמטא-נתונים, בפורמטgs://my-bucket/path. -
RESTRICTED_LOCATIONS: (אופציונלי) רשימה מופרדת בפסיקים של נתיבים או קטגוריות אחסון נוספים שמותרים. -
CREDENTIAL_MODE: שיטת האימות. משתמשים ב-end-userבשביל פרטי כניסה של משתמשי קצה או ב-vended-credentialsבשביל מצב מכירת פרטי כניסה. -
PRIMARY_LOCATION: (אופציונלי) האזור הראשי של הקטלוג (למשלUSאוEU) כדי להבטיח תאימות ל-BigQuery.
REST
כדי ליצור נקודת קצה לניהול קטלוג באמצעות API בארכיטקטורת REST, שולחים בקשת POST
לנקודת הקצה CreateIcebergCatalog:
POST /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs?icebergCatalogId=CATALOG_ID
גוף הבקשה חייב להכיל מטען ייעודי (payload) בפורמט JSON עם הגדרות הקטלוג, כמו מחסן הנתונים הבסיסי של Cloud Storage ושיטת האימות.IcebergCatalog
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
CATALOG_ID: המזהה של קטלוג זמן הריצה של Lakehouse.