יצירת שירות פדרציה של מטא-נתונים

בדף הזה מוסבר איך ליצור שירות פדרציה של מטא-נתונים בשביל Dataproc Metastore. שירות פדרציה מאפשר לכם לגשת למטא-נתונים שמאוחסנים בכמה מקורות מנקודת קצה אחת של gRPC.

מידע נוסף על אופן הפעולה של איחוד שירותי אימות הזהות והמגבלות שלו זמין במאמר מידע על איחוד מטא-נתונים.

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

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

כדי לקבל את ההרשאות שדרושות ליצירת שירות פדרציה ולצירוף אליו אשכול Dataproc, בהתאם לעיקרון ההרשאות המינימליות, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

  • כדי לגשת לשירות הפדרציה: Federation accessor (roles/metastore.federationAccessor) בחשבון המשתמש או בחשבון השירות
  • כדי להעניק שליטה מלאה בכל משאבי Dataproc Metastore: עורך של Dataproc Metastore (roles/metastore.editor) בחשבון המשתמש או בחשבון השירות
  • כדי להשלים פעולות על מטא-נתונים ב-Dataproc Metastore שהוגדר עם שירות פדרציה: הבעלים של Metastore ‏ (metastore.metadataEditor) בחשבון המשתמש או בחשבון השירות
  • כדי ליצור אשכול Dataproc: Dataproc worker (roles/dataproc.worker) on on the Dataproc VM חשבון שירות
  • (אופציונלי) כדי לגשת למערכי נתונים ב-BigQuery: משתמשים בתפקיד מוגדר מראש ב-BigQuery שמתאים לתרחיש השימוש שלכם בחשבון המשתמש או בחשבון השירות
  • (אופציונלי) כדי לגשת ל-Dataplex Universal Catalog Lakes (גרסת Preview): משתמשים בתפקיד מוגדר מראש של Dataplex Universal Catalog שמתאים לתרחיש השימוש שלכם בחשבון המשתמש או בחשבון השירות

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

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

ההרשאות הנדרשות

כדי ליצור שירות פדרציה ולצרף אליו אשכול Dataproc, נדרשות ההרשאות הבאות, בהתאם לעיקרון של הרשאות מינימליות:

  • כדי ליצור Dataproc Metastore: metastore.services.create בחשבון המשתמש או בחשבון השירות
  • כדי להציג רשימה, לקבל, ליצור, לעדכן ולמחוק שירות פדרציה: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list בחשבון המשתמש או בחשבון השירות
  • כדי לבצע פעולות על מטא-נתונים ב-Dataproc Metastore: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy בחשבון המשתמש או בחשבון השירות
  • (אופציונלי) כדי לגשת למערכי נתונים של BigQuery: For more information, see BigQuery permissions בחשבון המשתמש או בחשבון השירות
  • (אופציונלי) כדי לגשת ל-Dataplex Universal Catalog Lakes (תצוגה מקדימה): For more information, see Dataplex Universal Catalog permissions בחשבון המשתמש או בחשבון השירות

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

מידע נוסף על הרשאות ותפקידים ספציפיים ב-Dataproc Metastore זמין במאמר ניהול גישה ל-Dataproc Metastore באמצעות ניהול זהויות והרשאות גישה.

יצירת שירות פדרציה

בהוראות הבאות מוסבר איך ליצור שירות פדרציה ולצרף אותו למקור. אחרי שתשלימו את השלבים האלה, תוכלו לצרף את שירות הפדרציה שלכם לאשכול Dataproc.

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

המסוף

  1. במסוף Google Cloud , פותחים את הדף Dataproc Metastore:

    פתיחת Dataproc Metastore

  2. בתפריט הניווט של Dataproc, לוחצים על Federation (פדרציה).

    ייפתח הדף של שירותי ה-metastore Federated.

  3. בסרגל התפריטים של מאגר המידע המאוחד, לוחצים על Create (יצירה).

    ייפתח הדף Create federation service.

  4. בשדה שם הפדרציה, מזינים שם ייחודי לשירות.

    מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.

  5. בוחרים את מיקום הנתונים.

    חשוב לוודא שיוצרים את שירות הפדרציה באותם אזורים של מקורות Dataproc Metastore.

  6. בוחרים את הגרסה של Hive.

  7. כדי להוסיף מקור לשירות הפדרציה, לוחצים על הוספת מקור.

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

    1. בשדה סוג המקור, בוחרים את המקור של הפדרציה.

      אפשר לבחור מופע של Dataproc Metastore, פרויקט שמכיל מערך נתונים אחד או יותר של BigQuery, או אגם של Dataplex Universal Catalog (בגרסת Preview).

    2. בשדה מקור, מזינים את הפרטים הבאים:

      • שירות Dataproc Metastore.

        1. בשדה Selected project, לוחצים על Browse ובוחרים את הפרויקט שמכיל את Dataproc Metastore שרוצים להשתמש בו כמקור.

          מוודאים שמקורות Dataproc Metastore משתמשים בגרסת Hive שתואמת לשירות הפדרציה. המאגר הראשי של המטא-נתונים צריך להשתמש בגרסת Hive שגדולה מגרסת שירות הפדרציה או שווה לה.

        2. בתפריט הנפתח Metastore service, בוחרים את Dataproc Metastore שרוצים להשתמש בו כמקור.

        3. (אופציונלי) מסמנים את תיבת הסימון Show Metastore services outside my region (הצגת שירותי Metastore מחוץ לאזור שלי). בקטע הזה מפורט שירות Dataproc Metastore מאזורים אחרים.

      • ל-BigQuery. בשדה פרויקט נבחר, לוחצים על עיון ובוחרים את מזהה הפרויקט שמכיל את מערך הנתונים ב-BigQuery.

      • ל-Dataplex Universal Catalog (תצוגה מקדימה). בשדה Selected project, לוחצים על Browse ובוחרים את מזהה הפרויקט שמכיל את אגם המידע של Dataplex Universal Catalog.

    3. לוחצים על סיום.

  8. כדי ליצור ולהפעיל את השירות, לוחצים על Submit (שליחה).

    עכשיו אפשר לצרף את שירות האיחוד לאשכול Dataproc.

