רישום טבלה

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

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

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

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

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

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  3. מגדירים את קטלוג זמן הריצה של Lakehouse עם נקודת הקצה (endpoint) של קטלוג REST של Apache Iceberg.

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

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

  • רישום טבלה:
    • אדמין BigLake‏ (roles/biglake.admin) – הפרויקט שלכם
    • אדמין לניהול נפח האחסון (roles/storage.admin) – קטגוריה של Cloud Storage

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

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

רישום טבלה

רישום של טבלת Iceberg קיימת.

gcloud

כדי לרשום טבלה באמצעות gcloud, מריצים את הפקודה gcloud biglake iceberg tables register.

gcloud biglake iceberg tables register TABLE_NAME \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --metadata-location="METADATA_LOCATION" \
    [--overwrite]

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

  • TABLE_NAME: השם שיוקצה לטבלה הרשומה.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • CATALOG_ID: מזהה הקטלוג.
  • NAMESPACE_NAME: שם מרחב השמות של הקטלוג.
  • METADATA_LOCATION: ה-URI של Cloud Storage של קובץ ה-JSON האחרון של המטא-נתונים של הטבלה, לדוגמה: gs://my-bucket/path/to/metadata/00001.metadata.json.
  • --overwrite: (אופציונלי) החלפת הטבלה אם היא כבר קיימת.

REST

כדי לרשום טבלת Iceberg באמצעות ה-API בארכיטקטורת REST, שולחים בקשת POST לנקודת הקצה RegisterIcebergTable:

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/register

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

{
  "name": "TABLE_NAME",
  "metadata-location": "METADATA_LOCATION",
  "overwrite": OVERWRITE
}

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • CATALOG_ID: מזהה הקטלוג.
  • NAMESPACE_NAME: שם מרחב השמות של הקטלוג.
  • TABLE_NAME: השם של הטבלה הרשומה.
  • METADATA_LOCATION: ה-URI של Cloud Storage של קובץ ה-JSON האחרון של המטא-נתונים של הטבלה.
  • OVERWRITE: true כדי להחליף את הטבלה אם היא קיימת, אחרת false.

המאמרים הבאים