ניהול הקצאות של עומסי עבודה

‫BigQuery Reservation API מאפשר לכם לרכוש משבצות זמן ייעודיות (שנקראות התחייבויות), ליצור מאגרי משבצות זמן (שנקראים הזמנות) ולהקצות פרויקטים, תיקיות וארגונים להזמנות האלה.

יצירת הקצאות של הזמנות

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

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

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

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

  • הוא מוגדר עם מספר חריצים שאינו אפס להתאמה אוטומטית של נפח האחסון.

  • הוא מוגדר להשתמש ביחידות קיבולת (Slot) פנויות, ויש יחידות קיבולת (Slot) פנויות בפרויקט.

אם תנסו להקצות משאב להזמנה שלא עומדת לפחות באחד מהקריטריונים האלה, תוצג לכם ההודעה הבאה: Assignment is pending, your project will be executed as on-demand.

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

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

כדי ליצור הקצאה של הזמנה, אתם צריכים את ההרשאה הבאה לניהול זהויות והרשאות גישה (IAM):

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

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

הקצאת ארגון להזמנה

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה הזמנות.

  4. מוצאים את ההזמנה בטבלת ההזמנות.

  5. מרחיבים את האפשרות Actions (פעולות).

  6. לוחצים על יצירת מטלה.

  7. בקטע יצירת מטלה, לוחצים על עיון.

  8. מחפשים את הארגון או מנווטים אליו ובוחרים אותו.

  9. בקטע Job Type, בוחרים את סוג העבודה שרוצים להקצות להזמנה הזו. אלו הן חלק מהאפשרויות:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    מידע נוסף על סוגי משימות זמין במאמר הקצאות של הזמנות. ערך ברירת המחדל הוא QUERY.

    מידע נוסף על מתן הרשאה למשתמשים להשתמש ב-Gemini ב-BigQuery באמצעות מטלות במהדורת Enterprise Plus זמין במאמר הגדרת Gemini ב-BigQuery.

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

SQL

כדי להקצות ארגון להזמנה, משתמשים בהצהרת ה-DDL‏ CREATE ASSIGNMENT.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS (
      assignee = 'organizations/ORGANIZATION_ID',
      job_type = 'JOB_TYPE');

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

    • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה
    • LOCATION: המיקום של ההזמנה
    • RESERVATION_NAME: השם של ההזמנה
    • ASSIGNMENT_ID: מזהה ההקצאה

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

    • ORGANIZATION_ID: מזהה הארגון
    • JOB_TYPE: סוג העבודה להקצאה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL

  3. לוחצים על הפעלה.

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

BQ

כדי להקצות משימות של ארגון להזמנה, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=ORGANIZATION_ID \
    --job_type=JOB_TYPE \
    --assignee_type=ORGANIZATION

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

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור
  • LOCATION: המיקום של ההזמנה
  • RESERVATION_NAME: השם של ההזמנה
  • ORGANIZATION_ID: מזהה הארגון
  • JOB_TYPE: סוג העבודה להקצאה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL

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

הקצאת פרויקט או תיקייה להזמנה

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה הזמנות.

  4. מוצאים את ההזמנה בטבלת ההזמנות.

  5. מרחיבים את האפשרות Actions (פעולות).

  6. לוחצים על יצירת מטלה.

  7. בקטע יצירת מטלה, לוחצים על עיון.

  8. מדפדפים או מחפשים את הפרויקט או התיקייה ובוחרים אותם.

  9. בקטע Job Type, בוחרים את סוג העבודה שרוצים להקצות להזמנה הזו. אלו הן חלק מהאפשרויות:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

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

    מידע נוסף על סוגי משימות זמין במאמר בנושא הקצאות של הזמנות. ערך ברירת המחדל הוא QUERY.

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

SQL

