התצוגה JOBS_TIMELINE_BY_FOLDER
התצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER מכילה מטא-נתונים של BigQuery כמעט בזמן אמת לפי פרוסת זמן, לכל המשימות שנשלחו בתיקיית ההורה של הפרויקט הנוכחי, כולל המשימות בתיקיות המשנה שמתחתיה.
התצוגה הזו מכילה גם משימות שפועלות וגם משימות שהושלמו.
ההרשאות הנדרשות
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, צריך את ההרשאה bigquery.jobs.listAll לניהול זהויות והרשאות גישה (IAM) בתיקיית ההורה. כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הנדרשת:
- Folder Admin
- אדמין של BigQuery
במאמר בקרת גישה באמצעות IAM יש מידע נוסף על הרשאות ב-BigQuery.
סכימה
כששולחים שאילתה לתצוגות של INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*, תוצאות השאילתה מכילות שורה אחת לכל שנייה של ביצוע של כל משימה ב-BigQuery. כל תקופה מתחילה במרווח של שנייה שלמה ונמשכת בדיוק שנייה אחת.
הסכימה של התצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* היא:
| שם עמודה | סוג נתונים | ערך |
|---|---|---|
period_start |
TIMESTAMP |
שעת ההתחלה של התקופה הזו. |
period_slot_ms |
INTEGER |
אלפיות השנייה של מיקום מודעה שנצרכו בתקופה הזו. |
project_id |
STRING |
(עמודת אשכולות) מזהה הפרויקט. |
project_number |
INTEGER |
מספר הפרויקט. |
folder_numbers |
REPEATED INTEGER |
מזהי המספרים של התיקיות שמכילות את הפרויקט, החל מהתיקייה שמכילה את הפרויקט באופן מיידי, ואחריה התיקייה שמכילה את תיקיית הצאצא וכן הלאה. לדוגמה, אם הערך של `folder_numbers` הוא `[1, 2, 3]`, אז תיקייה `1` מכילה ישירות את הפרויקט, תיקייה `2` מכילה את `1` ותיקייה `3` מכילה את `2`. |
user_email |
STRING |
(עמודת אשכול) כתובת האימייל או חשבון השירות של המשתמש שהריץ את המשימה. |
principal_subject |
STRING |
ייצוג מחרוזת של זהות חשבון המשתמש שהפעיל את המשימה. |
job_id |
STRING |
מזהה המשימה. לדוגמה, bquxjob_1234. |
job_type |
STRING |
סוג המשימה. הערכים האפשריים: QUERY, LOAD, EXTRACT, COPY או null. סוג המשימה null מציין משימה פנימית, כמו הערכת הצהרה של משימת סקריפט או רענון של תצוגה מהותית. |
statement_type |
STRING |
סוג הצהרת השאילתה, אם היא תקינה. לדוגמה, SELECT, INSERT, UPDATE או DELETE. |
priority |
STRING |
העדיפות של המשימה הזו. הערכים התקינים כוללים את INTERACTIVE ו-BATCH. |
parent_job_id |
STRING |
המזהה של המשימה הראשית, אם יש כזו. |
job_creation_time |
TIMESTAMP |
(עמודת חלוקה למחיצות) מועד היצירה של המשימה הזו. החלוקה למחיצות מבוססת על זמן ה-UTC של חותמת הזמן הזו. |
job_start_time |
TIMESTAMP |
שעת ההתחלה של המשימה הזו. |
job_end_time |
TIMESTAMP |
שעת הסיום של המשימה. |
state |
STRING |
מצב ההפעלה של המשימה בסוף התקופה הזו. הסטטוסים התקינים כוללים את PENDING, RUNNING ו-DONE. |
reservation_id |
STRING |
שם ההזמנה הראשית שהוקצתה למשימה הזו בסוף התקופה הזו, אם רלוונטי. |
reservation_group_path |
ARRAY<STRING> |
קבוצת ההזמנות שאליה מקושרת ההזמנה.
לדוגמה, אם ההזמנה מקושרת לקבוצה my-group, השדה reservation_group_path מכיל רשימה כמו: [my-group]. |
edition |
STRING |
המהדורה שמשויכת להזמנה שהוקצתה למשימה הזו. למידע נוסף על מהדורות, קראו את המאמר מבוא למהדורות של BigQuery. |
total_bytes_billed |
INTEGER |
אם הפרויקט מוגדר לשימוש בתמחור על פי דרישה, השדה הזה מכיל את סך כל הבייטים שחויבו עבור המשימה. אם הפרויקט מוגדר לשימוש בתמחור קבוע, לא תחויבו על בייטים והשדה הזה מיועד למטרות מידע בלבד. |
total_bytes_processed |
INTEGER |
מספר הבייטים הכולל שעובדו על ידי המשימה. |
error_result |
RECORD |
פרטי השגיאה (אם יש) בתור
ErrorProto.
|
cache_hit |
BOOLEAN |
אם תוצאות השאילתה של המשימה הזו הגיעו מהמטמון. |
period_shuffle_ram_usage_ratio |
FLOAT |
שיעור השימוש ב"הפעלה בסדר אקראי" בתקופה שנבחרה. הערך הוא 0.0 אם המשימה הופעלה עם הזמנה שמשתמשת בהתאמה אוטומטית לעומס (autoscaling) ויש לה אפס משבצות בסיסיות. |
period_estimated_runnable_units |
INTEGER |
יחידות עבודה שאפשר לתזמן באופן מיידי בתקופה הזו. יחידות קיבולת נוספות ליחידות העבודה האלה מאיצות את השאילתה, בתנאי שאף שאילתה אחרת בהזמנה לא זקוקה ליחידות קיבולת נוספות. |
transaction_id |
STRING |
המזהה של הטרנזקציה שבה המשימה הזו הופעלה, אם יש כזו. (גרסת טרום-השקה (Preview)) |
global_query_info |
RECORD |
מידע על שאילתה עם אחזור נתונים גלובלי.
מכיל את השדות הבאים:
|
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע במקום להשתמש בתו כללי לחיפוש (SELECT *). ציון מפורש של העמודות מונע את קריסת השאילתות אם הסכימה הבסיסית משתנה.
שמירת נתונים
בתצוגה הזו מופיעות משימות שפועלות, וגם היסטוריית המשימות מ-180 הימים האחרונים.
אם פרויקט מועבר לארגון (או שאין לו ארגון או שהוא מועבר מארגון אחר), אי אפשר לגשת למידע על משימות שנוצרו לפני תאריך ההעברה דרך התצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, כי התצוגה שומרת רק נתונים שנוצרו החל מתאריך ההעברה.
היקף ותחביר
שאילתות בתצוגה הזו חייבות לכלול מזהה אזור. אם לא מציינים מזהה אזורי, המטא-נתונים מאוחזרים מכל האזורים. בטבלה הבאה מוסבר היקף האזור של התצוגה הזו:
| שם התצוגה המפורטת | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER |
רמת הפרויקט | REGION |
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance (אופציונלי). אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור של מערך נתונים. לדוגמה,`region-us`.
דוגמאות
בדוגמאות הבאות מוסבר איך לשלוח שאילתות לתצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER.
קבלת מספר המשימות הייחודיות
השאילתה הבאה מציגה את מספר המשימות הייחודיות שפועלות בכל דקה בתיקייה של הפרויקט הייעודי:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
התוצאה אמורה להיראות כך:
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
חישוב זמן ה-slot שנוצל
השאילתה הבאה מציגה את זמן ה-slot שנוצל בכל דקה בתיקייה של הפרויקט שצוין:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
התוצאה אמורה להיראות כך:
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+