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
Di konsol Google Cloud, buka halaman BigQuery.
Klik tab editor yang berisi sesi tersebut.
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"
}
}
}