会话简介

本指南介绍如何在 BigQuery 会话中启用、创建和跟踪更改。它面向熟悉 BigQueryGoogleSQL 的用户。

您可以在 BigQuery 会话中捕获 SQL 活动。可在整个会话期间使用临时表、临时函数和变量来以交互方式构建一个或多个查询。多个会话可同时处于活跃状态,并且会保存每个会话的历史记录。您可以在会话终止后最长 20 天内查看该会话的历史记录。

会话的典型用法包括:

  • 维护瞬时会话数据。定义一次变量和临时表,然后在整个会话期间使用。

  • 按会话查找查询历史记录。如需跟踪会话期间特定时间发生的行为,您可以查看会话期间所做更改的历史记录。

  • 针对多个查询创建多语句事务。在一次会话中,您可以在决定提交或回滚之前开始事务、进行更改和查看临时结果。您可以在会话中对多个查询执行此操作。如果您不使用会话,则需要在单个查询中完成多语句事务。

价格

  • 使用会话无需额外费用。

  • 对于使用按需价格的项目,针对 INFORMATION_SCHEMA 的查询会产生费用。如需了解详情,请参阅 INFORMATION_SCHEMA 价格

限制

  • 会话中的每个查询都在创建会话的位置运行。

  • 目前,会话在处于非活跃状态 24 小时之后自动终止。

  • 目前,会话在创建 7 天后自动终止。

  • 会话变量的大小上限为 1 MB,会话中使用的所有变量的大小上限为 10 MB。

  • 不允许在同一会话中进行并发查询。

角色与权限

本部分介绍通过会话执行操作所需的 Identity and Access Management (IAM) 权限IAM 角色

操作 所需权限 默认角色
创建新会话。 使用您创建的现有会话。 bigquery.jobs.create bigquery.user
bigquery.Jobuser
bigquery.admin
终止您创建的会话。 bigquery.jobs.create bigquery.user
bigquery.Jobuser
bigquery.admin
终止其他用户创建的会话。 bigquery.jobs.create
bigquery.jobs.update
bigquery.admin
查看项目中的会话列表。 此列表包含您在项目中使用 INFORMATION_SCHEMA.JOBS_BY_USER 创建的会话的 ID。 bigquery.jobs.list bigquery.user
bigquery.Jobuser
bigquery.admin
查看项目中所有用户的所有会话。 此列表包含在项目中使用 INFORMATION_SCHEMA.JOBS 创建的所有会话的 ID。 bigquery.jobs.listAll bigquery.admin
使用 INFORMATION_SCHEMA.SESSIONS_BY_USER 查看当前项目中当前用户创建的会话的元数据。 bigquery.jobs.list bigquery.user
bigquery.Jobuser
bigquery.admin
使用 INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 查看当前项目中的所有会话的元数据。 bigquery.jobs.listAll bigquery.admin

后续步骤