Apa itu BI Engine?

BigQuery BI Engine adalah layanan analisis dalam memori yang cepat dan mempercepat banyak kueri SQL di BigQuery dengan meng-cache data yang paling sering Anda gunakan secara cerdas. BI Engine dapat mempercepat kueri SQL dari sumber apa pun, termasuk yang ditulis oleh alat visualisasi data, dan dapat mengelola tabel yang di-cache untuk pengoptimalan berkelanjutan. Hal ini memungkinkan Anda meningkatkan performa kueri tanpa penyesuaian manual atau pemindahan data ke tingkat lain. Anda dapat menggunakan pengelompokan dan partisi untuk lebih mengoptimalkan performa tabel besar dengan BI Engine.

Misalnya, jika dasbor Anda hanya menampilkan data kuartal terakhir, pertimbangkan untuk mempartisi tabel menurut waktu sehingga hanya partisi terbaru yang dimuat ke dalam memori. Anda juga dapat menggabungkan manfaat tabel virtual terwujud dan BI Engine. Hal ini berfungsi sangat baik ketika tabel virtual terwujud digunakan untuk menggabungkan dan meratakan data guna mengoptimalkan strukturnya untuk BI Engine.

BI Engine memberikan keuntungan berikut:

  1. BigQuery API: BI Engine terintegrasi langsung dengan BigQuery API. Semua solusi BI atau aplikasi kustom yang berfungsi dengan BigQuery API melalui mekanisme standar, seperti REST atau driver JDBC dan ODBC, dapat menggunakan BI Engine tanpa modifikasi.
  2. Runtime yang diubah menjadi vektor: Dengan antarmuka BI Engine SQL, BI Engine memperkenalkan teknik yang lebih modern yang disebut pemrosesan vektor. Penggunaan pemrosesan vektor pada mesin eksekusi akan memanfaatkan arsitektur CPU modern secara lebih efisien, dengan beroperasi pada batch data dalam satu waktu. BI Engine juga menggunakan encoding data lanjutan, khususnya, encoding run-length dan kamus, untuk mengompresi lebih lanjut data yang tersimpan di lapisan dalam memori.
  3. Integrasi yang lancar: BI Engine berfungsi dengan fitur dan metadata BigQuery, termasuk tabel virtual yang diotorisasi, keamanan tingkat kolom dan baris, serta penyamaran data.
  4. Pemesanan: Pemesanan BI Engine mengelola alokasi memori pada level lokasi project. BI Engine meng-cache kolom atau partisi tertentu yang dikueri, dengan memprioritaskan kolom atau partisi tersebut dalam tabel yang ditandai sebagai pilihan.

Tentang antarmuka BI Engine SQL

Antarmuka BI Engine SQL memperluas BI Engine untuk berintegrasi dengan alat business intelligence (BI) lainnya seperti Looker, Tableau, Power BI, dan aplikasi kustom untuk mempercepat eksplorasi dan analisis data. Halaman ini menyediakan ringkasan tentang antarmuka BI Engine SQL serta kemampuan yang diperluas dan dihadirkan ke BI Engine.

Arsitektur BI Engine

Kasus penggunaan BI Engine

BI Engine dapat secara signifikan mempercepat banyak kueri SQL, termasuk yang digunakan untuk dasbor BI. Akselerasi paling efektif jika Anda mengidentifikasi tabel yang penting untuk kueri Anda, lalu menandainya sebagai tabel pilihan. Untuk menggunakan BI Engine, buat pemesanan yang menentukan kapasitas penyimpanan khusus untuk BI Engine. Anda dapat mengizinkan BigQuery menentukan tabel mana yang akan di-cache berdasarkan pola penggunaan project atau Anda dapat menandai tabel tertentu untuk mencegah traffic lain mengganggu percepatan.

BI Engine berguna dalam kasus penggunaan berikut:

  • Anda menggunakan alat BI untuk menganalisis data: Antarmuka BI Engine SQL dapat mempercepat kueri BigQuery, terlepas dari apakah kueri tersebut berjalan di konsol BigQuery, library klien, atau melalui API atau konektor ODBC atau JDBC. Hal ini dapat meningkatkan performa dasbor yang terhubung ke BigQuery secara signifikan melalui koneksi bawaan (API) atau konektor.
  • Anda memiliki tabel tertentu yang paling sering dikueri: BI Engine memungkinkan Anda menentukan tabel pilihan tertentu untuk dipercepat. Hal ini berguna jika Anda memiliki subset tabel yang lebih sering dikueri atau digunakan untuk dasbor dengan visibilitas tinggi.

