Mengerjakan sesi

Dokumen ini menjelaskan cara membuat, menggunakan, mengakhiri, dan mencantumkan sesi Anda.

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

Membuat sesi

Jika ingin mengambil sekelompok aktivitas SQL Anda, buat sesi BigQuery. Setelah membuat sesi, Anda dapat menjalankan kueri interaktif dalam sesi tersebut hingga sesi tersebut dihentikan. Semua kueri dalam sesi dijalankan (diproses) di lokasi tempat sesi dibuat.

Konsol

Di konsol Trusted Cloud , setiap sesi ditetapkan ke tab editor.

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Tulis kueri baru. Tab editor baru akan terbuka.

  3. Klik Lainnya > Setelan kueri. Panel Setelan kueri akan muncul.

  4. Di bagian Pengelolaan sesi, klik Gunakan mode sesi untuk mengaktifkan mode sesi.

  5. Di Setelan tambahan > Lokasi data, pilih lokasi. Setelah sesi dibuat, semua kueri dalam sesi dibatasi untuk lokasi ini dan lokasi tidak dapat diubah.

  6. Klik Simpan.

  7. Tulis kueri di tab editor, lalu jalankan. Sesi baru dibuat setelah kueri pertama ini dijalankan.

bq

Buka Cloud Shell dan jalankan perintah bq query berikut:

bq query \
--nouse_legacy_sql \
--create_session
[--location 'SESSION_LOCATION'] \
'SQL_STATEMENT'

dengan:

  • SESSION_LOCATION: Mengikat sesi ke lokasi fisik. Membatasi semua kueri dalam sesi ke lokasi ini. Opsional.
  • SQL_STATEMENT: Pernyataan SQL pertama untuk sesi Anda.

ID sesi Anda ditampilkan bersama hasil kueri.

API

Panggil metode jobs.query dengan parameter berikut:

{
  "query": "SQL_STATEMENT",
  "createSession": true,
  ["location": "SESSION_LOCATION"]
}

dengan:

  • SQL_STATEMENT: Pernyataan SQL pertama untuk sesi Anda.
  • SESSION_LOCATION: Mengikat sesi ke lokasi fisik. Membatasi semua kueri dalam sesi ke lokasi ini. Opsional.

Isi respons mirip dengan berikut ini:

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

Menjalankan kueri dalam sebuah sesi

Setelah membuat sesi, Anda dapat menjalankan kueri dalam sesi tersebut:

Konsol

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Klik tab editor yang berisi sesi.

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

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.

Hasil kueri diikuti dengan ID sesi Anda.

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 menghapus tanda --session_id dari perintah bq query. Jika ingin menggunakan sesi lain atau jika sesi berakhir, Anda harus memperbarui file .bigqueryrc.

API

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.

Menghentikan sesi

Sesi dapat dihentikan secara manual atau otomatis. Histori sesi yang dihentikan tersedia selama 20 hari setelah penghentian.

Menghentikan sesi secara otomatis

Sesi akan otomatis dihentikan setelah 24 jam tidak aktif atau setelah 7 hari, mana saja yang terjadi terlebih dahulu.

Menghentikan sesi saat ini

Anda dapat menghentikan sesi saat ini dengan pernyataan SQL atau di konsolTrusted Cloud , jika sesi tersebut dibuat di sana.

Konsol

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Temukan tab editor yang berisi sesi Anda, lalu tutup tab tersebut. Sesi akan berhenti.

SQL

Lakukan hal berikut untuk menghentikan sesi Anda:

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CALL BQ.ABORT_SESSION();

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

Menghentikan sesi menurut ID

Anda dapat menghentikan sesi menggunakan ID-nya. Anda tidak perlu berada di dalam sesi ini untuk menghentikannya dengan cara ini.

Dapatkan ID sesi, lalu jalankan pernyataan berikut:

CALL BQ.ABORT_SESSION(SESSION_ID);

Ganti SESSION_ID dengan ID sesi yang akan dihentikan.

Mendapatkan ID sesi aktif Anda

Dalam beberapa situasi, Anda perlu mereferensikan sebuah sesi untuk terus bekerja di dalamnya. Misalnya, jika menggunakan Cloud Shell, Anda harus menyertakan ID sesi setiap kali menjalankan perintah untuk sesi tersebut.

Konsol

Anda tidak perlu memberikan ID sesi untuk menjalankan kueri baru di dalam sesi di konsol Trusted Cloud . Anda dapat terus bekerja di tab editor yang berisi sesi tersebut. Namun, jika ingin mereferensikan sesi di Cloud Shell atau panggilan API, Anda perlu mengetahui ID untuk sesi yang dibuat di konsol.

Sebelum menyelesaikan langkah-langkah ini, pastikan Anda telah menjalankan minimal satu kueri dalam sesi yang aktif.

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Klik tab editor yang berisi sesi.

  3. Di Query results, klik Job information.

  4. Dalam daftar Job information, telusuri ID sesinya:

    Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
    

