כשיוצרים טבלת Apache Iceberg, המערכת מאתחלת מטא-נתונים חדשים של הטבלה ואחסון במרחב שמות בקטלוג של זמן הריצה של Lakehouse.
אם רוצים להוסיף טבלת Apache Iceberg קיימת לקטלוג, אפשר לעיין במאמר בנושא רישום טבלה.
אם לא מציינים מיקום אחסון מפורש ברמת מרחב השמות או הטבלה במהלך יצירת הטבלה, המערכת יוצרת באופן אוטומטי את המטא-נתונים של הטבלה ואת ספריות הנתונים שלה במיקום ברירת המחדל של הקטלוג (שנגזר מקטגוריית הבסיס של Cloud Storage של הקטלוג) על ידי הוספת מזהי מרחב השמות והטבלה.
לפני שמתחילים
-
מפעילים את BigLake API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים - מגדירים את קטלוג זמן הריצה של Lakehouse עם נקודת הקצה (endpoint) של קטלוג REST של Apache Iceberg.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת טבלה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט ובקטגוריית האחסון:
-
יצירת טבלה:
- אדמין של BigLake (
roles/biglake.admin) – הפרויקט שלכם - אדמין לניהול נפח האחסון (
roles/storage.admin) – קטגוריית היעד של Cloud Storage
- אדמין של BigLake (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יכולות ותמיכה בטבלאות
כשמשתמשים בטבלאות בקטלוג של Lakehouse runtime, כדאי להבין את הסוגים השונים של הטבלאות ואת היכולות שלהן. מידע נוסף על שימוש בטבלאות Apache Iceberg
טבלאות Iceberg נתמכות
יש תמיכה רק בטבלאות Apache Iceberg V2 (זמינות כללית) ו-V3 (גרסת Preview). אין תמיכה בטבלאות Iceberg V1. כדי לשדרג טבלאות קיימות בגרסה 1, אפשר לעיין במאמר שדרוג טבלאות Iceberg בגרסה 1 לגרסה 2.
שימוש באפשרויות של הטבלה (תצוגה מקדימה)
אתם יכולים להגדיר מאפיינים ספציפיים של טבלאות כדי להשתמש ביכולות מנוהלות של BigQuery, כמו שפת הטיפול בנתונים (DML) ב-BigQuery וניהול אוטומטי של טבלאות. התכונות האלה מופעלות בדרכים שונות בהתאם למקום שבו הטבלה נוצרה:
- מ-BigQuery: שפת הטיפול בנתונים (DML) ב-BigQuery וניהול אוטומטי של טבלאות מופעלים כברירת מחדל.
- ממנועי קוד פתוח: כדי להצטרף, צריך להגדיר במפורש את מאפייני הטבלה. מידע נוסף מופיע במאמר הגדרת אפשרויות של טבלה.
צור טבלה
יוצרים טבלת Iceberg.
המסוף
במסוף Google Cloud , עוברים אל Lakehouse.
בוחרים קטלוג קיים או יוצרים קטלוג חדש אם אין לכם קטלוג.
בוחרים מרחב שמות קיים או יוצרים מרחב שמות חדש אם אין לכם כזה.
בסרגל התפריטים, לוחצים על + יצירת טבלה.
בקטע פורמט טבלה, בוחרים באפשרות אייסברג.
בקטע שם הטבלה, מזינים שם ייחודי לטבלה.
אופציונלי: בקטע מאפיינים, מגדירים את מאפייני הטבלה. מוצגים מאפיינים מוגדרים מראש כמו
gcp.biglake.bigquery-dml.enabledו-gcp.biglake.table-management.enabled.לדוגמה, אפשר לשנות את הערכים האלה ל-
trueכדי להפעיל את שפת הטיפול בנתונים (DML) ב-BigQuery או ניהול אוטומטי של טבלאות. מידע נוסף מופיע במאמר בנושא הגדרת אפשרויות לטבלה.לוחצים על יצירה.
הטבלה שלכם מופיעה בדף פרטי מרחב השמות.
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
מחליפים את הערכים הבאים:
-
NAMESPACE_NAME: השם של מרחב השמות. -
TABLE_NAME: שם לטבלה.
כדי להפעיל פעולה הדדית של קריאה/כתיבה וניהול טבלאות (גרסת 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: השם של מרחב השמות של הקטלוג.