BI Engine mungkin tidak sesuai dengan kebutuhan Anda dalam kasus berikut:

  • Anda menggunakan karakter pengganti di kueri: Kueri yang merujuk pada tabel karakter pengganti tidak didukung oleh BI Engine dan tidak mendapatkan manfaat dari percepatan.

  • Anda sangat bergantung pada fitur BigQuery yang tidak didukung: Meskipun BI Engine mendukung sebagian besar fungsi dan operator SQL saat menghubungkan alat business intelligence (BI) ke BigQuery, ada fitur yang tidak didukung, termasuk tabel eksternal dan fungsi non-SQL yang ditentukan pengguna.

Pertimbangan untuk BI Engine

Pertimbangkan hal berikut saat memutuskan cara mengonfigurasi BI Engine:

Memastikan percepatan untuk kueri tertentu

Anda dapat memastikan kumpulan kueri tertentu selalu dipercepat dengan membuat project terpisah menggunakan pemesanan BI Engine. Untuk melakukannya, Anda harus memastikan pemesanan BI Engine dalam project tersebut cukup besar agar sesuai dengan ukuran semua tabel yang digunakan dalam kueri tersebut dan menetapkan tabel itu sebagai tabel pilihan untuk BI Engine. Hanya kueri yang perlu dipercepat yang harus dijalankan dalam project tersebut.

Meminimalkan penggabungan

BI Engine berfungsi optimal dengan data yang digabungkan sebelumnya atau pra-agregat, dan data dengan sedikit penggabungan. Hal ini terutama terjadi jika satu sisi gabungan data berukuran besar dan sisi lainnya jauh lebih kecil, seperti saat Anda membuat kueri tabel fakta besar yang digabungkan dengan tabel dimensi kecil. Anda dapat menggabungkan BI Engine dengan tabel virtual terwujud yang melakukan penggabungan untuk menghasilkan satu tabel datar besar. Dengan cara ini, penggabungan yang sama tidak harus dilakukan pada setiap kueri.

Memahami dampak BI Engine

Anda dapat lebih memahami manfaat workload dari BI Engine dengan meninjau statistik penggunaan di Cloud Monitoring atau membuat kueri INFORMATION_SCHEMA di BigQuery. Pastikan untuk menonaktifkan opsi Use cache results di BigQuery untuk mendapatkan perbandingan yang paling akurat. Untuk mengetahui informasi selengkapnya, lihat Menggunakan hasil kueri yang di-cache.

Kuota dan batasan

Lihat kuota dan batas BigQuery guna mengetahui kuota dan batas yang berlaku untuk BI Engine.

Harga

Untuk mengetahui informasi tentang harga BI Engine, lihat halaman Harga BigQuery.

Pengoptimalan dan percepatan kueri

BigQuery, dan juga BI Engine, menguraikan rencana kueri yang dihasilkan untuk kueri SQL ke dalam subkueri. Subkueri berisi sejumlah operasi, seperti memindai, memfilter, atau menggabungkan data, dan sering kali merupakan unit eksekusi pada shard.

Meskipun semua kueri SQL yang didukung BigQuery dijalankan dengan benar oleh antarmuka BI Engine SQL, hanya subkueri tertentu yang dioptimalkan. Secara khusus, antarmuka BI Engine SQL paling dioptimalkan untuk subkueri level leaf (terendah) yang memindai data dari penyimpanan, dan menjalankan berbagai operasi seperti filter, komputasi, penggabungan, urutkan menurut, dan jenis penggabungan tertentu. Subkueri lainnya yang belum dipercepat sepenuhnya oleh BI Engine akan dikembalikan ke BigQuery untuk dijalankan.

Karena pengoptimalan selektif ini, business intelligence atau kueri jenis dasbor yang lebih sederhana mendapatkan manfaat paling banyak dari BI Engine (menghasilkan subkueri lebih sedikit) karena sebagian besar waktu eksekusi dihabiskan pada subkueri level leaf (terendah) yang memproses data mentah.

Langkah selanjutnya