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

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

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

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

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

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

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

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

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

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

אפשר להקצות משאב להזמנת מעבר לגיבוי (failover), אבל ההקצאה תהיה בהמתנה במיקום המשני.

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

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

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

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

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

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

המסוף

  1. במסוף Google Cloud , עוברים לדף 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. במסוף Google Cloud , עוברים לדף 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. במסוף Google Cloud , עוברים לדף 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. במסוף Google Cloud , עוברים לדף 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 בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

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

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

    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. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

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

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

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

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

SQL

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

  1. במסוף Google Cloud , עוברים לדף 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 \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

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

  • 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 בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

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

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

    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. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

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

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

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

המסוף

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

    כניסה ל-BigQuery

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

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

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

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

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

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

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

SQL

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

  1. במסוף Google Cloud , עוברים לדף 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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;'
  3. 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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

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

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

SQL

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

  1. במסוף Google Cloud , עוברים לדף 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

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

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

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

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

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

כדי להעביר הקצאה של הזמנה, צריך את ההרשאות הבאות לניהול זהויות והרשאות גישה (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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

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

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

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

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

SQL

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

  1. במסוף Google Cloud , עוברים לדף 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: מזהה ההקצאה

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