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 resource data lainnya.

Kasus penggunaan berikut menyoroti nilai tampilan terwujud:

  • Memproses data terlebih dahulu. Meningkatkan performa kueri dengan menyiapkan agregat, filter, gabungan, dan cluster.
  • Percepatan dasbor. Mempercepat alat BI seperti Looker yang sering membuat kueri metrik agregat 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 mencakup 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 kueri, lihat Menggunakan tampilan terwujud.

Tampilan terwujud inkremental dan non-inkremental

Ada dua jenis dasar tampilan terwujud:

  • Tampilan terwujud inkremental mendukung sekumpulan 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 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 untuk digunakan bergantung pada situasi Anda. Tabel berikut membandingkan fitur tampilan terwujud inkremental dan non-inkremental:

Kategori Inkremental Non-inkremental
Kueri didukung Terbatas Sebagian besar kueri
Biaya pemeliharaan Dapat mengurangi biaya kueri yang sering digunakan. Untuk mempelajari cara tampilan terwujud diupdate, lihat update inkremental. Setiap pemuatan ulang menjalankan kueri penuh.
Dukungan penyesuaian cerdas Didukung untuk sebagian besar kueri tampilan. Tidak
Hasil selalu baru Didukung. Tampilan inkremental menampilkan hasil kueri baru meskipun tabel dasar telah berubah sejak pemuatan ulang terakhir. Tidak

Tampilan terwujud yang diotorisasi

Anda dapat membuat tampilan terwujud yang diotorisasi untuk membagikan subset data dari set data sumber ke tampilan di set data sekunder. Kemudian, Anda dapat membagikan tampilan ini kepada pengguna dan grup (principal) 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 menemukan 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.

Tabel dengan pengambilan data perubahan aktif

Anda dapat membuat tampilan terwujud di atas tabel dengan pengambilan data perubahan (CDC) aktif. Tampilan terwujud ini berfungsi seperti tampilan terwujud di atas tabel BigQuery, termasuk manfaat pemuatan ulang otomatis. Tampilan terwujud tidak dapat menjalankan kueri gabungan runtime, sehingga tampilan terwujud harus dikonfigurasi dengan max_staleness yang memadai untuk menghindari tugas gabungan runtime. Untuk mengetahui informasi selengkapnya, lihat Batasan tampilan terwujud di atas tabel dengan pengambilan data perubahan aktif.

Tabel yang mendukung cache metadata BigLake

Tampilan terwujud dari tabel yang mendukung cache metadata BigLake dapat merujuk ke data terstruktur yang disimpan di Cloud Storage dan Amazon Simple Storage Service (Amazon S3). Tampilan terwujud ini berfungsi seperti tampilan terwujud melalui tabel penyimpanan yang dikelola BigQuery, termasuk manfaat muat ulang otomatis dan penyesuaian cerdas. Manfaat lainnya termasuk praagregasi, prapemfilteran, dan prapenggabungan data yang disimpan di luar BigQuery. Tampilan terwujud atas tabel BigLake disimpan dan memiliki semua karakteristik dari penyimpanan yang dikelola BigQuery.

Saat Anda membuat tampilan terwujud di atas tabel BigLake Amazon S3, data dalam tampilan terwujud tidak tersedia untuk gabungan dengan data BigQuery. Agar data Amazon S3 dalam tampilan terwujud tersedia untuk gabungan, buat replika tampilan terwujud. Anda hanya dapat membuat replika tampilan terwujud di atas tampilan terwujud yang diotorisasi.

