התצוגה JOBS_BY_USER
התצוגה INFORMATION_SCHEMA.JOBS_BY_USER מכילה מטא-נתונים כמעט בזמן אמת על משימות BigQuery שהמשתמש הנוכחי שלח בפרויקט הנוכחי.
תפקיד נדרש
כדי לקבל את ההרשאה שנדרשת לשליחת שאילתות לתצוגה INFORMATION_SCHEMA.JOBS_BY_USER, צריך לבקש מהאדמין להקצות לכם את התפקיד BigQuery User (roles/bigquery.user) ב-IAM בפרויקט.
להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה bigquery.jobs.list, שנדרשת כדי לשלוח שאילתות לתצוגה INFORMATION_SCHEMA.JOBS_BY_USER.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
הנתונים הבסיסיים מחולקים לפי העמודה creation_time ומקובצים לפי project_id ו-user_email.
לתצוגה INFORMATION_SCHEMA.JOBS_BY_USER יש את הסכימה הבאה:
| שם העמודה | סוג הנתונים | ערך |
|---|---|---|
bi_engine_statistics |
RECORD |
אם הפרויקט מוגדר לשימוש ב-BI Engine, השדה הזה מכיל את BiEngineStatistics.
אחרת NULL.
|
cache_hit |
BOOLEAN |
האם תוצאות השאילתה של העבודה הזו הגיעו ממטמון.
אם יש לכם משימה של הצהרה עם כמה שאילתות, הערך של cache_hit בשאילתת ההורה הוא NULL.
|
creation_time |
TIMESTAMP |
(עמודת חלוקה) מועד היצירה של העבודה הזו. החלוקה למחיצות מבוססת על זמן ה-UTC של חותמת הזמן הזו. |
destination_table |
RECORD |
טבלת היעד לתוצאות, אם יש כאלה. |
dml_statistics |
RECORD |
אם המשימה היא שאילתה עם פקודת DML, הערך הוא רשומה עם השדות הבאים:
NULL.העמודה הזו מופיעה בתצוגות INFORMATION_SCHEMA.JOBS_BY_USER ו-INFORMATION_SCHEMA.JOBS_BY_PROJECT.
|
end_time |
TIMESTAMP |
זמן הסיום של העבודה הזו, באלפיות השנייה מאז ראשית התקופה. השדה הזה מייצג את הזמן שבו המשימה נכנסת למצב DONE. |
error_result |
RECORD |
פרטים של שגיאות כאובייקטים מסוג ErrorProto. |
job_creation_reason.code |
STRING |
מציין את הסיבה הכללית ליצירת משימה. הערכים האפשריים הם:
|
job_id |
STRING |
המזהה של המשימה, אם נוצרה משימה. אחרת, מזהה השאילתה של שאילתה שמשתמשת במצב יצירה אופציונלית של משימות. לדוגמה, bquxjob_1234. |
job_stages |
RECORD REPEATED |
שלבי השאילתה של העבודה.
הערה: הערכים בעמודה הזו ריקים בשאילתות שקוראות מטבלאות עם מדיניות גישה ברמת השורה. מידע נוסף זמין במאמר שיטות מומלצות לאבטחה ברמת השורה ב-BigQuery. |
job_type |
STRING |
סוג המשימה. יכול להיות QUERY, LOAD, EXTRACT, COPY או NULL. הערך NULL מציין משימה ברקע.
|
labels |
RECORD |
מערך של תוויות שמוחלות על העבודה כצמדי מפתח/ערך. |
object_storage_stats |
RECORD REPEATED |
נתונים סטטיסטיים על השימוש במאגר אובייקטים ובמטמון של משימת שאילתה.
הערך הוא רשומה חוזרת עם השדות הבאים:
|
parent_job_id |
STRING |
המזהה של עבודת ההורה, אם יש כזו. |
priority |
STRING |
העדיפות של המשימה הזו. הערכים התקינים כוללים את INTERACTIVE ו-BATCH. |
project_id |
STRING |
(Clustering column) מזהה הפרויקט. |
project_number |
INTEGER |
מספר הפרויקט. |
query |
STRING |
טקסט של שאילתת SQL. |
referenced_tables |
RECORD |
מערך של ערכי STRUCT שמכילים את השדות הבאים של STRING לכל טבלה שהשאילתה מפנה אליה: project_id, dataset_id ו-table_id. השדה הזה מאוכלס רק עבור משימות של שאילתות שלא מגיעות מהמטמון.
|
referenced_logical_views |
RECORD |
מערך של ערכי STRUCT שמכילים את השדות הבאים של STRING לכל תצוגה לוגית שאליה מתייחסת השאילתה: project_id, dataset_id ו-table_id. השדה הזה מאוכלס רק במשימות שאילתה שלא נמצאו במטמון.
|
reservation_id |
STRING |
שם ההקצאה הראשית שהוקצתה למשימה הזו, בפורמט RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME.בפלט הזה:
|
reservation_group_path |
ARRAY<STRING> |
קבוצת ההזמנות שאליה ההזמנה מקושרת.
לדוגמה, אם ההזמנה מקושרת לקבוצה my-group, השדה reservation_group_path מכיל רשימה כמו: [my-group]. |
edition |
STRING |
המהדורה שמשויכת להזמנה שהוקצתה לעבודה הזו. מידע נוסף על מהדורות זמין במאמר מבוא למהדורות של BigQuery. |
session_info |
RECORD |
פרטים על הסשן שבו המשימה הזו הופעלה, אם יש כאלה. |
start_time |
TIMESTAMP |
שעת ההתחלה של המשימה, באלפיות השנייה מאז ראשית זמן יוניקס (Unix epoch). השדה הזה מייצג את הזמן שבו המשימה עוברת מהמצב PENDING למצב RUNNING או DONE. |
state |
STRING |
מצב ההפעלה של המשימה. המצבים התקינים כוללים את PENDING, RUNNING ו-DONE.
|
statement_type |
STRING |
סוג הצהרת השאילתה. לדוגמה, DELETE, INSERT, SCRIPT, SELECT או UPDATE. רשימה של ערכים תקינים מופיעה ב-QueryStatementType.
|
timeline |
RECORD |
ציר הזמן של השאילתה של המשימה. מכיל תמונות מצב של הפעלת שאילתות. |
total_bytes_billed |
INTEGER |
אם הפרויקט מוגדר לשימוש בתמחור על פי דרישה, השדה הזה מכיל את סך כל הבייטים שחויבו עבור המשימה. אם הפרויקט מוגדר לשימוש בתמחור קבוע, לא תחויבו על בייטים והשדה הזה מיועד למטרות מידע בלבד.
הערה: הערכים בעמודה הזו ריקים בשאילתות שקוראות מטבלאות עם כללי מדיניות גישה ברמת השורה. מידע נוסף על שיטות מומלצות לאבטחה ברמת השורה ב-BigQuery זמין במאמר שיטות מומלצות לאבטחה ברמת השורה ב-BigQuery. |
total_bytes_processed |
INTEGER |
המספר הכולל של בייטים שעובדו על ידי העבודה. הערה: הערכים בעמודה הזו ריקים בשאילתות שקוראות מטבלאות עם מדיניות גישה ברמת השורה. מידע נוסף זמין במאמר שיטות מומלצות לאבטחה ברמת השורה ב-BigQuery. |
total_modified_partitions |
INTEGER |
המספר הכולל של המחיצות שהמשימה שינתה. השדה הזה מאוכלס במשימות LOAD ו-QUERY.
|
total_slot_ms |
INTEGER |
אלפיות השנייה של משבצות הזמן של המשימה לאורך כל משך הזמן שלה במצב RUNNING, כולל ניסיונות חוזרים. |
total_services_sku_slot_ms |
INTEGER |
מספר כולל של אלפיות השנייה של ה-slot למשימה שפועלת בשירותים חיצוניים ומחויבת במק"ט של השירותים. השדה הזה מאוכלס רק במשימות שיש להן עלויות של שירותים חיצוניים, והוא מייצג את סך כל השימוש בעלויות שאמצעי החיוב שלהן הוא "SERVICES_SKU". |
transaction_id |
STRING |
המזהה של העסקה שבה המשימה הזו הופעלה, אם רלוונטי. |
user_email |
STRING |
(Clustering column) כתובת האימייל או חשבון השירות של המשתמש שביצע את העבודה. |
principal_subject |
STRING |
ייצוג מחרוזת של זהות חשבון המשתמש שהפעיל את המשימה. |
query_info.resource_warning |
STRING |
הודעת האזהרה שמופיעה אם השימוש במשאבים במהלך עיבוד השאילתה חורג מהסף הפנימי של המערכת. במשימת שאילתה שהושלמה בהצלחה, השדה resource_warning יכול להיות מאוכלס. בעזרת resource_warning, אתם מקבלים נקודות נוספות על הגרף כדי לבצע אופטימיזציה של השאילתות ולהגדיר מעקב אחרי מגמות בביצועים של קבוצת שאילתות מקבילה באמצעות query_hashes.
|
query_info.query_hashes.normalized_literals |
STRING |
מכיל את ערך ה-hash של השאילתה. normalized_literals הוא גיבוב הקסדצימלי STRING שמתעלם מהערות, מערכי פרמטרים, מפונקציות מוגדרות על ידי המשתמש ומערכים מילוליים.
ערך הגיבוב יהיה שונה אם התצוגות הבסיסיות ישתנו, או אם השאילתה מפנה באופן מרומז לעמודות, כמו SELECT *, וסכימת הטבלה משתנה.
השדה הזה מופיע בשאילתות GoogleSQL שהצליחו, אבל לא נמצאו במטמון. |
query_info.performance_insights |
RECORD |
תובנות לגבי הביצועים של המשימה. |
transferred_bytes |
INTEGER |
סה"כ הבייטים שהועברו בשאילתות של BigQuery Omni, כמו משימות העברה של BigQuery Omni. |
materialized_view_statistics |
RECORD |
נתונים סטטיסטיים של תצוגות מהותיות שנלקחים בחשבון בעבודת שאילתה. (תצוגה מקדימה) |
metadata_cache_statistics |
RECORD |
נתונים סטטיסטיים על השימוש באינדקס של עמודות המטא-נתונים בטבלאות שאליהן מפנה משימת שאילתה. |
search_statistics |
RECORD |
נתונים סטטיסטיים של שאילתת חיפוש. |
query_dialect |
STRING |
השדה הזה יהיה זמין במהלך מאי 2025.
הניב של השאילתה ששימש למשימה. הערכים התקינים כוללים:
במשימות שנשלחו על ידי משתמשים, השדה הזה מאוכלס רק במשימות של שאילתות. אפשר לשלוט בבחירת ברירת המחדל של ניב השאילתה באמצעות הגדרות התצורה. במשימות שפועלות ברקע, הערך של השדה הזה לא נשלט על ידי הגדרות ברירת המחדל של ניב השאילתות, ולא משפיע על משימות שנשלחות על ידי משתמשים. בחלק מהמשימות ברקע, הערך מושמט. |
continuous |
BOOLEAN |
אם המשימה היא שאילתה מתמשכת. |
continuous_query_info.output_watermark |
TIMESTAMP |
מייצג את הנקודה שעד אליה השאילתה המתמשכת עיבדה נתונים בהצלחה. |
vector_search_statistics |
RECORD |
נתונים סטטיסטיים של שאילתת חיפוש וקטורית. |
external_service_costs |
RECORD |
מערך של מידע על עלויות השירות החיצוני של משימת שאילתה. |
ml_statistics.model_type |
STRING |
אם המשימה היא שאילתה ליצירת מודל BigQuery ML, השדה הזה מציין את סוג המודל שנוצר. בכל שאר המשימות, הערך הוא NULL.
|
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כללי לחיפוש (SELECT *). ציון מפורש של העמודות מונע את קריסת השאילתות אם הסכימה הבסיסית משתנה.
שמירת נתונים
בתצוגה הזו מופיעות משימות שפועלות, וגם היסטוריית המשימות מ-180 הימים האחרונים.
אם פרויקט מועבר לארגון (או שאין לו ארגון או שהוא מועבר מארגון אחר), אי אפשר לגשת למידע על המשימות שנוצרו לפני תאריך ההעברה דרך התצוגה INFORMATION_SCHEMA.JOBS_BY_USER, כי בתצוגה הזו נשמרים רק נתונים שנוצרו החל מתאריך ההעברה.
היקף ותחביר
שאילתות בתצוגה הזו חייבות לכלול מזהה אזור. בטבלה הבאה מוסבר היקף האזור של התצוגה הזו:
| שם התצוגה המפורטת | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_USER |
משימות שהמשתמש הנוכחי שלח בפרויקט שצוין. | REGION |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור של מערך נתונים. לדוגמה,`region-us`.
דוגמאות
כדי להריץ את השאילתה בפרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט בפורמט הבא:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER
-
PROJECT_ID: מזהה הפרויקט -
REGION_NAME: האזור של הפרויקט
לדוגמה, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_USER.
הצגת משימות בהמתנה או משימות שפועלות
השאילתה הבאה מציגה את מזהה המשימה, זמן היצירה והשאילתה של כל המשימות בהמתנה או בפעולה שנשלחו על ידי המשתמש הנוכחי בפרויקט שצוין:
SELECT job_id, creation_time, query FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER WHERE state != 'DONE';
התוצאה אמורה להיראות כך:
+--------------+---------------------------+---------------------------------+ | job_id | creation_time | query | +--------------+---------------------------+---------------------------------+ | bquxjob_1 | 2019-10-10 00:00:00 UTC | SELECT ... FROM dataset.table1 | | bquxjob_2 | 2019-10-10 00:00:01 UTC | SELECT ... FROM dataset.table2 | | bquxjob_3 | 2019-10-10 00:00:02 UTC | SELECT ... FROM dataset.table3 | +--------------+---------------------------+---------------------------------+