JOBS_BY_USER 檢視畫面
INFORMATION_SCHEMA.JOBS_BY_USER 檢視畫面包含目前專案中,目前使用者提交的 BigQuery 工作相關近乎即時的中繼資料。
必要角色
如要取得查詢 INFORMATION_SCHEMA.JOBS_BY_USER 檢視畫面所需的權限,請要求管理員授予您專案的「BigQuery 使用者 」(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 |
(分區資料欄) 這項工作的建立時間。分區依據為這個時間戳記的世界標準時間。 |
destination_table |
RECORD |
結果的目標資料表 (如有)。 |
dml_statistics |
RECORD |
如果工作是含有 DML 陳述式的查詢,則值為含有下列欄位的記錄:
NULL。這個資料欄會顯示在 INFORMATION_SCHEMA.JOBS_BY_USER 和 INFORMATION_SCHEMA.JOBS_BY_PROJECT 檢視畫面中。
|
end_time |
TIMESTAMP |
這項工作的結束時間,以毫秒為單位 (自 Epoch 起算)。這個欄位代表工作進入 DONE 狀態的時間。 |
error_result |
RECORD |
任何錯誤的詳細資料,以 ErrorProto 物件表示。 |
job_creation_reason.code |
STRING |
指定建立工作的主要原因。 可能的值包括:
|
job_id |
STRING |
如果已建立工作,則為工作 ID。否則,則為使用選用工作建立模式的查詢 ID。例如 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 |
父項工作的 ID (如有)。 |
priority |
STRING |
這項工作的優先順序。有效值包括 INTERACTIVE 和 BATCH。 |
project_id |
STRING |
(叢集資料欄) 專案 ID。 |
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 |
這項工作的開始時間,以紀元時間起算的毫秒數表示。這個欄位代表工作從 PENDING 狀態轉換為 RUNNING 或 DONE 的時間。 |
state |
STRING |
此工作的執行狀態。有效狀態包括 PENDING、RUNNING 和 DONE。 |
statement_type |
STRING |
查詢陳述式類型。例如:DELETE、INSERT、SCRIPT、SELECT 或 UPDATE。如需有效值清單,請參閱 QueryStatementType。
|
timeline |
RECORD |
工作的查詢時間軸。包含查詢執行的快照。 |
total_bytes_billed |
INTEGER |
如果專案設定為使用隨選計價,這個欄位會顯示作業的計費位元組總數。如果專案設為使用固定費率定價,系統就不會向您收取位元組費用,而這個欄位僅供參考。
注意:如果查詢是從具有資料列層級存取權政策的資料表讀取,則此資料欄的值會是空白。詳情請參閱「BigQuery 資料列層級安全性的最佳做法」。 |
total_bytes_processed |
INTEGER |
工作處理的位元組總數。 注意:如果查詢是從設有資料列層級存取權政策的資料表讀取資料,這個資料欄的值會是空白。詳情請參閱「BigQuery 資料列層級安全性的最佳做法」。 |
total_modified_partitions |
INTEGER |
工作修改的分區總數。這個欄位會填入 LOAD 和 QUERY 工作。 |
total_slot_ms |
INTEGER |
工作在整個 RUNNING 狀態期間 (包括重試) 的運算單元毫秒數。 |
total_services_sku_slot_ms |
INTEGER |
在外部服務上執行的工作,以服務 SKU 計費,總共使用的時段毫秒數。這個欄位只會填入有外部服務費用的工作,且是計費方式為 "SERVICES_SKU" 的費用總用量。 |
transaction_id |
STRING |
執行這項工作的交易 ID (如果有的話)。 |
user_email |
STRING |
(分群欄) 執行工作的使用者電子郵件地址或服務帳戶。 |
principal_subject |
STRING |
執行工作的實體身分字串表示法。 |
query_info.resource_warning |
STRING |
如果查詢處理期間的資源用量超過系統內部門檻,就會顯示警告訊息。 如果查詢作業成功,系統會填入 resource_warning 欄位。使用 resource_warning,您可取得額外資料點來最佳化查詢,並使用 query_hashes 設定同等查詢集的效能趨勢監控。
|
query_info.query_hashes.normalized_literals |
STRING |
內含查詢的雜湊值。normalized_literals 是十六進位 STRING 雜湊,會忽略註解、參數值、UDF 和常值。如果基礎檢視表變更,或查詢隱含參照資料欄 (例如 SELECT *),且資料表結構定義變更,雜湊值就會不同。如果 GoogleSQL 查詢成功,但未命中快取,就會顯示這個欄位。 |
query_info.performance_insights |
RECORD |
工作的效能洞察。 |
transferred_bytes |
INTEGER |
BigQuery Omni 查詢 (例如 BigQuery Omni 移轉工作) 移轉的總位元組數。 |
materialized_view_statistics |
RECORD |
查詢工作中考量的materialized view 統計資料。(預先發布版) |
metadata_cache_statistics |
RECORD |
查詢工作中參照的資料表中繼資料欄索引使用情形統計資料。 |
search_statistics |
RECORD |
搜尋查詢的統計資料。 |
query_dialect |
STRING |
這個欄位將於 2025 年 5 月推出。
這項工作使用的查詢方言。有效值包括:
如果是使用者提交的工作,這個欄位只會填入查詢工作。 您可以透過設定控制預設選取的查詢方言。 如果是背景作業,這個欄位的值不會受到預設查詢方言設定的控制,也不會影響使用者提交的作業。部分背景工作會省略這個值。 |
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 專案 ID。如未指定,則會使用預設專案。 -
REGION:任何資料集區域名稱。例如:`region-us`。
範例
如要針對預設專案以外的專案執行查詢,請按照下列格式新增專案 ID:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_USER
PROJECT_ID:專案 IDREGION_NAME:專案的區域
例如 `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_USER。
查看待處理或執行中的工作
下列查詢會顯示目前使用者在指定專案中提交的所有待處理或執行中工作,包括工作 ID、建立時間和查詢:
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 | +--------------+---------------------------+---------------------------------+