セッションを検索する
このドキュメントでは、BigQuery でセッション ID を取得する方法について説明します。このドキュメントは、BigQuery セッションの概要をすでに理解し、セッションを作成した経験のあるユーザーを対象としています。
以下の手順を行う前に、セッション ID の取得に必要な権限があることを確認してください。
アクティブなセッションの ID を取得する
セッション内で作業を継続するために、セッションの参照が必要になることがあります。たとえば、Cloud Shell で作業している場合は、セッションのコマンドを実行するたびにセッション ID を指定する必要があります。
コンソール
Google Cloud コンソールのセッション内で新しいクエリを実行する場合は、セッション ID を指定する必要はありません。セッションを含むエディタタブで作業を継続できます。ただし、Cloud Shell または API 呼び出しでセッションを参照する場合は、コンソールで作成したセッションの ID が必要になります。
この操作を行う前に、アクティブなセッションで 1 つ以上のクエリが実行されていることを確認してください。
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
直近の 3 つのセッション(アクティブなセッションと終了したセッションを含む)のリストを取得するには、エディタタブで次のクエリを実行します。
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
: 現在のプロジェクト内のすべてのセッションを返します