セッションでのクエリ履歴を表示する

このドキュメントでは、BigQuery でセッションの履歴を表示する方法について説明します。このドキュメントは、BigQuery セッションの概要を理解している方を対象としています。

以下の手順を行う前に、セッションの履歴を表示するために必要な権限があることを確認してください。

セッションの履歴を表示する

セッションは、期間内の SQL アクティビティをキャプチャします。この情報は、セッションの履歴に保存されます。セッション履歴では、セッション内で発生した変更を追跡できます。ジョブの失敗または成功はセッション履歴に記録されるため、実行した操作を後で確認できます。

コンソール

Google Cloud コンソールでセッションの履歴を表示するには、セッション ID で個人履歴またはプロジェクト履歴をフィルタリングして、特定のセッションで実行されるすべての SQL クエリを表示します。セッション ID を確認する方法については、セッションの検索をご覧ください。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. 表示するジョブ履歴の種類を選択します。

    • 最近のジョブの情報を表示するには、[個人履歴] をクリックします。
    • プロジェクトの最近のジョブの情報を表示するには、[プロジェクト履歴] をクリックします。
  3. [ フィルタ] をクリックし、[セッション ID] を選択します。

  4. [セッション 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 ビュー

      次のいずれかのビューを選択します。

      • JOBS_BY_USER: 現在のプロジェクトで現在のユーザーによって作成されたジョブのみを返します
      • SESSIONS_BY_USER: 現在のプロジェクトで現在のユーザーによって作成されたセッションのみを返します
      • SESSIONS_BY_PROJECT: 現在のプロジェクト内のすべてのセッションを返します
    • SESSION_ID: 履歴データを取得するセッションの ID

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

次の例は、セッション ID CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0 があるセッションの履歴を返します。このセッション 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;  |
+---------------------+------------------------------------------------------------------------------------------+

次のステップ