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