‫CLI של gcloud

כדי ליצור פדרציה עם Dataproc Metastore, מריצים את הפקודה הבאה.

gcloud metastore federations create FEDERATION \
  --location LOCATION \
  --backends RANK=BACKEND_METASTORE \
  --hive-metastore-version HIVE_VERSION

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

  • FEDERATION: השם של שירות הפדרציה של Dataproc Metastore.
  • LOCATION: Google Cloud האזור שבו רוצים ליצור את האיחוד.
  • RANK: מספר דירוג לכל אחד ממאגרי המטא-נתונים של הקצה העורפי שמשמשים לפתרון התנגשויות בשמות של מסדי נתונים. שירות הפדרציה שולח שאילתות למספרים עם דירוג נמוך יותר קודם. לדוגמה, מתבצעת שאילתה במאגר מטא-נתונים של קצה עורפי עם דירוג 1 לפני שאילתה במאגר מטא-נתונים עם דירוג 2. הערך הזה חייב להיות מספר שלם. לדוגמה, --backends 1=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: המשאב היחסי של כל מאגר מטא-נתונים של קצה עורפי בפורמט הבא: METASTORE_TYPE:METASTORE_NAME. לשירותי Dataproc Metastore, משתמשים ב-dpms:SERVICE_ID. אפשר למצוא את SERVICE_ID במיקום הבא: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: הגרסה של Hive Metastore (3.1.2 או 2.3.6).

עדכון שירות איחוד

בהוראות הבאות מוסבר איך לעדכן שירות פדרציה. אתם יכולים לבצע את המשימות הבאות:

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

המסוף

https://cloud.google.com/dataproc-metastore/docs/create-federation

  1. במסוף Google Cloud , פותחים את הדף Dataproc Metastore:

    פתיחת Dataproc Metastore

  2. בתפריט הניווט של Dataproc, לוחצים על Federation (פדרציה).

    ייפתח הדף של שירותי ה-metastore Federated.

  3. בדף Federated metastore services, לוחצים על שם השירות שרוצים לעדכן.

    ייפתח הדף פרטי השירות.

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

    ייפתח הדף עריכת השירות.

  5. בוחרים את הערכים שרוצים לעדכן.

  6. כדי לעדכן את השירות, לוחצים על שליחה.

‫CLI של gcloud

כדי לעדכן איחוד עם Dataproc Metastore, מריצים את הפקודה הבאה.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION: השם של שירות הפדרציה של Dataproc Metastore.
  • LOCATION: Google Cloud האזור שבו רוצים ליצור את האיחוד.
  • RANK: מספר דירוג לכל אחד ממאגרי המטא-נתונים של הקצה העורפי שמשמשים לפתרון התנגשויות בשמות של מסדי נתונים. שירות הפדרציה שולח שאילתות למספרים עם דירוג נמוך יותר קודם. לדוגמה, מתבצעת שאילתה במאגר מטא-נתונים של קצה עורפי עם דירוג 1 לפני שאילתה במאגר מטא-נתונים עם דירוג 2. הערך הזה חייב להיות מספר שלם. לדוגמה, --backends 2=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: המשאב היחסי של כל מאגר מטא-נתונים של קצה עורפי בפורמט הבא: METASTORE_TYPE:METASTORE_NAME. לשירותי Dataproc Metastore, משתמשים ב-dpms:SERVICE_ID. אפשר למצוא את SERVICE_ID במיקום הבא: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: הגרסה של Hive Metastore (3.1.2 או 2.3.6).

צירוף אשכול Dataproc לשירות פדרציה

בהוראות הבאות מוסבר איך ליצור אשכול Dataproc ולצרף אליו נקודת קצה של שירות פדרציה בתור מאגר המידע המרכזי שלו.

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

‫CLI של gcloud

כדי ליצור אשכול Dataproc ולצרף נקודת קצה של פדרציה, מריצים את הפקודה הבאה של gcloud Dataproc clusters create.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

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

  • CLUSTER_NAME: השם של אשכול Dataproc החדש.
  • PROJECT_ID: Google Cloud מזהה הפרויקט שבו יוצרים את אשכול Dataproc.
  • LOCATION: האזור של אשכול Dataproc.
  • IMAGE_VERSION: גרסת תמונת Dataproc שרוצים להשתמש בה.

    חשוב לוודא שתמונת Dataproc שבה אתם משתמשים בפקודה הזו תואמת לגרסת Hive שבה נעשה שימוש בשירות הפדרציה שלכם. מידע נוסף זמין במאמר רשימת גרסאות של תמונות Dataproc.

  • SERVICE_ACCOUNT אופציונלי: חשבון השירות שבו אתם משתמשים כדי ליצור את אשכול Dataproc. אם לא מציינים חשבון שירות, האשכול משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

  • FEDERATION_URI: ה-URI של נקודת הקצה של שירות האיחוד.

  • FEDERATION_VERSION: גרסת Hive שבה משתמש שירות הפדרציה.

  • WAREHOUSE_DIR: ספריית מחסן הנתונים של Dataproc Metastore הראשי.

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