Batasan

  • Batas pada referensi tabel dasar dan batasan lainnya mungkin berlaku. Untuk mengetahui informasi selengkapnya tentang batas tampilan terwujud, lihat Kuota dan batas.
  • Data tampilan terwujud tidak dapat diupdate atau dimanipulasi secara langsung menggunakan operasi seperti COPY, EXPORT, LOAD, WRITE, atau pernyataan bahasa pengolahan data (DML).
  • SQL tampilan terwujud tidak dapat diupdate setelah tampilan terwujud dibuat.
  • Tampilan terwujud harus berada dalam organisasi yang sama dengan tabel dasarnya, atau dalam project yang sama jika project bukan milik organisasi.
  • Tampilan terwujud menggunakan sintaksis SQL yang dibatasi dan sekumpulan fungsi agregasi yang terbatas. Untuk informasi selengkapnya, lihat Tampilan terwujud yang didukung.
  • Tampilan terwujud tidak dapat disusun bertingkat pada tampilan terwujud lainnya.
  • Tampilan terwujud tidak dapat mengkueri tabel eksternal atau karakter pengganti, tampilan logis1, atau snapshot.
  • Variabel sistem, termasuk variabel sistem @@session_id, tidak didukung dengan tampilan terwujud.
  • Nilai opsi max_staleness harus antara 30 menit dan 3 hari, inklusif.
  • Hanya dialek GoogleSQL yang didukung untuk tampilan terwujud.
  • Anda dapat menetapkan deskripsi untuk tampilan terwujud, tetapi tidak dapat menetapkan deskripsi untuk masing-masing kolom dalam tampilan terwujud.
  • Jika Anda menghapus tabel dasar tanpa terlebih dahulu menghapus tampilan terwujud, kueri dan muat ulang tampilan terwujud akan gagal. Jika membuat ulang tabel dasar, Anda juga harus membuat ulang tampilan terwujud.
  • Hanya tampilan terwujud non-inkremental yang dapat memiliki Spanner tabel dasar set data eksternal. Jika pemuatan ulang terakhir tampilan terwujud non-inkremental terjadi di luar interval max_staleness, kueri akan membaca tabel set data eksternal Spanner dasar. Untuk mempelajari lebih lanjut tabel set data eksternal Spanner, lihat Membuat tampilan terwujud di atas set data eksternal Spanner.
  • Hasil kueri tidak di-cache jika kueri dijalankan terhadap tampilan terwujud non-inkremental yang mereferensikan tabel set data eksternal Spanner.
  • Tampilan terwujud tidak dapat mewarisi atau menentukan secara eksplisit jenis data berparameter, seperti STRING(n), karena jenis data berparameter hanya didukung untuk kolom tabel dasar dan variabel skrip.

1Dukungan referensi tampilan logis dalam versi pratinjau. Untuk mengetahui informasi selengkapnya, lihat Mereferensikan tampilan logis.

Batasan tampilan terwujud di atas tabel dengan CDC aktif

Tampilan terwujud dengan tabel dasar pengambilan data perubahan aktif memiliki batasan berikut:

  • Jika tampilan terwujud memiliki tabel dasar dengan pengambilan data perubahan aktif , tabel tersebut tidak dapat direferensikan dalam kueri yang juga mereferensikan tampilan terwujud.
  • Saat Anda membuat tampilan terwujud di atas tabel dengan pengambilan data perubahan aktif, tampilan terwujud tidak dapat menjalankan tugas gabungan runtime dari tabel CDC yang mendasarinya. Tetapkan nilai max_staleness tampilan terwujud setidaknya dua kali nilai max_stalenesstabel dasar. Kueri terhadap tampilan terwujud akan gagal jika versi saat ini dari tabel CDC yang mendasarinya lebih lama dari max_staleness tampilan terwujud.
  • Penyesuaian cerdas tidak didukung untuk tampilan terwujud di atas tabel dengan pengambilan data perubahan aktif.

Batasan tampilan terwujud di atas tabel BigLake

  • Partisi tampilan terwujud tidak didukung. Tabel dasar dapat menggunakan partisi hive, tetapi penyimpanan tampilan terwujud tidak dapat dipartisi dalam tabel BigLake. Ini berarti bahwa setiap penghapusan dalam tabel dasar menyebabkan pemuatan ulang penuh dari tampilan terwujud. Untuk detail selengkapnya, lihat Update inkremental.
  • Nilai opsi --max_staleness tampilan terwujud harus lebih besar dari nilai tabel dasar BigLake.
  • Gabungan antara tabel terkelola BigQuery dan tabel BigLake tidak didukung dalam satu definisi tampilan terwujud.
  • BigQuery BI Engine tidak mendukung percepatan tampilan terwujud di atas tabel BigLake.

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.

Langkah berikutnya