עדכון קטלוג

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

בנקודות קצה של קטלוג Apache Iceberg REST, אתם יכולים לעדכן את מצב פרטי הכניסה, את מיקום ברירת המחדל של המחסן ואת סוג הקטלוג. לדוגמה, אתם יכולים לשדרג קטלוג עם קטגוריה אחת לקטלוג עם כמה קטגוריות (מומלץ) כדי שהקטלוג יוכל להתפרס על פני כמה קטגוריות אחסון.

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

  1. במאמר מידע על הקטלוג הייעודי לזמן ריצה של Lakehouse מוסבר איך הקטלוג פועל ומהן המגבלות של השירות.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the BigLake API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

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

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

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

עדכון קטלוג

אפשר לעדכן קטלוג באמצעות מסוף Google Cloud ,‏ gcloud או ה-API בארכיטקטורת REST.

המסוף

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

    מעבר אל Lakehouse

  2. בשורה של הקטלוג שרוצים לעדכן, לוחצים על פעולות נוספות בקטלוג > עריכה.

  3. בקטע הגדרת הקטלוג, משנים את ההגדרות שרוצים לעדכן.

  4. לוחצים על שמירה.

gcloud

אפשרות 1: עדכון מאפייני הקטלוג

כדי לעדכן את מאפייני הקטלוג (כמו תיאור או מיקומים מוגבלים), מריצים את הפקודה gcloud biglake iceberg catalogs update:

gcloud biglake iceberg catalogs update CATALOG_ID \
    --project="PROJECT_ID" \
    [--description="DESCRIPTION"] \
    [--credential-mode="CREDENTIAL_MODE"] \
    [--restricted-locations="RESTRICTED_LOCATIONS"]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CATALOG_ID: המזהה של הקטלוג הייעודי לזמן ריצה ב-Lakehouse.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫DESCRIPTION: (אופציונלי) תיאור של הקטלוג.
  • ‫CREDENTIAL_MODE: (אופציונלי) שיטת האימות. משתמשים ב-end-user בשביל פרטי כניסה של משתמשי קצה או ב-vended-credentials בשביל מצב הפצת פרטי כניסה.
  • ‫RESTRICTED_LOCATIONS: (אופציונלי) רשימה מופרדת בפסיקים של קטגוריות או נתיבים נוספים של אחסון מותר. זהירות: אם תציינו כמה נתיבים או קטגוריות חופפים, זה עלול להוביל להתנגשויות במטא-נתונים, לדריסת נתונים בטעות או לבעיות אבטחה כמו דליפת הרשאות.

אפשרות 2: שדרוג קטלוג עם קטגוריה אחת לקטלוג עם כמה קטגוריות (מומלץ)

כדי לשדרג קטלוג קיים עם קטגוריה אחת לקטלוג עם כמה קטגוריות (מומלץ), מריצים את הפקודה gcloud biglake iceberg catalogs update ומגדירים את הפרמטר --catalog-type לערך biglake:

gcloud biglake iceberg catalogs update CATALOG_ID \
    --project="PROJECT_ID" \
    --catalog-type="biglake"

REST

אפשרות 1: עדכון מאפייני הקטלוג

כדי לשנות את המאפיינים של קטלוג (כמו התיאור שלו) באמצעות ה-API בארכיטקטורת REST, שולחים בקשת PATCH לנקודת הקצה UpdateIcebergCatalog עם הערך המתאים של updateMask:

PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=description

גוף הבקשה חייב להכיל מטען ייעודי (payload) בפורמט JSON של IcebergCatalog עם השדות שצריך לעדכן:

{
  "description": "Updated catalog description"
}

אפשרות 2: שדרוג קטלוג עם קטגוריה אחת לקטלוג עם כמה קטגוריות (מומלץ)

כדי לשדרג את הסוג באמצעות ה-API בארכיטקטורת REST, שולחים בקשת PATCH לנקודת הקצה (endpoint) UpdateIcebergCatalog עם catalogType ב-updateMask:

PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=catalog_type

גוף הבקשה חייב להכיל מטען ייעודי (payload) בפורמט JSON של IcebergCatalog עם סוג הקטלוג החדש:

{
  "catalog_type": "CATALOG_TYPE_BIGLAKE"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CATALOG_ID: המזהה של הקטלוג הייעודי לזמן ריצה ב-Lakehouse.

הערה: אחרי השדרוג לקטלוג עם כמה קטגוריות, צריך לעדכן את ההגדרות של מנוע השאילתות של הלקוח (כמו Spark או Trino) כדי לציין את הנתיב למחסן הנתונים בפורמט bl://: bl://projects/PROJECT_ID/catalogs/CATALOG_ID.