セッションを作成する
このドキュメントでは、BigQuery でセッションを作成する方法について説明します。BigQuery セッションに精通しているユーザーを対象としています。
セッションを作成する
SQL アクティビティのグループをキャプチャする場合は、BigQuery セッションを作成します。セッションを作成したら、セッションが終了するまで、セッションでインタラクティブ クエリを実行できます。セッション中のすべてのクエリは、セッションが作成された場所で実行(処理)されます。
以下の手順を行う前に、セッションの作成に必要な権限があることを確認してください。
コンソール
Google Cloud コンソールでは、各セッションはエディタタブに割り当てられます。
Google Cloud コンソールで [BigQuery] ページに移動します。
[
クエリを新規作成] をクリックします。新しいエディタタブが開きます。[展開] > [クエリ設定] をクリックします。[クエリの設定] パネルが表示されます。
[セッション管理] セクションで、[セッション モードを使用] をクリックしてセッション モードを有効にします。
[追加の設定] > [データのロケーション] で、ロケーションを選択します。セッションを作成すると、セッション内のすべてのクエリはこの場所に制限されます。ロケーションの変更はできません。
[保存] をクリックします。
エディタタブでクエリを記述して実行します。最初のクエリが実行された後、新しいセッションが作成されます。
bq
Cloud Shell を開き、次の bq query
コマンドを入力します。
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
ここで
- SESSION_LOCATION: セッションを物理的な場所にバインドします。セッション内のすべてのクエリをこの場所に制限します。省略可。
- SQL_STATEMENT: セッションの最初の SQL ステートメント。
セッションをテストする
以下のコマンドを使用して、一時テーブルを含むセッションを作成します。
bq query \
--nouse_legacy_sql \
--create_session \
--location 'asia-northeast1' \
'SELECT 1;'
次のような結果が返されたことを確認します。
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
定義済みのジョブリソースを使用して、jobs.insert メソッドまたは jobs.query メソッドを呼び出します。
jobs.insert
次のパラメータを使用して、jobs.insert
メソッドを呼び出します。
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID", ["location": "SESSION_LOCATION"] }, "configuration": { "query": { "query": "SQL_STATEMENT", "createSession": { "value": true } } } }
ここで
- PROJECT_ID: セッションを作成するプロジェクト。
- JOB_ID: セッションを作成するジョブ。
- SESSION_LOCATION: セッションを物理的な場所にバインドします。セッション内のすべてのクエリをこの場所に制限します。省略可。
- SQL_STATEMENT: セッションの最初の SQL ステートメント。
セッションをテストする
次のリクエスト本文を入力します。myProject
と job_123
を、それぞれプロジェクトの ID とジョブの ID に置き換えます。
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT 1;",
"createSession": {
"value": true
}
}
}
}
レスポンス本文が次のようになっていることを確認します。
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
次のパラメータを使用して、jobs.query
メソッドを呼び出します。
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
ここで
- SQL_STATEMENT: セッションの最初の SQL ステートメント。
- SESSION_LOCATION: セッションを物理的な場所にバインドします。セッション内のすべてのクエリをこの場所に制限します。省略可。
セッションをテストする
次のリクエスト本文を入力します。myProject
と job_123
を、それぞれプロジェクトの ID とジョブの ID に置き換えます。
{
"query": "SELECT 1;",
"createSession": true
}
レスポンス本文が次のようになっていることを確認します。
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}