セッションを検索する

このドキュメントでは、BigQuery でセッション ID を取得する方法について説明します。このドキュメントは、BigQuery セッションの概要をすでに理解し、セッションを作成した経験のあるユーザーを対象としています。

以下の手順を行う前に、セッション ID の取得に必要な権限があることを確認してください。

アクティブなセッションの ID を取得する

セッション内で作業を継続するために、セッションの参照が必要になることがあります。たとえば、Cloud Shell で作業している場合は、セッションのコマンドを実行するたびにセッション ID を指定する必要があります。

コンソール

Google Cloud コンソールのセッション内で新しいクエリを実行する場合は、セッション ID を指定する必要はありません。セッションを含むエディタタブで作業を継続できます。ただし、Cloud Shell または API 呼び出しでセッションを参照する場合は、コンソールで作成したセッションの ID が必要になります。

この操作を行う前に、アクティブなセッションで 1 つ以上のクエリが実行されていることを確認してください。

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

    [BigQuery] に移動

  2. セッションを含むエディタのタブをクリックします。

  3. [クエリ結果] で [ジョブ情報] をクリックします。

  4. [ジョブ情報] リストで、セッション 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 を取得するには、次の操作を行います。

コンソール

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

    [BigQuery] に移動

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

    • 最近のジョブの情報を表示するには、[個人履歴] をクリックします。
    • プロジェクトの最近のジョブの情報を表示するには、[プロジェクト履歴] をクリックします。
  3. [セッション ID] 列で、ジョブのセッション ID を確認できます。

    ジョブ履歴のセッション ID

SQL

直近の 3 つのセッション(アクティブなセッションと終了したセッションを含む)のリストを取得するには、エディタタブで次のクエリを実行します。

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

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    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: 現在のプロジェクト内のすべてのセッションを返します

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

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

次のようなクエリ結果が生成されます。

+-------------------------------------------------------------------------+
| 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: 現在のプロジェクト内のすべてのセッションを返します

次のステップ