התצוגה 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, הערך הוא רשומה עם השדות הבאים:
  • ‫inserted_row_count: מספר השורות שנוספו.
  • ‫deleted_row_count: מספר השורות שנמחקו.
  • ‫updated_row_count: מספר השורות שעודכנו.
לכל שאר המשרות, הערך הוא NULL.
העמודה הזו מופיעה בתצוגות INFORMATION_SCHEMA.JOBS_BY_USER ו-INFORMATION_SCHEMA.JOBS_BY_PROJECT.
end_time TIMESTAMP זמן הסיום של העבודה הזו, באלפיות השנייה מאז ראשית התקופה. השדה הזה מייצג את הזמן שבו המשימה נכנסת למצב DONE.
error_result RECORD פרטים של שגיאות כאובייקטים מסוג ErrorProto.
job_creation_reason.code STRING מציין את הסיבה הכללית ליצירת משימה.
הערכים האפשריים הם:
  • ‫REQUESTED: נשלחה בקשה ליצירת משימה.
  • ‫LONG_RUNNING: שאילתת הבקשה פעלה מעבר לזמן קצוב מוגדר במערכת שצוין בשדה timeoutMs ב-QueryRequest. לכן היא נחשבה לפעולה ממושכת שנוצרה בשבילה משימה.
  • ‫LARGE_RESULTS: התוצאות מהשאילתה לא מתאימות לתשובה בשורה.
  • ‫OTHER: המערכת קבעה שצריך להריץ את השאילתה כמשימה.
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 נתונים סטטיסטיים על השימוש במאגר אובייקטים ובמטמון של משימת שאילתה. הערך הוא רשומה חוזרת עם השדות הבאים:
  • ‫cloud_provider: ספק שירותי הענן שבו מאוחסן מאגר האובייקטים (לדוגמה, AWS).
  • ‫object_storage_bytes_read: המספר הכולל של הבייטים שנקראו ישירות ממאגר האובייקטים.
  • ‫cache_bytes_read: המספר הכולל של הבייטים שנקראו מהמטמון.
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_ADMIN_PROJECT: השם של הפרויקט בענן של Google שמנהל את ההזמנה
  • ‫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. הניב של השאילתה ששימש למשימה. הערכים התקינים כוללים:
  • ‫GOOGLE_SQL: המשימה התבקשה להשתמש ב-GoogleSQL.
  • ‫LEGACY_SQL: הבקשה לעבודה הייתה להשתמש ב-LegacySQL.
  • ‫DEFAULT_LEGACY_SQL: לא צוין ניב של שאילתה בבקשת העבודה. ‫BigQuery השתמש בערך ברירת המחדל של LegacySQL.
  • ‫DEFAULT_GOOGLE_SQL: לא צוין ניב של שאילתה בבקשת המשימה. ב-BigQuery נעשה שימוש בערך ברירת המחדל של GoogleSQL.

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

במשימות שפועלות ברקע, הערך של השדה הזה לא נשלט על ידי הגדרות ברירת המחדל של ניב השאילתות, ולא משפיע על משימות שנשלחות על ידי משתמשים. בחלק מהמשימות ברקע, הערך מושמט.

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 |
+--------------+---------------------------+---------------------------------+