bq

Untuk menjalankan perintah kueri dalam sesi dalam Cloud Shell, Anda perlu menyertakan ID sesi dalam perintah tersebut. Anda bisa mendapatkan ID sesi saat membuat sesi atau dengan mencantumkan sesi.

Saat Anda membuat sesi dengan Cloud Shell, ID sesi yang ditampilkan akan terlihat seperti berikut:

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

API

Untuk meneruskan perintah SQL ke sesi dengan panggilan API, Anda harus menyertakan ID sesi dalam panggilan API. Anda bisa mendapatkan ID sesi saat membuat sesi atau dengan mencantumkan sesi.

Saat Anda membuat sesi dengan panggilan API, ID sesi dalam respons akan terlihat mirip dengan berikut ini:

sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

Mencantumkan sesi aktif dan tidak aktif

Untuk mendapatkan ID sesi dari sesi aktif dan tidak aktif, ikuti langkah-langkah berikut:

Konsol

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Pilih jenis histori tugas:

    • Untuk menampilkan informasi tugas terbaru Anda, klik Personal history.
    • Untuk menampilkan informasi tugas terbaru di project Anda, klik Project history.
  3. Di kolom Session ID, Anda dapat melihat ID sesi untuk tugas Anda.

    ID sesi dalam histori tugas

SQL

Untuk mendapatkan daftar tiga sesi terbaru, termasuk sesi aktif dan yang dihentikan, jalankan kueri berikut di tab editor:

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    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;

    Ganti kode berikut:

    • VIEW: tampilan INFORMATION_SCHEMA:
      • JOBS_BY_USER: hanya menampilkan tugas yang dibuat oleh pengguna saat ini dalam project saat ini
      • SESSIONS_BY_USER: hanya menampilkan sesi yang dibuat oleh pengguna saat ini dalam project saat ini
      • SESSIONS_BY_PROJECT: menampilkan semua sesi dalam project saat ini

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

Hasilnya mirip dengan berikut ini:

+-------------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------------------------+

Melihat histori sesi

Sebuah sesi menangkap aktivitas SQL Anda dalam suatu jangka waktu. Informasi ini disimpan dalam histori sesi. Histori sesi memungkinkan Anda melacak perubahan yang dibuat dalam sesi. Jika sebuah tugas gagal atau berhasil, tugas tersebut dicatat dalam histori sesi sehingga Anda dapat kembali dan melihat apa yang telah dilakukan.

Konsol

Untuk melihat histori sesi di konsol Trusted Cloud , Anda dapat memfilter Histori Pribadi atau Histori Project berdasarkan ID sesi untuk melihat semua kueri SQL yang dijalankan dalam sesi tertentu.

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Luaskan bagian Histori tugas.

  3. Pilih jenis histori tugas yang ingin Anda lihat:

    • Untuk menampilkan informasi tugas terbaru, klik Personal history.
    • Untuk menampilkan informasi tugas terbaru dalam project Anda, klik Project history.
  4. Klik Filter, lalu pilih Session ID.

  5. Di kolom Session ID, telusuri ID sesi:

    Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
    

SQL

Untuk melihat data historis dalam sesi tertentu, dapatkan ID sesi Anda terlebih dahulu, lalu ikuti langkah-langkah berikut:

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    SELECT
      *
    FROM
      region-us.INFORMATION_SCHEMA.VIEW
    WHERE
      session_info.session_id = 'SESSION_ID';

    Ganti kode berikut:

    • VIEW: tabel virtual INFORMATION_SCHEMA untuk digunakan

      Pilih salah satu tabel virtual berikut:

      • JOBS_BY_USER: hanya menampilkan tugas yang dibuat pengguna saat ini dalam project saat ini
      • SESSIONS_BY_USER: hanya menampilkan sesi yang dibuat pengguna saat ini dalam project saat ini
      • SESSIONS_BY_PROJECT: menampilkan semua sesi dalam project saat ini
    • SESSION_ID: ID sesi yang digunakan untuk mengambil data historis

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

Contoh

Pernyataan berikut menampilkan histori untuk sesi yang memiliki ID sesi CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0. Anda dapat mengganti ID sesi ini dengan ID sesi Anda sendiri.

SELECT
  creation_time, query
FROM
  region-us.INFORMATION_SCHEMA.JOBS_BY_USER
WHERE
  session_info.session_id = 'CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0'
  AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY);

Hasilnya mirip dengan berikut ini:

+---------------------+------------------------------------------------------------------------------------------+
|    creation_time    |                                          query                                           |
+---------------------+------------------------------------------------------------------------------------------+
| 2021-06-01 23:04:26 | SELECT * FROM Purchases;                                                                 |
| 2021-06-01 23:02:51 | CREATE TEMP TABLE Purchases(total INT64) AS SELECT * FROM UNNEST([10,23,3,14,55]) AS a;  |
+---------------------+------------------------------------------------------------------------------------------+

Langkah berikutnya