SESSIONS_BY_PROJECT 檢視畫面

INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 檢視畫面包含目前專案中所有 BigQuery 工作階段的即時中繼資料。

所需權限

如要查詢 INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 檢視畫面,您需要專案的 bigquery.jobs.listAll Identity and Access Management (IAM) 權限。下列每個預先定義的 IAM 角色都包含必要權限:

  • 專案擁有者
  • BigQuery 管理員

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

結構定義

查詢 INFORMATION_SCHEMA.SESSIONS_BY_* 檢視表時,查詢結果會為每個 BigQuery 工作階段包含一個資料列。

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

資料欄名稱 資料類型
creation_time TIMESTAMP (分區資料欄) 這個工作階段的建立時間。 分區依據是這個時間戳記的世界標準時間。
expiration_time TIMESTAMP (分區資料欄) 這個工作階段的到期時間。 分區依據是這個時間戳記的世界標準時間。
is_active BOOL 工作階段是否仍為有效狀態?如果是,則為 TRUE,否則為 FALSE
last_modified_time TIMESTAMP (分割資料欄) 工作階段上次修改的時間。 分區依據是這個時間戳記的世界標準時間。
project_id STRING (叢集資料欄) 專案 ID。
project_number INTEGER 專案編號。
session_id STRING 工作階段的 ID。例如 bquxsession_1234
user_email STRING (叢集資料欄) 執行工作階段的使用者電子郵件地址或服務帳戶。

為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。

資料保留

這個檢視畫面會顯示目前執行的工作階段,以及過去 180 天內完成的工作階段記錄。

範圍和語法

對這個檢視表執行的查詢必須包含區域限定詞。如未指定區域限定符,系統會從所有區域擷取中繼資料。下表說明這個檢視畫面的區域範圍:

檢視表名稱 資源範圍 區域範圍
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 專案層級 REGION
取代下列項目:
  • 選用:PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。
  • REGION:任何資料集區域名稱。 例如:`region-us`

範例

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

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT
例如 `myproject`.`region-us`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT。 下列範例會列出在過去一天內,為指定專案建立工作階段的所有使用者或服務帳戶:

SELECT
  DISTINCT(user_email) AS user
FROM
  `region-us`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT
WHERE
  is_active = true
  AND creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY);

結果大致如下:

+--------------+
| user         |
+--------------+
| abc@xyz.com  |
+--------------+
| def@xyz.com  |
+--------------+