Pengantar tampilan terwujud
Tampilan terwujud adalah tampilan yang telah dihitung sebelumnya yang secara berkala menyimpan hasil kueri SQL. Dalam beberapa kasus penggunaan, tampilan terwujud mengurangi total waktu pemrosesan dan biaya terkait dengan mengurangi jumlah data yang akan dipindai untuk setiap kueri. Anda dapat membuat kueri tampilan terwujud seperti halnya sumber data lainnya.
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 tampilan terwujud meliputi hal-hal berikut:
- Tak perlu pemeliharaan. Tampilan terwujud diprakomputasi di latar belakang saat tabel dasar berubah. Setiap perubahan data inkremental dari tabel dasar akan otomatis ditambahkan ke tampilan terwujud, tanpa memerlukan tindakan pengguna.
- Data baru. Tampilan terwujud menampilkan data baru. Jika perubahan pada tabel dasar dapat membatalkan tampilan terwujud, data akan dibaca langsung dari tabel dasar. Jika perubahan pada tabel dasar tidak membatalkan tampilan terwujud, maka data lainnya akan dibaca dari tampilan terwujud dan hanya perubahan yang dibaca dari tabel dasar.
- 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.
Tampilan terwujud inkremental dan non-inkremental
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 penyesuaian cerdas.
- Fungsi non-inkremental mendukung sebagian besar sintaksis yang tidak didukung 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. Kemudian, Anda dapat membagikan tampilan ini kepada pengguna dan grup (akun utama) tertentu yang dapat melihat data yang Anda bagikan. 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 diotorisasi 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: Paket kueri mencerminkan tampilan terwujud mana yang dipindai (jika ada), dan menunjukkan jumlah byte yang dibaca dari tampilan terwujud dan tabel dasar digabungkan.
Cache kueri: Hasil kueri yang ditulis ulang BigQuery menggunakan tampilan terwujud dapat di-cache dengan batasan biasa (menggunakan batasan fungsi deterministik, tidak ada streaming ke tabel dasar, dll.).
Pembatasan biaya: Jika Anda telah menetapkan nilai untuk byte maksimum yang ditagih, dan kueri akan membaca jumlah byte yang melebihi batas, 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 region sekunder digunakan, 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.
Harga tampilan terwujud
Biaya dikaitkan dengan aspek tampilan terwujud 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.
| 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
Untuk nilai agregat AVG, ARRAY_AGG, dan APPROX_COUNT_DISTINCT dalam
tampilan terwujud, nilai akhir tidak secara langsung disimpan. 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 dirender sebagai NUMERIC atau FLOAT64 kepada pengguna,
secara internal kolom tersebut disimpan sebagai BYTES, dengan kontennya berupa sketsa menengah
dalam format eksklusif. Untuk penghitungan ukuran data, kolom diperlakukan sebagai BYTES.