כדי להקצות פרויקט להזמנה, משתמשים בהצהרת DDL‏ CREATE ASSIGNMENT.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");

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

    • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה
    • LOCATION: המיקום של ההזמנה
    • RESERVATION_NAME: השם של ההזמנה
    • ASSIGNMENT_ID: מזהה ההקצאה

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

    • PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה
    • JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, כמו QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND_CHANGE_DATA_CAPTURE,‏ BACKGROUND_COLUMN_METADATA_INDEX,‏ BACKGROUND_SEARCH_INDEX_REFRESH,‏ BACKGROUND או ML_EXTERNAL

  3. לוחצים על הפעלה.

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

BQ

כדי להקצות משימות להזמנה, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --job_type=JOB_TYPE \
    --assignee_type=PROJECT

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

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור
  • LOCATION: המיקום של ההזמנה
  • RESERVATION_NAME: השם של ההזמנה
  • PROJECT_ID: המזהה של הפרויקט להקצאה להזמנה הזו
  • JOB_TYPE: סוג העבודה שמוקצה להזמנה הזו, כמו QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND_CHANGE_DATA_CAPTURE,‏ BACKGROUND_COLUMN_METADATA_INDEX,‏ BACKGROUND_SEARCH_INDEX_REFRESH,‏ BACKGROUND או ML_EXTERNAL

Terraform

משתמשים במשאב google_bigquery_reservation_assignment.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

בדוגמה הבאה, פרויקט מוקצה להזמנה בשם my-reservation:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = google_bigquery_reservation.default.id
}

כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

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

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

הקצאות ספציפיות למשתמש

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

כשמערכת BigQuery מחליטה באיזה מקום שמור להשתמש עבור עבודה, היא בודקת את ההקצאות לפי הסדר הבא:

  1. בודקים את היררכיית המשאבים, מתחילים בפרויקט, עוברים לתיקיות האב ואז לארגון.
  2. בכל רמה בהיררכיה, BigQuery בודק קודם אם יש הקצאה שתואמת לחשבון המשתמש הספציפי שמריץ את המשימה.
  3. אם אין הקצאה שתואמת לחשבון המשתמש ברמה הזו, בודקים אם יש הקצאה כללית ללא חשבון משתמש באותה רמה.
  4. אם לא נמצאה הקצאה, עוברים לרמה הבאה בהיררכיה.

הקצאה ברמת הפרויקט ללא חשבון משתמש מבטלת הקצאה ברמת התיקייה עם חשבון משתמש.

פורמטים נתמכים של ישויות

האפשרות principal תומכת בפורמטים הבאים של חשבונות משתמשים ב-IAM מגרסה 2:

סוג הזהות פורמט של חשבון משתמש
משתמשים principal://goog/subject/EMAIL_ADDRESS
חשבונות שירות principal://iam.googleapis.com/projects/-/serviceAccounts/EMAIL_ADDRESS
זהויות במאגר זהויות של כוח עבודה principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID
זהויות במאגר זהויות של עומסי עבודה principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID

הקצאת חשבון משתמש להזמנה

SQL

כדי ליצור הקצאה ספציפית למשתמש, משתמשים בהצהרת CREATE ASSIGNMENT DDL עם האפשרות principal.

CREATE ASSIGNMENT
  `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
OPTIONS (
  assignee = 'projects/PROJECT_ID',
  principal = 'principal://goog/subject/EMAIL_ADDRESS',
  job_type = 'QUERY');

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

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור
  • LOCATION: המיקום של ההזמנה
  • RESERVATION_NAME: השם של ההזמנה
  • ASSIGNMENT_ID: מזהה ההקצאה
  • PROJECT_ID: מזהה הפרויקט
  • ‫`EMAIL_ADDRESS: כתובת האימייל של המשתמש
  • JOB_TYPE: סוג העבודה להקצאה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL

BQ

כדי ליצור הקצאה ספציפית למשתמש, משתמשים בפקודה bq mk עם הדגל --principal:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT \
    --principal=PRINCIPAL \
    --job_type=JOB_TYPE

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

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור
  • LOCATION: המיקום של ההזמנה
  • RESERVATION_NAME: השם של ההזמנה
  • ASSIGNMENT_ID: מזהה ההקצאה
  • PROJECT_ID: מזהה הפרויקט
  • PRINCIPAL: the principal identifier, for example,principal://goog/subject/EMAIL_ADDRESS`
  • JOB_TYPE: סוג העבודה להקצאה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL

