在会话中查看查询历史记录

本文档介绍了如何在 BigQuery 中查看会话的历史记录。它面向已经对 BigQuery 会话有一定了解的用户。

在完成以下步骤之前,请确保您拥有查看会话历史记录所需的权限

查看会话历史记录

会话会捕获时间范围内的 SQL 活动。这些信息存储在会话的历史记录中。通过会话历史记录,您可以跟踪您在会话中所做的更改。如果作业失败或成功,则会记录在会话历史记录中,以便您稍后返回并查看已执行的操作。

控制台

要在 Cloud Console 中查看会话的历史记录,必须存在该会话的编辑器标签页。即使您删除了编辑器标签页,也仍然可以使用 SQL 检索会话历史记录。

  1. 在 Cloud Console 中,转到 BigQuery 页面。

    转到 BigQuery

  2. 点击包含该会话的编辑器标签页。

  3. 点击查询记录

SQL

如需查看特定会话的历史数据,请获取会话 ID,然后运行以下查询。

SELECT *
FROM `region-us`.INFORMATION_SCHEMA.VIEW
WHERE session_info.session_id = 'SESSION_ID'

其中:

  • VIEW:要使用的 INFORMATION_SCHEMA 视图。 您可以选择以下选项:
    • [JOBS_BY_USER][bigquery/docs/information-schema-jobs#schema]:仅返回当前项目当前用户创建的作业。
    • [SESSIONS_BY_USER][bigquery/docs/information-schema-sessions#schema]:仅返回当前项目当前用户创建的会话。
    • [SESSIONS_BY_PROJECT][bigquery/docs/information-schema-sessions#schema]:返回当前项目中的所有会话。
  • SESSION_ID:要检索其历史数据的会话的 ID。

示例

此查询返回具有会话 ID CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0 的会话的历史记录。您可以将此会话 ID 替换为您自己的 ID。

SELECT creation_time, project_id, user_email, job_id, query
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
WHERE session_info.session_id = 'CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0'
AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY)

查询会生成如下所示的结果:

+---------------------+------------------------------------------------------------------------------------------+
|    creation_time    |                                          query                                           |
+---------------------+------------------------------------------------------------------------------------------+
| 2021-06-01 23:04:26 | SELECT * FROM Purchases;                                                                 |
| 2021-06-01 23:02:51 | CREATE TEMP TABLE Purchases(total INT64)  AS SELECT * FROM UNNEST([10,23,3,14,55]) AS a; |
+---------------------+------------------------------------------------------------------------------------------+

后续步骤