התצוגה RESERVATIONS

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

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

כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.RESERVATIONS, צריך את ההרשאה bigquery.reservations.list לניהול הזהויות והרשאות הגישה (IAM) בפרויקט. כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הנדרשת:

  • אדמין של משאבי BigQuery‏ (roles/bigquery.resourceAdmin)
  • עריכת משאבים ב-BigQuery‏ (roles/bigquery.resourceEditor)
  • צפייה במשאבי BigQuery‏ (roles/bigquery.resourceViewer)
  • משתמש BigQuery‏ (roles/bigquery.user)
  • אדמין ב-BigQuery‏ (roles/bigquery.admin)

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

סכימה

הסכימה של התצוגה INFORMATION_SCHEMA.RESERVATIONS היא:

שם עמודה סוג נתונים ערך
ddl STRING הצהרת ה-DDL ששימשה ליצירת ההזמנה הזו.
project_id STRING מזהה הפרויקט של הניהול.
project_number INTEGER מספר הפרויקט לניהול.
reservation_name STRING שם ההזמנה שהמשתמש סיפק.
ignore_idle_slots BOOL אם הערך הוא False, כל שאילתה שמשתמשת בהזמנה הזו יכולה להשתמש במשבצות לא פעילות שלא נוצלו מהתחייבויות אחרות לקיבולת.
slot_capacity INTEGER קיבולת הבסיס של המשבצות בהזמנה.
target_job_concurrency INTEGER מספר היעד של שאילתות שאפשר להריץ בו-זמנית, שמוגבל על ידי המשאבים הזמינים. אם הערך הוא אפס, הוא מחושב באופן אוטומטי על סמך המשאבים הזמינים.
autoscale STRUCT

מידע על קיבולת ההתאמה האוטומטית לעומס של ההזמנה. השדות כוללים:

  • ‫current_slots: מספר ה-slots שנוספו למאגר באמצעות התאמה אוטומטית לעומס.
  • ‫max_slots: המספר המקסימלי של יחידות קיבולת שאפשר להוסיף למקום השמור באמצעות התאמה אוטומטית לעומס.
edition STRING המהדורה שמשויכת להזמנה הזו. למידע נוסף על מהדורות, קראו את המאמר מבוא למהדורות של BigQuery.
primary_location STRING המיקום הנוכחי של הרפליקה הראשית של ההזמנה. השדה הזה מוגדר רק למקומות שמורים שמשתמשים בתכונה המנוהלת של תוכנית התאוששות מאסון (DR).
secondary_location STRING המיקום הנוכחי של הרפליקה המשנית של ההזמנה. השדה הזה מוגדר רק למקומות שמורים שמשתמשים בתכונה המנוהלת של תוכנית התאוששות מאסון (DR).
original_primary_location STRING המיקום שבו נוצרה ההזמנה במקור.
labels RECORD מערך של תוויות שמשויכות להזמנה.
reservation_group_path ARRAY<STRING> קבוצת ההזמנות שאליה מקושרת ההזמנה. לדוגמה, אם ההזמנה מקושרת לקבוצה my-group, השדה reservation_group_path מכיל רשימה כמו: [my-group].
max_slots INTEGER המספר המקסימלי של משבצות שההזמנה הזו יכולה להשתמש בהן, כולל משבצות בסיסיות (slot_capacity), משבצות לא פעילות (אם הערך של ignore_idle_slots הוא false) ומשבצות להתאמה אוטומטית לעומס. המשתמשים מציינים את השדה הזה כדי להשתמש בתכונה "יכולת חיזוי של הזמנות".
scaling_mode STRING מצב ההתאמה לעומס (scaling) של ההזמנה, שקובע איך ההזמנה מותאמת לעומס מקו הבסיס ל-max_slots. המשתמשים מציינים את השדה הזה כדי להשתמש בתכונה "יכולת חיזוי של הזמנות".

כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע במקום להשתמש בתו כללי לחיפוש (SELECT *). ציון מפורש של העמודות מונע את קריסת השאילתות אם הסכימה הבסיסית משתנה.

היקף ותחביר

שאילתות בתצוגה הזו חייבות לכלול מגדיר אזור. בטבלה הבאה מוסבר היקף האזור של התצוגה הזו:

שם התצוגה המפורטת היקף המשאבים היקף האזור
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] רמת הפרויקט REGION
מחליפים את הערכים בשדות הבאים:
  • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance (אופציונלי). אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • ‫REGION: כל שם של אזור של מערך נתונים. לדוגמה, `region-us`.

איחוד בין תצוגות ההזמנות לתצוגות המשימות

התצוגות של המשימות מכילות את העמודה reservation_id. אם המשימה הופעלה בפרויקט שהוקצתה לו הזמנה, הערך של reservation_id יהיה בפורמט הבא: reservation-admin-project:reservation-location.reservation-name.

כדי לחבר בין תצוגות ההזמנות לתצוגות המשימות, אפשר לחבר בין העמודה reservation_id בתצוגות המשימות לבין העמודות project_id ו-reservation_name בתצוגות ההזמנות. בדוגמה הבאה מוצג שימוש בסעיף JOIN בין תצוגת ההזמנות לתצוגת המשימות.

דוגמה

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

WITH
  job_data AS (
  SELECT
    job.period_start,
    job.reservation_id,
    job.period_slot_ms,
    job.job_id,
    job.job_type
  FROM
    `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job
  WHERE
    job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR))
SELECT
  reservation.reservation_name AS reservation_name,
  job.period_start,
  reservation.slot_capacity,
  job.period_slot_ms,
  job.job_id,
  job.job_type
FROM
  job_data AS job
INNER JOIN
  `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation
ON
  (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));

הפלט אמור להיראות כך:

+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name |    period_start     | slot_capacity | period_slot_ms |           job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation   | 2021-04-30 17:30:54 |           100 |          11131 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:55 |           100 |          49978 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:56 |           100 |           9038 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:57 |           100 |          17237 | bquxjob_66707... | QUERY    |

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

השאילתה מצטרפת ל-RESERVATIONS עם JOBS_TIMELINE כדי לשייך את פרוסות הזמן של המשימה למידע על ההזמנה.