תצוגת RESERVATIONS (הזמנות)

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

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

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

  • אדמין של משאבי BigQuery‏ (roles/bigquery.resourceAdmin)
  • עורך משאבי BigQuery‏ (roles/bigquery.resourceEditor)
  • BigQuery Resource Viewer (צפייה במשאבי 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, כל שאילתה שמשתמשת בהזמנה הזו יכולה להשתמש ביחידות קיבולת (Slots) פנויות לא פעילות מהתחייבויות אחרות לשימוש.
slot_capacity INTEGER הערך הבסיסי של ההזמנה.
target_job_concurrency INTEGER מספר היעד של השאילתות שאפשר להריץ בו-זמנית, שמוגבל על ידי המשאבים הזמינים. אם הערך הוא אפס, הוא מחושב באופן אוטומטי על סמך המשאבים הזמינים.
autoscale STRUCT

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

  • current_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 המספר המקסימלי של יחידות קיבולת (Slots) שהמקום השמור הזה יכול להשתמש בהן, כולל יחידות קיבולת בסיסיות (slot_capacity), יחידות קיבולת בלי פעילות (אם ignore_idle_slots הוא FALSE) ויחידות קיבולת של התאמה אוטומטית לעומס. המשתמשים מציינים את השדה הזה כדי להשתמש בתכונה לחיזוי הזמנות.
scaling_mode STRING מצב ההרחבה של ההזמנה, שקובע איך ההזמנה מתרחבת מבסיס ל-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 בין ההזמנה לתצוגות של העבודה.

דוגמה

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