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

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

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

查看会话历史记录

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

控制台

要在 Google Cloud 控制台中查看会话的历史记录,您可以按会话 ID 过滤个人历史记录项目历史记录,以查看所有 SQL 查询在特定会话中的运行情况。如需了解如何查找会话 ID,请参阅查找会话

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 展开作业记录部分。

  3. 选择要查看的作业历史记录类型:

    • 如需显示近期作业的信息,请点击个人历史记录
    • 如需显示项目中近期作业的信息,请点击项目历史记录
  4. 点击 过滤条件,然后选择会话 ID

  5. 会话 ID 字段中,搜索会话 ID:

    Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
    

SQL

如需查看特定会话的历史数据,请先获取会话 ID,然后执行以下步骤:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,输入以下语句:

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

    替换以下内容:

    • VIEW:要使用的 INFORMATION_SCHEMA 视图

      选择以下视图之一:

    • SESSION_ID:要检索其历史数据的会话的 ID

  3. 点击 运行

如需详细了解如何运行查询,请参阅运行交互式查询

示例

以下命令返回会话 ID 为 CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0 的会话的历史记录。您可以将此会话 ID 替换为您自己的 ID。

SELECT
  creation_time, 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;  |
+---------------------+------------------------------------------------------------------------------------------+

后续步骤