查找会话
本文档介绍了如何在 BigQuery 中获取会话 ID。它面向已对 BigQuery 会话有一定了解并且已创建会话的用户。
在完成以下步骤之前,请确保您拥有获取会话 ID 所需的权限。
获取活跃会话的 ID
在某些情况下,您需要引用会话才能继续在该会话中操作。例如,如果您使用的是 Cloud Shell,则每次为该会话运行命令时,都必须包含会话 ID。
控制台
您无需提供会话 ID 即可在 Google Cloud 控制台中的会话内运行新查询。您可以继续在包含该会话的编辑器标签页中执行操作。但是,如果要通过 Cloud Shell 或 API 调用引用会话,则需要知道您在控制台中创建的会话的 ID。
在完成以下步骤之前,请确保已在活跃会话中运行至少一个查询。
在 Google Cloud 控制台中,进入 BigQuery 页面。
点击包含该会话的编辑器标签页。
在查询结果中,点击作业信息。
在作业信息列表中,搜索会话 ID:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
bq
如需在 Cloud Shell 中的会话内运行查询命令,您需要在命令中包含会话 ID。您可以在创建会话时或通过检索会话列表来获取会话 ID。
使用 Cloud Shell 创建会话时,返回的会话 ID 如下所示:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
要使用 API 调用将 SQL 命令传入会话,您需要在 API 调用中包含会话 ID。您可以在创建会话时或通过检索会话列表来获取会话 ID。
使用 API 调用创建会话时,响应中的会话 ID 如下所示:
sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
获取活跃会话和非活跃会话的列表
如需获取活跃会话和非活跃会话的会话 ID,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,转到 BigQuery 页面。
选择作业历史记录的类型:
- 如需显示近期作业的信息,请点击个人历史记录。
- 如需显示项目中近期作业的信息,请点击项目历史记录。
在会话 ID 列中,您可以查看作业的会话 ID。
SQL
如需获取最近三个会话(包括活跃会话和已终止会话)的列表,请在编辑器标签页中运行以下查询:
在 Google Cloud 控制台中,进入 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT session_id, MAX(creation_time) AS last_modified_time FROM
region-us
.INFORMATION_SCHEMA.VIEW WHERE session_id IS NOT NULL AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY) GROUP BY session_id ORDER BY last_modified_time DESC;替换以下内容:
VIEW
:INFORMATION_SCHEMA
视图:JOBS_BY_USER
:仅返回当前项目中的当前用户创建的作业SESSIONS_BY_USER
:仅返回当前项目中的当前用户创建的会话SESSIONS_BY_PROJECT
:返回当前项目中的所有会话
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
查询会生成如下所示的结果:
+-------------------------------------------------------------------------+ | session_id | last_modified_time | +-------------------------------------------------------------------------+ | CgwKCmZhbGl1LXRlc3QQARokMGQ5YWWYzZmE0YjhkMDBm | 2021-06-01 23:04:26 | | CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZTczwZjA1NDc2 | 2021-05-30 22:43:02 | | CgwKCmZhbGl1LXRlc3QQY2MzLTg4ZDEtYzVhOWZiYmM5NzZk | 2021-04-07 22:31:21 | +-------------------------------------------------------------------------+
获取您的活跃会话列表
如需获取过去 24 小时内未终止的活跃会话列表,请运行以下查询:
SELECT session_id, MAX(creation_time) AS last_modified_time FROM `region-us`.INFORMATION_SCHEMA.VIEW WHERE session_id IS NOT NULL AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND is_active GROUP BY session_id ORDER BY last_modified_time DESC;
查询会生成如下所示的结果:
+-------------------------------------------------------------------------+
| session_id | last_modified_time |
+-------------------------------------------------------------------------+
| CgwKCmZhbGl1LXRlc3QQARokMGQ5YWWYzZmE0YjhkMDBm | 2021-06-01 23:04:26 |
| CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZTczwZjA1NDc2 | 2021-05-30 22:43:02 |
+-------------------------------------------------------------------------+
请替换以下内容:
- VIEW:
INFORMATION_SCHEMA
视图:JOBS_BY_USER
:仅返回当前项目中的当前用户创建的作业SESSIONS_BY_USER
:仅返回当前项目中的当前用户创建的会话SESSIONS_BY_PROJECT
:返回当前项目中的所有会话