צור טבלה

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

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

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

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

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

  2. מפעילים את BigLake API, אם הוא עדיין לא מופעל.

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

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

    להפעלת ה-API

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

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

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

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

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

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

יכולות ותמיכה בטבלאות

כשמשתמשים בטבלאות בקטלוג של Lakehouse runtime, כדאי להבין את הסוגים השונים של הטבלאות ואת היכולות שלהן. מידע נוסף על שימוש בטבלאות Apache Iceberg

טבלאות Iceberg נתמכות

יש תמיכה רק בטבלאות Apache Iceberg V2 (זמינות כללית) ו-V3 (גרסת Preview). אין תמיכה בטבלאות Iceberg V1. כדי לשדרג טבלאות קיימות בגרסה 1, אפשר לעיין במאמר שדרוג טבלאות Iceberg בגרסה 1 לגרסה 2.

שימוש באפשרויות של הטבלה (תצוגה מקדימה)

אתם יכולים להגדיר מאפיינים ספציפיים של טבלאות כדי להשתמש ביכולות מנוהלות של BigQuery, כמו שפת הטיפול בנתונים (DML) ב-BigQuery וניהול אוטומטי של טבלאות. התכונות האלה מופעלות בדרכים שונות בהתאם למקום שבו הטבלה נוצרה:

  • מ-BigQuery: שפת הטיפול בנתונים (DML) ב-BigQuery וניהול אוטומטי של טבלאות מופעלים כברירת מחדל.
  • ממנועי קוד פתוח: כדי להצטרף, צריך להגדיר במפורש את מאפייני הטבלה. מידע נוסף מופיע במאמר הגדרת אפשרויות של טבלה.

צור טבלה

יוצרים טבלת Iceberg.

המסוף

  1. במסוף Google Cloud , עוברים אל Lakehouse.

    מעבר אל Lakehouse

  2. בוחרים קטלוג קיים או יוצרים קטלוג חדש אם אין לכם קטלוג.

  3. בוחרים מרחב שמות קיים או יוצרים מרחב שמות חדש אם אין לכם כזה.

  4. בסרגל התפריטים, לוחצים על + יצירת טבלה.

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

  6. בקטע שם הטבלה, מזינים שם ייחודי לטבלה.

  7. אופציונלי: בקטע מאפיינים, מגדירים את מאפייני הטבלה. מוצגים מאפיינים מוגדרים מראש כמו gcp.biglake.bigquery-dml.enabled ו-gcp.biglake.table-management.enabled.

    לדוגמה, אפשר לשנות את הערכים האלה ל-true כדי להפעיל את שפת הטיפול בנתונים (DML) ב-BigQuery או ניהול אוטומטי של טבלאות. מידע נוסף מופיע במאמר בנושא הגדרת אפשרויות לטבלה.

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

הטבלה שלכם מופיעה בדף פרטי מרחב השמות.

Spark

spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")

מחליפים את הערכים הבאים:

כדי להפעיל פעולה הדדית של קריאה/כתיבה וניהול טבלאות (גרסת Preview), מוסיפים את המאפיינים לסעיף TBLPROPERTIES:

TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);

מחליפים את הערכים הבאים:

  • ‫SCHEMA_NAME: השם של הסכימה.
  • ‫TABLE_NAME: שם לטבלה.

כדי להפעיל יכולת פעולה הדדית של קריאה/כתיבה וניהול טבלאות (גרסת Preview), מוסיפים את המאפיינים האלה לסעיף WITH:

WITH (
  "gcp.biglake.bigquery-dml.enabled" = 'true',
  "gcp.biglake.table-management.enabled" = 'true'
)

gcloud

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

gcloud biglake iceberg tables create \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --create-from-file="TABLE_DEFINITION_FILE"

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

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CATALOG_ID: המזהה של הקטלוג.
  • ‫NAMESPACE_NAME: השם של מרחב השמות של הקטלוג.
  • ‫TABLE_DEFINITION_FILE: הנתיב לקובץ JSON שמכיל את הגדרת טבלת Iceberg.

BigQuery

כדי ליצור טבלת Apache Iceberg בקטלוג של Lakehouse runtime מ-BigQuery, משתמשים בהצהרת GoogleSQL CREATE TABLE הבאה. כשיוצרים טבלה מ-BigQuery, שפת ה-DML של BigQuery וניהול הטבלאות האוטומטי מופעלים כברירת מחדל.

CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);

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

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • ‫CATALOG_ID: מזהה קטלוג זמן הריצה של Lakehouse
  • ‫NAMESPACE: שם מרחב השמות של Iceberg
  • ‫TABLE_NAME: שם לטבלת Iceberg

REST

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

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

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

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

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CATALOG_ID: המזהה של הקטלוג.
  • ‫NAMESPACE_NAME: השם של מרחב השמות של הקטלוג.

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