יצירת קטלוג

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

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

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

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

  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, 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

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

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

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

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

יצירת קטלוג

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

יצירת קטלוג

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

המסוף

יצירת קטלוג עם כמה קטגוריות (מומלץ)

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

  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 או Hive Metastore.
  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

יצירת קטלוג עם כמה קטגוריות (מומלץ)

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

כדי ליצור קטלוג עם כמה מאגרי מידע (מומלץ), מריצים את הפקודה 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: שם לקטלוג. בקטלוגים של כמה קטגוריות (מומלץ), זהו השם המותאם אישית של הקטלוג.
  • ‫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: שם לקטלוג. בקטלוגים של קטגוריה אחת (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.