יצירת קטלוג

יצירת קטלוג (כמו קטלוג REST של Apache Iceberg או קטלוג Apache Hive) יוצרת נקודת קצה לניהול בתוך קטלוג זמן הריצה של Lakehouse. נקודת הקצה הזו מצביעה על קטגוריית Cloud Storage בסיסית, ומספקת שכבת מטא-נתונים שמאפשרת למנועי שאילתות ולעומסי עבודה בקוד פתוח לקיים אינטראקציה ישירה עם הטבלאות.

כשיוצרים קטלוג ל-Lakehouse for Apache Iceberg, אפשר לבחור בין פרטי כניסה של משתמש קצה לבין מצב של הקצאת פרטי כניסה להענקת גישה לאחסון.

לפני שמתחילים

  1. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  2. מפעילים את BigLake API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות ליצירת קטלוג, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

  • הכול:
  • חשבון שירות של קטלוג זמן ריצה של Lakehouse שמוקצה אוטומטית במצב של מכירת אישורים: Storage Object User (roles/storage.objectUser) בקטגוריה של Cloud Storage ביעד. אחרי שיוצרים את הקטלוג, צריך להעניק במפורש את התפקיד Storage Object User (roles/storage.objectUser) בקטגוריית האחסון לחשבון השירות של הקטלוג של זמן הריצה של Lakehouse שהוקצה אוטומטית.

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

יצירת קטלוג

יוצרים נקודת קצה של קטלוג.

המסוף

  1. במסוף Google Cloud , פותחים את הדף Lakehouse.

    מעבר אל Lakehouse

  2. בוחרים באפשרות יצירת קטלוג. ייפתח הדף Create catalog.

  3. בוחרים את הגדרות הקטלוג:

    • כדי ליצור קטלוג REST של Apache Iceberg, בוחרים באפשרות Iceberg REST catalog (קטלוג REST של Iceberg).
    • כדי ליצור קטלוג Apache Hive, בוחרים באפשרות Hive catalog (קטלוג Hive).
  4. מגדירים את הקטלוג:

    • אם בוחרים באפשרות Iceberg REST catalog, בוחרים באפשרות Cloud Storage bucket בשדה catalog type (סוג הקטלוג), ובוחרים את הקטגוריה של Cloud Storage שבה רוצים להשתמש עם הקטלוג. יכול להיות רק קטלוג אחד לכל קטגוריה, והשם של הקטלוג זהה לשם של הקטגוריה.
    • אם בוחרים באפשרות Hive catalog (קטלוג Hive), מזינים שם ייחודי לקטלוג ובוחרים את הנתיב המשויך ב-Cloud Storage.
  5. בקטע שיטת אימות, בוחרים באפשרות פרטי הכניסה של משתמש הקצה או באפשרות מצב מכירת פרטי כניסה.

    אם בוחרים באפשרות Credential vending mode (מצב אספקת אישורים), חשבון השירות של קטלוג זמן הריצה של Lakehouse שהוקצה אוטומטית צריך את התפקיד Storage Object User (משתמש באובייקט אחסון) ‏(roles/storage.objectUser) באופן מפורש בכל הקטגוריות המשויכות של Cloud Storage. כברירת מחדל, אין לו גישה בכלל. בלי התפקיד הזה, לפרטי הכניסה שנמכרים אין היקף מספיק כדי לבצע כתיבה לאחסון.

  6. לוחצים על יצירה.

    הקטלוג נוצר והדף פרטי הקטלוג נפתח.

  7. בקטע שיטת אימות, בוחרים באפשרות הגדרת הרשאות של מאגר.

  8. בתיבת הדו-שיח, לוחצים על אישור.

    כך מוודאים שלחשבון השירות של הקטלוג הוקצה התפקיד 'משתמש באובייקט אחסון' (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.