JOBS_BY_ORGANIZATION 檢視表

INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 檢視表包含與目前專案相關聯的組織中,所有提交工作的近乎即時中繼資料。

必要角色

如要取得查詢 INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 檢視表所需的權限,請要求管理員授予您組織的 BigQuery 資源檢視者 (roles/bigquery.resourceViewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 bigquery.jobs.listAll 權限,可查詢 INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 檢視表。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

只有已定義 Cloud de Confiance by S3NS組織的使用者,才能使用結構定義資料表。

如要進一步瞭解 BigQuery 權限,請參閱「使用 IAM 控管存取權」。

結構定義

基礎資料會依 creation_time 欄分區,並依 project_id 和 user_email 分群。query_info 欄包含查詢工作的其他資訊。

INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 檢視表具有下列結構定義:

資料欄名稱 資料類型 值
bi_engine_statistics RECORD 如果專案已設為使用 BI Engine,這個欄位會包含 BiEngineStatistics。否則為 NULL。
cache_hit BOOLEAN 這項工作的查詢結果是否來自快取。如果您有多查詢陳述式工作,則父項查詢的 cache_hit 為 NULL。
creation_time TIMESTAMP (分區資料欄) 這項工作的建立時間。分區依據為這個時間戳記的世界標準時間。
destination_table RECORD 結果的目的地資料表 (如果有的話)。
end_time TIMESTAMP 這項工作的結束時間,以毫秒為單位 (自 Epoch 起算)。這個欄位代表工作進入 DONE 狀態的時間。
error_result RECORD 任何錯誤的詳細資料,以 ErrorProto 物件表示。
global_query_info RECORD 全域查詢的相關資訊。 包含下列欄位:
  • parent_job_id:主要區域中父項全域查詢工作的 ID。
  • parent_job_location:父項全域查詢工作的所在位置。
  • remote_regions:全域查詢參照的遠端區域陣列。
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 查詢工作的物件儲存庫和快取用量統計資料。這個值是重複記錄,包含下列欄位:
  • cloud_provider:託管物件儲存庫的雲端服務供應商 (例如 AWS)。
  • object_storage_bytes_read:直接從物件儲存庫讀取的位元組總數。
  • cache_bytes_read:從快取讀取的位元組總數。
parent_job_id STRING 父項工作的 ID (如有)。
priority STRING 這項工作的優先順序。有效值包括 INTERACTIVE 和 BATCH。
project_id STRING (分群資料欄) 專案 ID。
project_number INTEGER 專案編號。
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 Cloud 專案名稱
  • 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 月推出。 工作使用的查詢方言。有效值包括:
  • 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_ORGANIZATION 檢視畫面存取遷移日期之前的工作資訊,因為該檢視畫面只會保留遷移日期之後的資料。

範圍和語法

對這個檢視表執行的查詢必須包含區域限定詞。下表說明這個檢視畫面的區域範圍:

檢視表名稱 資源範圍 區域範圍
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 包含指定專案的組織 REGION
請更改下列內容:
  • 選用:PROJECT_ID: Cloud de Confiance 專案的 ID。如未指定,則會使用預設專案。
  • REGION:任何資料集區域名稱。例如:`region-us`。

限制

INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION 檢視表包含目前組織所屬專案執行的工作。即使其他組織的專案執行的工作存取了目前組織中的資源 (例如共用資料集),這些工作也不會顯示在這個檢視畫面中。舉例來說,如果您與其他組織的專案共用資料集,則該專案為存取資料集內資料而執行的任何工作,都不會包含在這個檢視表中。

範例

如要對預設專案以外的專案執行查詢,請按照下列格式新增專案 ID:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION_NAME:專案的區域

例如 `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION。

找出今天掃描最多位元組的前五項工作

以下範例說明如何找出機構中當天掃描最多位元組的五項工作。您可以進一步篩選 statement_type,查詢其他資訊,例如載入、匯出和查詢。

SELECT
  job_id,
  user_email,
  total_bytes_billed
FROM
  `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE
  EXTRACT(DATE FROM  creation_time) = current_date()
ORDER BY
  total_bytes_billed DESC
LIMIT 5;

結果大致如下:

+--------------+--------------+---------------------------+
| job_id       |  user_email  |  total_bytes_billed       |
+--------------+--------------+---------------------------+
| bquxjob_1    |  abc@xyz.com |    999999                 |
| bquxjob_2    |  def@xyz.com |    888888                 |
| bquxjob_3    |  ghi@xyz.com |    777777                 |
+--------------+--------------+---------------------------+

在組織層級依使用者匯總連結試算表用量

下列查詢會提供過去 30 天內,貴組織中連結試算表用量最高的使用者摘要,並依計費資料總量排序。這項查詢會匯總每位使用者的查詢總數、計費位元組總數和運算單元毫秒總數。這項資訊有助於瞭解採用情形,以及找出資源的主要使用者。

SELECT
  user_email,
  COUNT(*) AS total_queries,
  SUM(total_bytes_billed) AS total_bytes_billed,
  SUM(total_slot_ms) AS total_slot_ms
FROM
  `region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
  -- Filter for jobs created in the last 30 days
  creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  -- Filter for jobs originating from Connected Sheets
  AND job_id LIKE 'sheets_dataconnector%'
  -- Filter for completed jobs
  AND state = 'DONE'
  AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
GROUP BY
  1
ORDER BY
  total_bytes_billed DESC;

將 REGION_NAME 替換為專案的區域。例如:region-us。

傳回的結果看起來類似下列內容:

+---------------------+---------------+--------------------+-----------------+
| user_email          | total_queries | total_bytes_billed | total_slot_ms   |
+---------------------+---------------+--------------------+-----------------+
| alice@example.com   | 152           | 12000000000        | 3500000         |
| bob@example.com     | 45            | 8500000000         | 2100000         |
| charles@example.com | 210           | 1100000000         | 1800000         |
+---------------------+---------------+--------------------+-----------------+

在組織層級尋找連結試算表查詢的工作記錄

下列查詢會提供連結試算表執行的每項個別工作的詳細記錄。這項資訊有助於稽核及找出特定高成本查詢。

SELECT
  job_id,
  creation_time,
  user_email,
  project_id,
  total_bytes_billed,
  total_slot_ms
FROM
  `region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
  creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  AND job_id LIKE 'sheets_dataconnector%'
  AND state = 'DONE'
  AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
ORDER BY
  creation_time DESC;

將 REGION_NAME 替換為專案的區域。例如:region-us。

傳回的結果看起來類似下列內容:

+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+
| job_id                          | creation_time                   | user_email      | project_id | total_bytes_billed | total_slot_ms |
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+
| sheets_dataconnector_bquxjob_1  | 2025-11-06 00:26:53.077000 UTC  | abc@example.com | my_project | 12000000000        | 3500000       |
| sheets_dataconnector_bquxjob_2  | 2025-11-06 00:24:04.294000 UTC  | xyz@example.com | my_project | 8500000000         | 2100000       |
| sheets_dataconnector_bquxjob_3  | 2025-11-03 23:17:25.975000 UTC  | bob@example.com | my_project | 1100000000         | 1800000       |
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+