התצוגה 'הזמנות'

בתצוגה 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, כל שאילתה שמשתמשת בהזמנה הזו יכולה להשתמש במשבצות פנויות לא פעילות שלא נעשה בהן שימוש מתוך התחייבויות אחרות לקיבולת.
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 STRING מבנה הקבוצה ההיררכי שאליו משויכת ההזמנה. לדוגמה, אם מבנה הקבוצה כולל קבוצת הורה וקבוצת צאצא, השדה reservation_group_path מכיל רשימה כמו: [parent group, child group]. השדה הזה נמצא בגרסת טרום-השקה.
max_slots INTEGER המספר המקסימלי של משבצות שההזמנה הזו יכולה להשתמש בהן, כולל משבצות בסיסיות (slot_capacity), משבצות בלי פעילות (אם ignore_idle_slots הוא FALSE) ומשבצות של התאמה אוטומטית לעומס. המשתמשים מציינים את השדה הזה כדי להשתמש בתכונה לחיזוי הזמנות.
scaling_mode STRING מצב ההרחבה של ההזמנה, שקובע איך ההזמנה מתרחבת מבסיס ל-max_slots. המשתמשים מציינים את השדה הזה כדי להשתמש בתכונה לחיזוי הזמנות.

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

היקף ותחביר

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

שם התצוגה היקף המשאבים היקף האזור
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] ברמת הפרויקט REGION
מחליפים את מה שכתוב בשדות הבאים:
  • אופציונלי: PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • 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 כדי לשייך את נתוני חלקי הזמן של המשימה לפרטי ההזמנה.