Menggunakan runtime lanjutan BigQuery

Dokumen ini menjelaskan cara mengaktifkan dan menonaktifkan runtime lanjutan BigQuery, serta cara mengevaluasi efek runtime lanjutan pada performa kueri Anda.

Peran dan izin

Untuk mendapatkan izin yang diperlukan untuk menentukan setelan konfigurasi, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) di project atau organisasi Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Fitur

Mengaktifkan runtime lanjutan di project BigQuery akan mengaktifkan fitur di pemroses kueri yang mengurangi latensi kueri dan penggunaan slot tanpa biaya tambahan.

Vektorisasi yang ditingkatkan

Eksekusi tervektorisasi adalah model pemrosesan kueri yang beroperasi pada kolom data dalam blok yang sesuai dengan ukuran cache CPU dan menggunakan instruksi single instruction, multiple data (SIMD). Vektorisasi yang ditingkatkan memperluas eksekusi kueri vektor di BigQuery ke aspek pemrosesan kueri berikut:

  • Dengan memanfaatkan encoding data khusus dalam format penyimpanan Capacitor, operasi evaluasi filter dapat dijalankan pada data yang dienkode.
  • Encoding khusus disebarkan melalui rencana kueri, yang memungkinkan lebih banyak data diproses saat masih dienkode.
  • Dengan menerapkan pelipatan ekspresi untuk mengevaluasi fungsi deterministik dan ekspresi konstanta, BigQuery dapat menyederhanakan predikat kompleks menjadi nilai konstanta.

Pengoptimalan kueri pendek

BigQuery biasanya menjalankan kueri di lingkungan terdistribusi menggunakan lapisan perantara shuffle. Pengoptimalan kueri singkat secara dinamis mengidentifikasi kueri yang dapat dijalankan sebagai satu tahap, sehingga mengurangi latensi dan konsumsi slot. Encoding khusus dapat digunakan secara lebih efektif saat kueri dijalankan dalam satu tahap. Pengoptimalan ini paling efektif jika digunakan dengan mode pembuatan tugas opsional, yang meminimalkan latensi startup, pemeliharaan, dan pengambilan hasil tugas.

Kelayakan untuk pengoptimalan kueri singkat bersifat dinamis dan dipengaruhi oleh faktor-faktor berikut:

  • Ukuran pemindaian data yang diprediksi.
  • Jumlah pemindahan data yang diperlukan.
  • Selektivitas filter kueri.
  • Jenis dan tata letak fisik data dalam penyimpanan.
  • Struktur kueri keseluruhan.
  • Statistik historis dari eksekusi kueri sebelumnya.

Mengaktifkan runtime lanjutan

Untuk mengaktifkan runtime lanjutan bagi project atau organisasi Anda, gunakan pernyataan ALTER PROJECT atau ALTER ORGANIZATION untuk mengubah konfigurasi default. Dalam pernyataan, tetapkan argumen query_runtime ke 'advanced'. Contoh:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = 'advanced'
);

Ganti kode berikut:

  • PROJECT_NAME: nama project
  • LOCATION: lokasi project

Diperlukan waktu beberapa menit agar perubahan diterapkan.

Setelah Anda mengaktifkan runtime lanjutan, kueri yang memenuhi syarat dalam project atau organisasi akan menggunakan runtime lanjutan, terlepas dari pengguna yang membuat tugas kueri.

Menonaktifkan runtime lanjutan

Untuk menonaktifkan runtime lanjutan untuk project atau organisasi Anda, gunakan pernyataan ALTER PROJECT atau ALTER ORGANIZATION untuk mengubah konfigurasi default. Dalam pernyataan, tetapkan argumen query_runtime ke NULL. Contoh:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = NULL
);

Ganti kode berikut:

  • PROJECT_NAME: nama project
  • LOCATION: lokasi project

Diperlukan waktu beberapa menit agar perubahan diterapkan.

Mengevaluasi performa kueri

Anda dapat menggunakan penjelajah tugas administratif dan tampilan INFORMATION_SCHEMA untuk mengevaluasi efek runtime lanjutan pada waktu eksekusi kueri dan penggunaan slot.

Ikuti langkah-langkah berikut untuk mengevaluasi performa kueri dengan dan tanpa mengaktifkan runtime lanjutan:

  1. Di Trusted Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Buka tab baru di editor kueri.

  3. Menonaktifkan penggunaan hasil kueri yang di-cache untuk tab kueri tersebut.

  4. Ketik atau salin kueri pengujian Anda ke tab kueri.

  5. Jalankan kueri pengujian beberapa kali untuk menetapkan performa dasar. Setelah setiap kali dijalankan, tentukan metrik performa kueri sebagai berikut:

    1. Lihat detail eksekusi kueri di penjelajah tugas administratif.
    2. Ambil data performa tugas dari tampilan INFORMATION_SCHEMA.JOBS_BY_USER dengan menjalankan kueri berikut di tab kueri baru:

      SELECT
          job_id,
          end_time - start_time AS duration,
          total_slot_ms,
          query
      FROM
        `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
      WHERE
          creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
          AND job_type='QUERY'
          AND total_slot_ms IS NOT NULL
      ORDER BY
          creation_time DESC,
          query ASC
      LIMIT 1000;
      
  6. Aktifkan runtime lanjutan.

  7. Ulangi Langkah 5.

  8. Bandingkan metrik latensi kueri dan penggunaan slot untuk kueri pengujian dari sebelum dan sesudah Anda mengaktifkan runtime lanjutan.