Menjalankan kueri dalam sesi

Dokumen ini menjelaskan cara menjalankan kueri dalam sesi BigQuery. Dokumen ini ditujukan bagi pengguna yang sudah memiliki pemahaman umum tentang sesi, sudah membuat sesi, dan mengetahui ID untuk sesi yang ingin mereka gunakan.

Sebelum menyelesaikan langkah-langkah ini, pastikan Anda memiliki izin yang diperlukan untuk membuat sesi.

Menjalankan kueri dalam sebuah sesi

Setelah membuat sesi, Anda dapat menambahkan kueri ke sesi dan menjalankannya. Ada beberapa cara untuk melakukannya:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik tab editor yang berisi sesi tersebut.

  3. Tambahkan kueri ke sesi tersebut, lalu klik Jalankan.

Menguji sesi Anda

Di Konsol Google Cloud, buka tab editor yang berisi sesi yang Anda buat, lalu jalankan pernyataan SQL ini:

CREATE TEMP TABLE Temperature(degrees INT64)  AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;

Hapus atau jadikan konten di tab sebagai komentar dan jalankan pernyataan SQL ini:

SELECT * FROM Temperature;

Pastikan adanya hasil yang serupa dengan ini:

+---------+
| degrees |
+---------+
|      55 |
|      14 |
|       3 |
|       0 |
|      30 |
+---------+

bq

Buka Cloud Shell dan jalankan perintah bq query berikut:

bq query \
--nouse_legacy_sql \
--session_id=SESSION_ID \
'SQL_STATEMENT'

dengan:

  • SESSION_ID: Ganti ini dengan ID sesi yang ingin Anda gunakan.
  • SQL_STATEMENT: Pernyataan SQL yang akan dijalankan di sesi Anda.

Menguji sesi Anda

Buat tabel sementara bernama Temperature di sesi yang Anda buat. Ganti ID sesi dengan ID Anda sendiri.

bq query \
  --nouse_legacy_sql \
  --session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ \
  'CREATE TEMP TABLE Temperature(degrees INT64)  AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;'

Dapatkan daftar semua nilai dalam tabel Temperature. Ganti ID sesi dengan ID Anda sendiri.

bq query \
  --nouse_legacy_sql \
  --session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ \
  'SELECT * FROM Temperature;'

Pastikan adanya hasil yang serupa dengan ini:

+-------+
| total |
+-------+
|    30 |
|     0 |
|     3 |
|    14 |
|    55 |
+-------+

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

Hemat waktu dengan menambahkan sesi Anda ke .bigqueryrc

Jika akan menjalankan banyak kueri dengan Cloud Shell, Anda dapat menambahkan ID sesi ke [query] di .bigqueryrc agar Anda tidak perlu menyalin dan menempelkan ID sesi ke setiap perintah.

Seperti inilah tampilan ID sesi di .bigqueryrc:

[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

Setelah menambahkan ID sesi ke .bigqueryrc, Anda dapat menggunakan perintah ini:

bq query \
  --nouse_legacy_sql \
  'SELECT * FROM Temperature;'

Perlu diketahui bahwa jika ingin menggunakan sesi lain atau jika sesi berakhir, Anda harus memperbarui .bigqueryrc.

API

Panggil metode jobs.insert atau metode jobs.query dengan resource tugas yang ditentukan.

jobs.insert

Panggil metode jobs.insert dengan parameter berikut:

{
  "jobReference": {
    "projectId": "PROJECT_ID",
    "jobId": "JOB_ID"
  },
  "configuration": {
    "query": {
      "query": "SQL_STATEMENT",
      "connectionProperties": [{
        "key": "session_id",
        "value": "SESSION_ID"
      }]
    }
  }
}

dengan:

  • PROJECT_ID: Project yang akan membuat sesi.
  • JOB_ID: Tugas yang membuat sesi.
  • SQL_STATEMENT: Pernyataan SQL pertama untuk sesi Anda.
  • SESSION_ID: ID sesi.

Menguji sesi Anda

Masukkan isi permintaan berikut untuk membuat tabel sementara bernama Temperature dalam sesi yang Anda buat. Ganti project ID, ID tugas, dan ID sesi dengan ID Anda sendiri.

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "configuration": {
    "query": {
      "query": "CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;",
      "connectionProperties": [{
        "key": "session_id",
        "value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
      }]
    }
  }
}

Masukkan isi permintaan berikut untuk mendapatkan daftar semua nilai dalam tabel Temperature dalam sebuah sesi. Ganti project ID, ID tugas, dan ID sesi dengan ID Anda sendiri.

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "configuration": {
    "query": {
      "query": "SELECT * FROM Temperature;",
      "connectionProperties": [{
        "key": "session_id",
        "value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
      }]
    }
  }
}

Pastikan isi respons untuk kedua permintaan serupa dengan ini:

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "statistics": {
    "sessionInfo": {
      "sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
    }
  }
}

jobs.query

Panggil metode jobs.query dengan parameter berikut:

{
  "query": "SQL_STATEMENT",
  "connectionProperties": [{
    "key": "session_id",
    "value": "SESSION_ID"
  }]
}

dengan:

  • SQL_STATEMENT: Pernyataan SQL pertama untuk sesi Anda.
  • SESSION_ID: ID sesi.

Menguji sesi Anda

Masukkan isi permintaan berikut untuk membuat tabel sementara bernama Temperature dalam sesi yang Anda buat. Ganti project ID, ID tugas, dan ID sesi dengan ID Anda sendiri.

{
  "query": "CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;",
  "connectionProperties": [{
    "key": "session_id",
    "value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
  }]
}

Masukkan isi permintaan berikut untuk mendapatkan daftar semua nilai dalam tabel Temperature dalam sebuah sesi. Ganti project ID, ID tugas, dan ID sesi dengan ID Anda sendiri.

{
  "query": "SELECT * FROM Temperature;",
  "connectionProperties": [{
    "key": "session_id",
    "value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
  }]
}

Pastikan isi respons untuk kedua permintaan serupa dengan ini:

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "statistics": {
    "sessionInfo": {
      "sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
    }
  }
}

Langkah berikutnya