SESSIONS_BY_PROJECT 视图

INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 视图包含有关当前项目中所有 BigQuery 会话的实时元数据。

所需权限

如需查询 INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 视图,您需要拥有项目的 bigquery.jobs.listAll Identity and Access Management (IAM) 权限。以下每个预定义的 IAM 角色均可提供所需的权限:

  • Project Owner
  • BigQuery Admin

如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制

架构

查询 INFORMATION_SCHEMA.SESSIONS_BY_* 视图时,每个 BigQuery 会话都会有一行对应的查询结果。

INFORMATION_SCHEMA.SESSIONS_BY_* 视图具有如下架构:

列名 数据类型
creation_time TIMESTAMP (分区列)此会话的创建时间。分区基于此时间戳的世界协调时间 (UTC)。
expiration_time TIMESTAMP (分区列)此会话的到期时间。分区基于此时间戳的世界协调时间 (UTC)。
is_active BOOL 会话是否仍然有效?如果是,则为 TRUE;否则为 FALSE
last_modified_time TIMESTAMP (分区列)上次修改会话的时间。分区基于此时间戳的世界协调时间 (UTC)。
principal_subject STRING (聚簇列)运行作业的用户的主标识符
project_id STRING (聚簇列)项目的 ID。
project_number INTEGER 项目编号。
session_id STRING 会话的 ID。例如 bquxsession_1234
user_email STRING (聚簇列)运行会话的用户的电子邮件地址或服务账号。

数据保留

此视图包含当前正在运行的会话和过去 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  |
+--------------+