הקצאת פרויקט ל-none

הערך none במטלות מייצג היעדר מטלה. פרויקטים שהוקצו לשימוש בתמחור לפי דרישה none.

SQL

כדי להקצות פרויקט ל-none, משתמשים בהצהרת ה-DDL‏ CREATE ASSIGNMENT.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="QUERY");

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

    • LOCATION: המיקום של המשימות שצריך להשתמש בהן בתמחור לפי דרישה
    • ASSIGNMENT_ID: מזהה ההקצאה

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

    • PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה

  3. לוחצים על הפעלה.

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

BQ

כדי להקצות פרויקט ל-none, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

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

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור
  • LOCATION: המיקום של המשרות שצריך להחיל עליהן תמחור לפי דרישה
  • PROJECT_ID: מזהה הפרויקט להקצאה ל-none

Terraform

משתמשים במשאב google_bigquery_reservation_assignment.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

בדוגמה הבאה מוקצה פרויקט ל-none:

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = "projects/${data.google_project.project.project_id}/locations/us/reservations/none"
}

כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

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

ביטול ההזמנה בשאילתה

כדי להשתמש בהזמנה ספציפית בשאילתה, אתם צריכים את ההרשאה הבאה בניהול זהויות והרשאות גישה (IAM):

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. לוחצים על שאילתת SQL.

  3. מזינים שאילתת GoogleSQL תקינה בעורך השאילתות.

  4. לוחצים על עריכה > הגדרות שאילתה.

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

  6. ברשימה Reservation, בוחרים את ההזמנה שרוצים שהשאילתה תפעל בה.

  7. לוחצים על Save.

  8. כותבים שאילתה בכרטיסיית העורך ומריצים אותה. השאילתה מופעלת בהזמנה שציינתם.

SQL

מגדירים את משתנה המערכת @@reservation בסשן כדי להקצות את ההזמנה שהשאילתה פועלת בה:

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SET @@reservation='RESERVATION';
    SELECT QUERY;

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

    • RESERVATION: ההזמנה שבה רוצים להריץ את השאילתה.

    • QUERY: השאילתה שרוצים להריץ.

  3. לוחצים על הפעלה.

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

לדוגמה, השאילתה הבאה משתמשת בהצהרה SET כדי להגדיר את ההזמנה ל-test-reservation באזור US שכולל מספר אזורים, ואז קוראת לשאילתה בסיסית:

SET @@reservation='projects/project1/locations/US/reservations/test-reservation';
SELECT 42;

BQ

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. ב-Cloud Shell, מריצים את השאילתה באמצעות הפקודה bq query עם הדגל --reservation_id:

    bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID
    'QUERY'

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

    • RESERVATION_ID: ההזמנה שבה רוצים להריץ את השאילתה.

    • QUERY: הצהרת ה-SQL של השאילתה.

    לדוגמה, השאילתה הבאה מורצת בהזמנה test-reservation באזור מרובה US:

    bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'

API

כדי לציין הזמנה באמצעות ה-API, מוסיפים משימה חדשה ומאכלסים את מאפיין הגדרת המשימה query. מציינים את ההזמנה בשדה reservation.

הקצאת יחידות קיבולת לעומסי עבודה של BigQuery ML

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

מודלים חיצוניים

סוגי המודלים הבאים של BigQuery ML משתמשים בשירותים חיצוניים:

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

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

מודלים של פירוק מטריצות

כדי ליצור מודל של פירוק מטריצות, צריך ליצור הזמנה שמשתמשת ב-BigQuery מהדורות Enterprise או Enterprise Plus, ואז ליצור הקצאת הזמנה שמשתמשת בסוג העבודה QUERY.

סוגים אחרים של מודלים

למודלים של BigQuery ML שהם לא מודלים חיצוניים או מודלים של פירוק מטריצות, אפשר להקצות משבצות שמורות לשאילתות באמצעות השירותים האלה על ידי יצירת הקצאת הזמנה שמשתמשת בסוג העבודה QUERY. אם לא נמצאה הקצאת מקום שמור עם סוג העבודה QUERY, משימת השאילתה תפעל באמצעות תמחור לפי דרישה.

