יצירת קטלוג

כשיוצרים נקודת קצה של קטלוג (למשל, נקודת קצה של קטלוג Apache Iceberg REST או נקודת קצה של קטלוג Apache Hive), נוצרת נקודת קצה לניהול בתוך הקטלוג של Lakehouse runtime.

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

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

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

  1. כדאי לקרוא את המאמר מידע על קטלוג זמן הריצה של Lakehouse כדי להבין איך קטלוג זמן הריצה של Lakehouse פועל ומהן המגבלות של השירות.
  2. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.

    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.

    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

    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.

    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 הבאים:

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

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

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

יצירת קטלוג

יוצרים קטלוג.

יצירת קטלוג

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

המסוף

יצירת קטלוג עם כמה מאגרי מידע (bl://) (מומלץ)

ההגדרה הזו מאפשרת לקטלוג לשייך כמה קטגוריות, וגם מאפשרת לתת לקטלוג שם שלא תלוי בשם של אף קטגוריה.

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

    מעבר אל Lakehouse

  2. לוחצים על יצירת קטלוג.

  3. בקטע Catalog type (סוג הקטלוג), בוחרים באפשרות Iceberg Rest Catalog (קטלוג REST של Iceberg).

  4. בקטע Lakehouse catalog bucket options (אפשרויות של קטגוריות בקטלוג Lakehouse), בוחרים באפשרות Multiple bucket catalog (קטלוג של כמה קטגוריות).

  5. בשדה נתיב ברירת המחדל של Cloud Storage לקטלוג, מזינים את הנתיב של Cloud Storage שבו רוצים להשתמש עם הקטלוג או בוחרים אותו.

  6. בשדה מזהה קטלוג, מזינים שם בהתאמה אישית לקטלוג.

  7. בקטע מיקום ראשי, בוחרים מיקום. המיקום צריך להיות קרוב לאזורים של קטגוריית המקור.

  8. לוחצים על Continue.

  9. בשלב נתיבי נתונים, מוסיפים עוד נתיבים ב-Cloud Storage אם צריך.

  10. לוחצים על Continue.

  11. בקטע שיטת אימות, בוחרים באפשרות פרטי כניסה של משתמש קצה או מצב מכירת פרטי כניסה.

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

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

  13. אם בחרתם באפשרות Credential vending mode, מבצעים את השלבים הנוספים הבאים:

    1. בקטע שיטת אימות, לוחצים על הגדרת הרשאות של דלי.
    2. בתיבת הדו-שיח, לוחצים על אישור.

יצירת קטלוג של קטגוריה אחת (gs://)

  1. בשדה Catalog type (סוג הקטלוג), בוחרים באפשרות Iceberg Rest Catalog (קטלוג Iceberg Rest) או Hive Metastore (מאגר מטא נתונים של Hive).
  2. בקטע Lakehouse catalog bucket options (אפשרויות של קטלוג דלי ב-Lakehouse), בוחרים באפשרות Single bucket catalog (קטלוג של דלי יחיד).
  3. בשדה נתיב ברירת המחדל של Cloud Storage לקטלוג, מזינים את הנתיב של Cloud Storage שבו רוצים להשתמש עם הקטלוג או בוחרים אותו. (בקטלוג עם קטגוריה אחת (gs://), יכול להיות רק קטלוג אחד לכל קטגוריה, ושם הקטלוג זהה לשם הקטגוריה).
  4. לוחצים על Continue.
  5. בקטע שיטת אימות, בוחרים באפשרות פרטי כניסה של משתמש קצה או מצב מכירת פרטי כניסה.
  6. לוחצים על יצירה.
  7. אם בחרתם באפשרות Credential vending mode, מבצעים את השלבים הנוספים הבאים:
    1. בקטע שיטת אימות, לוחצים על הגדרת הרשאות של דלי.
    2. בתיבת הדו-שיח, לוחצים על אישור.

gcloud

יצירת קטלוג עם כמה מאגרי מידע (bl://) (מומלץ)

ההגדרה הזו מאפשרת לקטלוג לשייך כמה קטגוריות, וגם מאפשרת לתת לקטלוג שם שלא תלוי בשם של אף קטגוריה.

כדי ליצור קטלוג עם כמה קטגוריות (bl://) (מומלץ), מריצים את הפקודה gcloud biglake iceberg catalogs create.

gcloud biglake iceberg catalogs create \
    CATALOG_NAME \
    --project PROJECT_ID \
    --catalog-type biglake \
    --default-location DEFAULT_LOCATION \
    --credential-mode CREDENTIAL_MODE \
    [--restricted-locations RESTRICTED_LOCATIONS] \
    [--primary-location LOCATION]

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

  • CATALOG_NAME: שם לקטלוג. בקטלוגים מרובי-קטגוריות (מומלץ) (bl://), זהו השם של הקטלוג בהתאמה אישית. בקטלוגים של קטגוריה אחת (gs://), הערך הזה זהה למזהה הקטגוריה ב-Cloud Storage שמשמש עם קטלוג REST.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • DEFAULT_LOCATION: ציון מיקום האחסון שמוגדר כברירת מחדל לקטלוג. אפשר לציין קטגוריה (gs://my-bucket) או נתיב משנה (gs://my-bucket/path). כל מרחבי השמות והטבלאות בקטלוג צריכים להיות בנתיב שצוין. לדוגמה, אם מציינים gs://my-bucket/path, אי אפשר ליצור מרחבי שמות או טבלאות מתחת ל-gs://my-bucket/another/path.
  • CREDENTIAL_MODE: שיטת האימות. משתמשים ב-end-user בשביל פרטי כניסה של משתמשי קצה או ב-vended-credentials בשביל מצב מכירת פרטי כניסה.

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

  • RESTRICTED_LOCATIONS: (אופציונלי) רשימה מופרדת בפסיקים של מיקומי אחסון מורשים נוספים, בפורמט gs://my-bucket-1/...,gs://my-bucket-2/.... אם מציינים נתיב (למשל gs://my-bucket/path), כל מרחבי השמות או הטבלאות בתוך הקטגוריה הזו צריכים להיות בנתיב הזה. כל המיקומים המוגדרים לאחסון בענן, כולל מיקום ברירת המחדל והמיקומים המוגבלים, צריכים להיות באותה קבוצה של אזורים גיאוגרפיים או באותה סמכות שיפוט (למשל ארצות הברית, אירופה, קנדה או אסיה). לדוגמה, אי אפשר לערבב בין קטגוריה בארה"ב לבין קטגוריה באירופה. רשימת המיקומים הנתמכים מופיעה במאמר מיקומי Lakehouse.

    אזהרה: כדי למנוע חשיפה לא מורשית של פרטי הכניסה, מומלץ להימנע מהגדרת נתיבים חופפים עם קטלוגים אחרים. מידע נוסף זמין במאמר אחסון בכמה קטגוריות.

  • LOCATION: (אופציונלי) האזור הראשי של הקטלוג כדי להבטיח יכולת פעולה הדדית עם BigQuery. לקטגוריות ב-Cloud Storage באזור ארה"ב (לדוגמה, US או us-central1) או באזור האיחוד האירופי (לדוגמה, EU או europe-west4), צריך לציין US או EU בהתאמה כדי לוודא שאפשר לגשת לקטלוג ולבצע בו שאילתות ממספר האזורים התואם ב-BigQuery. מידע נוסף זמין במאמר אזורים של קטלוגים וקטגוריות.

יצירת קטלוג של קטגוריה אחת (gs://)

כדי ליצור קטלוג של קטגוריה אחת (gs://), מריצים את הפקודה הבאה:

gcloud biglake iceberg catalogs create \
    CATALOG_NAME \
    --project PROJECT_ID \
    --catalog-type gcs-bucket \
    --credential-mode CREDENTIAL_MODE

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

  • CATALOG_NAME: שם לקטלוג. בקטלוגים מרובי-מאגרים (bl://) (מומלץ), זהו שם הקטלוג המותאם אישית. בקטלוגים של קטגוריה אחת (gs://), הערך הזה זהה למזהה הקטגוריה ב-Cloud Storage שמשמש עם קטלוג REST.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • CREDENTIAL_MODE: שיטת האימות. משתמשים ב-end-user בשביל פרטי כניסה של משתמשי קצה או ב-vended-credentials בשביל מצב מכירת פרטי כניסה.

REST

יצירת קטלוג REST של Iceberg

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

POST /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs?icebergCatalogId=CATALOG_ID

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

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

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