会话简介

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

您可以在 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

后续步骤