Pengantar tampilan terwujud
Tampilan terwujud BigQuery adalah tabel yang telah dihitung sebelumnya yang mengoptimalkan performa kueri dan mengurangi biaya eksekusi untuk kueri yang sering dijalankan dan dapat diprediksi. Dengan menyimpan hasil kueri secara berkala, tampilan terwujud mengatasi latensi kueri dan biaya pemindaian yang tinggi saat berulang kali membuat kueri set data besar dengan pola agregasi yang dapat diprediksi. Dengan menggabungkan data yang telah dikomputasi sebelumnya secara otomatis dengan perubahan terbaru dalam tabel dasar, tampilan terwujud menjamin hasil kueri yang terbaru tanpa memerlukan pipeline data manual.
Dokumen ini ditujukan untuk data engineer, administrator database, dan developer business intelligence (BI) yang mendesain pipeline analisis berperforma tinggi. Untuk berhasil menerapkan tampilan terwujud, Anda harus memahami struktur set data BigQuery, fungsi agregasi GoogleSQL, dan struktur biaya kueri.
Manfaat tampilan terwujud
Kasus penggunaan berikut menyoroti nilai tampilan terwujud:
- Memproses data terlebih dahulu. Tingkatkan performa kueri dengan menyiapkan agregasi, filter, gabungan, dan pengelompokan.
- Akselerasi dasbor. Mendukung alat BI seperti Looker yang sering membuat kueri metrik gabungan yang sama—misalnya, pengguna aktif harian.
- Analisis real-time pada streaming besar. Dapat memberikan respons yang lebih cepat pada tabel yang menerima data streaming berkecepatan tinggi.
- Pengelolaan biaya. Mengurangi biaya kueri berulang yang mahal pada set data besar.
Karakteristik utama
Karakteristik utama tampilan terwujud meliputi hal-hal berikut:
- Tak perlu pemeliharaan. BigQuery melakukan prakomputasi tampilan terwujud di latar belakang saat tabel dasar berubah. BigQuery secara otomatis menambahkan perubahan data inkremental dari tabel dasar ke tampilan terwujud, tanpa memerlukan tindakan pengguna.
Data baru. Tampilan terwujud menampilkan data baru. Jika perubahan pada tabel dasar dapat membatalkan tampilan terwujud, BigQuery akan membaca data langsung dari tabel dasar. Jika perubahan pada tabel dasar tidak membatalkan tampilan terwujud, BigQuery akan membaca data lainnya dari tampilan terwujud dan hanya membaca perubahan dari tabel dasar.
Diagram berikut menunjukkan logika yang digunakan untuk menggabungkan perubahan data real-time:
Penyesuaian cerdas. Jika ada bagian dari kueri terhadap tabel dasar yang dapat diselesaikan dengan membuat kueri tampilan terwujud, BigQuery akan mengalihkan kueri tersebut untuk menggunakan tampilan terwujud demi performa dan efisiensi yang lebih baik. Untuk mengetahui informasi tentang cara dan waktu penyesuaian cerdas dapat meningkatkan kualitas kueri, lihat Menggunakan tampilan terwujud.
Diagram berikut menunjukkan alur kerja pengalihan rute kueri penyesuaian cerdas:
Jenis tampilan terwujud
Ada dua jenis dasar tampilan terwujud:
- Tampilan terwujud inkremental mendukung serangkaian fitur terbatas. Untuk mempelajari lebih lanjut sintaksis SQL yang didukung untuk tampilan terwujud, lihat Membuat tampilan terwujud. Hanya tampilan terwujud inkremental yang dapat memanfaatkan smart tuning.
- Tampilan terwujud non-inkremental mendukung sebagian besar sintaksis yang tidak didukung oleh tampilan terwujud inkremental.
Saat Anda membuat tampilan terwujud, secara default BigQuery hanya mengizinkan Anda membuat tampilan berdasarkan kueri inkremental. Untuk membuat tampilan non-inkremental, Anda dapat
menentukan allow_non_incremental_definition = true dalam definisi
tampilan terwujud.
Jenis tampilan terwujud terbaik yang digunakan bergantung pada situasi Anda. Tabel berikut membandingkan fitur tampilan terwujud inkremental dan non-inkremental:
| Kategori | Inkremental | Non-incremental |
|---|---|---|
| Kueri didukung | Terbatas | Sebagian besar kueri |
| Biaya pemeliharaan | Dapat mengurangi biaya kueri yang sering digunakan. Untuk mempelajari cara memperbarui tampilan terwujud, lihat update inkremental. | Setiap pemuatan ulang menjalankan kueri lengkap. |
| Dukungan penyesuaian cerdas | Didukung untuk sebagian besar kueri tampilan. | Tidak |
| Hasil yang selalu terbaru | Didukung. Tampilan inkremental menampilkan hasil kueri baru meskipun tabel dasar telah berubah sejak refresh terakhir. | Tidak |
Tampilan terwujud yang diotorisasi
Anda dapat membuat tampilan terwujud yang diizinkan untuk membagikan sebagian data dari set data sumber ke tampilan dalam set data sekunder. Anda kemudian dapat membagikan tampilan ini kepada pengguna dan grup (pokok) tertentu. Principal dapat membuat kueri data yang Anda berikan dalam tampilan, tetapi mereka tidak dapat mengakses set data sumber secara langsung.
Tampilan yang diotorisasi dan tampilan terwujud yang diotorisasi diberi otorisasi dengan cara yang sama. Untuk mengetahui detailnya, lihat Tampilan yang diotorisasi.
Interaksi dengan fitur BigQuery lainnya
Fitur BigQuery berikut berfungsi secara transparan dengan tampilan terwujud:
Penjelasan paket kueri. Rencana kueri menunjukkan tampilan terwujud mana yang dipindai (jika ada), dan jumlah byte yang dibaca dari tampilan terwujud dan tabel dasar digabungkan.
Penyimpanan cache kueri. Hasil kueri yang ditulis ulang BigQuery menggunakan tampilan terwujud dapat di-cache dengan batasan biasa (menggunakan fungsi deterministik, tidak ada streaming ke tabel dasar, dll.).
Pembatasan biaya. Jika Anda menentukan byte maksimum yang ditagih, dan kueri membaca data yang melebihi batas tersebut, kueri akan gagal tanpa menimbulkan biaya, baik kueri menggunakan tampilan terwujud, tabel dasar, maupun keduanya.
Estimasi biaya menggunakan uji coba. Uji coba mengulangi logika penulisan ulang kueri menggunakan tampilan terwujud yang tersedia dan memberikan perkiraan biaya. Anda dapat menggunakan fitur ini sebagai cara untuk menguji apakah kueri tertentu menggunakan tampilan terwujud atau tidak.
Replikasi data lintas region. Tampilan terwujud dapat dibuat di atas tabel BigQuery yang mengaktifkan replikasi lintas region, tetapi hanya di region utama. Jika Anda menggunakan region sekunder, Anda mungkin mendapati pesan error berikut:
The dataset replica of the cross region dataset {PROJECT}:{DATASET} in region {REGION} is read-only because it's not the primary replica.
Selain fitur ini, Anda dapat membuat tampilan terwujud di atas tabel dengan fitur tertentu, seperti yang dijelaskan di bagian berikut.
Tabel dengan pengambilan data perubahan aktif
Anda dapat membuat tampilan terwujud di atas tabel dengan pengambilan data perubahan (CDC) yang aktif—pola yang digunakan untuk terus-menerus menyerap perubahan database atau tabel. Tampilan terwujud ini berfungsi seperti tampilan terwujud melalui tabel BigQuery, termasuk manfaat pemuatan ulang otomatis. Tampilan terwujud tidak dapat melakukan
kueri gabungan runtime,
jadi Anda harus mengonfigurasi tampilan terwujud dengan max_staleness yang memadai untuk
menghindari tugas gabungan runtime. Untuk mengetahui informasi selengkapnya, lihat
Batasan tampilan terwujud atas tabel dengan pengambilan data perubahan aktif.
Harga tampilan terwujud
Tampilan terwujud menimbulkan biaya dengan cara berikut:
- Membuat kueri tampilan terwujud.
- Mempertahankan tampilan terwujud, seperti saat tampilan terwujud dimuat ulang. Biaya pemuatan ulang otomatis ditagihkan ke project tempat tampilan berada. Biaya untuk pemuatan ulang manual akan ditagihkan ke project tempat tugas pemuatan ulang manual dijalankan. Untuk informasi selengkapnya tentang mengontrol biaya pemeliharaan, lihat Memuat ulang pemeliharaan tugas.
- Menyimpan tabel tampilan terwujud.
Tabel berikut menguraikan komponen harga untuk tampilan terwujud:
| Komponen | Harga sesuai permintaan | Harga berdasarkan kapasitas |
|---|---|---|
| Membuat kueri | Byte yang diproses oleh tampilan terwujud dan bagian yang diperlukan dari tabel dasar.1 | Slot digunakan selama waktu kueri. |
| Pemeliharaan | Byte diproses selama waktu pemuatan ulang. | Slot digunakan selama waktu pemuatan ulang. |
| Penyimpanan | Byte yang disimpan dalam tampilan terwujud. | Byte yang disimpan dalam tampilan terwujud. |
1Jika memungkinkan, BigQuery hanya akan membaca perubahan sejak terakhir kali tampilan dimuat ulang. Untuk informasi selengkapnya, lihat Update inkremental.
Detail biaya penyimpanan
Cara BigQuery menyimpan nilai gabungan tertentu memengaruhi
cara penghitungan ukuran penyimpanan. Untuk nilai agregat AVG, ARRAY_AGG, dan
APPROX_COUNT_DISTINCT dalam
tampilan terwujud, nilai akhir tidak disimpan secara langsung. Sebagai gantinya,
BigQuery secara internal menyimpan tampilan terwujud sebagai
sketsa menengah, yang digunakan untuk menghasilkan nilai akhir.
Sebagai contoh, pertimbangkan tampilan terwujud yang dibuat dengan perintah berikut:
CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS SELECT date, AVG(net_paid) AS avg_paid FROM project-id.my_dataset.my_base_table GROUP BY date
Meskipun kolom avg_paid muncul sebagai NUMERIC atau FLOAT64,
secara internal kolom tersebut disimpan sebagai BYTES, dengan kontennya berupa sketsa menengah
dalam format eksklusif. Untuk penghitungan ukuran data, kolom diperlakukan sebagai BYTES.
Alur kerja memulai
Penyiapan tampilan terwujud melibatkan alur kerja berikut:
- Mendesain dan memverifikasi kueri. Buat draf kueri agregasi Anda menggunakan panduan GoogleSQL.
- Membuat tampilan terwujud. Jalankan pernyataan
CREATE MATERIALIZED VIEWmenggunakan Google Cloud konsol, alat command line bq, atau BigQuery API. - Biarkan penyesuaian cerdas berjalan. BigQuery secara otomatis mengalihkan kueri terhadap tabel dasar untuk menggunakan tampilan terwujud—tidak ada kueri atau aplikasi yang perlu menulis ulang target.
Untuk mulai membuat, lihat Membuat tampilan terwujud.