חיפוש הקצאות הזמנה

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

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

  • bigquery.reservationAssignments.list בפרויקט הניהול.

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

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

חיפוש הקצאת הזמנה לפרויקט

כדי לבדוק אם הפרויקט, התיקייה או הארגון שלכם משויכים להזמנה:

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה הזמנות.

  4. בטבלת ההזמנות, מרחיבים הזמנה כדי לראות אילו משאבים הוקצו להזמנה הזו, או משתמשים בשדה Filter כדי לסנן לפי שם המשאב.

SQL

כדי לגלות לאיזו הזמנה מוקצות משימות השאילתה של הפרויקט, צריך להריץ שאילתה על התצוגה INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

      SELECT
        assignment_id
      FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
      WHERE
        assignee_id = 'PROJECT_ID'
        AND job_type = 'JOB_TYPE';

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

    • LOCATION: המיקום של ההזמנות שרוצים לראות
    • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה
    • PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה
    • JOB_TYPE: סוג העבודה להקצאה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL

  3. לוחצים על הפעלה.

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

BQ

כדי לגלות לאיזו הזמנה משויכות משימות השאילתות של הפרויקט, משתמשים בפקודה bq show עם הדגל --reservation_assignment:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

כדי למצוא הקצאה ספציפית למשתמש, מוסיפים את הדגל --principal:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT \
    --principal=PRINCIPAL

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

  • ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה
  • LOCATION: המיקום של ההזמנות שרוצים לראות
  • JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשל QUERY,‏ CONTINUOUS,‏ PIPELINE,‏ BACKGROUND או ML_EXTERNAL
  • PROJECT_ID: מזהה הפרויקט
  • PRINCIPAL: המזהה של החשבון הראשי, לדוגמה, principal://goog/subject/EMAIL_ADDRESS

עדכון ההקצאות של ההזמנות

העברת הקצאה להזמנה אחרת

אפשר להעביר הקצאה מהזמנה אחת להזמנה אחרת.

כדי להעביר הקצאה של הזמנה, צריך את ההרשאות הבאות לניהול זהויות והרשאות גישה (IAM) בפרויקט הניהול ובמקבל ההקצאה.

  • bigquery.reservationAssignments.create
  • bigquery.reservationAssignments.delete

כל אחד מתפקידי ה-IAM שמוגדרים מראש כולל את ההרשאות האלה:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

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

כדי להעביר מטלה, משתמשים בפקודה bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --destination_reservation_id=DESTINATION_RESERVATION \
    ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID

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

  • ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה
  • LOCATION: המיקום של ההזמנה החדשה
  • RESERVATION_NAME: ההזמנה שממנה רוצים להעביר את ההקצאה
  • DESTINATION_RESERVATION: ההזמנה שאליה רוצים להעביר את ההקצאה
  • ASSIGNMENT_ID: מזהה ההקצאה

    כדי לקבל את מזהה ההקצאה, אפשר לעיין במאמר בנושא הצגת רשימה של הקצאות הזמנות בפרויקט.

מחיקת הקצאות של הזמנות

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

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

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

כדי למחוק הקצאה של הזמנה, אתם צריכים את ההרשאה הבאה בממשק של ניהול הזהויות והרשאות הגישה (IAM):

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

הסרת פרויקט מהזמנה

כדי להסיר פרויקט מהזמנה:

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה הזמנות.

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

  5. מרחיבים את האפשרות Actions (פעולות).

  6. לוחצים על Delete.

SQL

משתמשים בהצהרת DDL‏ DROP ASSIGNMENT.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    DROP ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;

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

  3. לוחצים על הפעלה.

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

BQ

כדי להסיר פרויקט מהזמנה, משתמשים בפקודה bq rm עם הדגל --reservation_assignment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID

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

  • ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה
  • LOCATION: המיקום של ההזמנה
  • RESERVATION_NAME: השם של ההזמנה
  • ASSIGNMENT_ID: מזהה ההקצאה

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