תצוגה של 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 Admin
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
כשמריצים שאילתה על התצוגות INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*, התוצאות שלה כוללות שורה אחת לכל שנייה של ביצוע של כל משימת BigQuery. כל תקופה מתחילה במרווח של שנייה שלמה ונמשכת בדיוק שנייה אחת.
לתצוגה INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* יש את הסכימה הבאה:
| שם עמודה | סוג נתונים | ערך |
|---|---|---|
period_start |
TIMESTAMP |
שעת ההתחלה של התקופה הזו. |
period_slot_ms |
INTEGER |
מספר אלפיות השנייה של משבצות הזמן שנצרכו בתקופה הזו. |
project_id |
STRING |
(Clustering column) מזהה הפרויקט. |
project_number |
INTEGER |
מספר הפרויקט. |
folder_numbers |
REPEATED INTEGER |
מזהי המספרים של התיקיות שמכילות את הפרויקט, החל מהתיקייה שמכילה את הפרויקט באופן ישיר, ואחריה התיקייה שמכילה את תיקיית הצאצא, וכן הלאה. לדוגמה, אם הערך של `folder_numbers` הוא `[1, 2, 3]`, אז התיקייה `1` מכילה מיד את הפרויקט, התיקייה `2` מכילה את התיקייה `1`, והתיקייה `3` מכילה את התיקייה `2`. |
user_email |
STRING |
(Clustering column) כתובת האימייל או חשבון השירות של המשתמש שהפעיל את העבודה. |
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 אם העבודה רצה עם מקום שמור שמשתמש בהתאמה אוטומטית לעומס ויש לו אפס יחידות קיבולת בסיסיות. |
period_estimated_runnable_units |
INTEGER |
יחידות עבודה שאפשר לתזמן באופן מיידי בתקופה הזו. יחידות קיבולת נוספות ליחידות העבודה האלה יאיצו את השאילתה, בתנאי שאף שאילתה אחרת בהזמנה לא זקוקה ליחידות קיבולת נוספות. |
transaction_id |
STRING |
המזהה של העסקה שבה המשימה הזו הופעלה, אם יש כזו. (תצוגה מקדימה) |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כללי (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;
INFORMATION_SCHEMA
התוצאה אמורה להיראות כך:
+---------------------------+---------------------------------+ | 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 | +---------------------------+---------------------------------+
חישוב הזמן שחלף מאז תחילת הסלוט
השאילתה הבאה מציגה את הזמן שבו נעשה שימוש במשבצת לדקה בתיקייה של הפרויקט שצוין:
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 | +---------------------------+---------------------------------+