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:

    Logika penggabungan keaktualan 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:

    Alur kerja pengalihan 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.

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 pra-agregasi, pemfilteran di awal, dan pra-penggabungan data yang disimpan di luar BigQuery. Tampilan terwujud atas tabel BigLake disimpan dan memiliki semua karakteristik penyimpanan yang dikelola BigQuery.

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

Batasan

Tampilan terwujud BigQuery tunduk pada batasan fungsional dan operasional yang dijelaskan di bagian berikut.

Batasan SQL dan sintaksis

  • Dialek. Hanya dialek GoogleSQL yang didukung.
  • Sintaksis SQL. Tampilan terwujud menggunakan sintaksis SQL yang dibatasi dan sekumpulan fungsi agregasi yang terbatas. Untuk mengetahui informasi selengkapnya, lihat Dukungan kueri tampilan terwujud.
  • Variabel sistem. Tampilan terwujud tidak mendukung variabel sistem—misalnya, variabel sistem @@session_id.
  • Jenis data berparameter. Tampilan terwujud tidak dapat mewarisi atau secara eksplisit menentukan jenis data berparameter, seperti STRING(n), karena jenis data berparameter hanya didukung untuk kolom tabel dasar dan variabel skrip.
  • Deskripsi kolom. Anda dapat menetapkan deskripsi untuk tampilan terwujud, tetapi tidak untuk masing-masing kolom dalam tampilan terwujud.
  • Perubahan kueri. Anda tidak dapat memperbarui kueri untuk tampilan terwujud setelah membuatnya.
  • Modifikasi data. Anda tidak dapat memperbarui atau memanipulasi data tampilan terwujud secara langsung menggunakan operasi seperti COPY, EXPORT, LOAD, WRITE, atau pernyataan bahasa pengolahan data (DML).

Batasan tabel dasar dan penyusunan bertingkat

  • Evaluasi. Anda tidak dapat menyusun bertingkat tampilan terwujud di atas tampilan terwujud lainnya.
  • Jenis sumber. Tampilan terwujud tidak dapat mengkueri tabel eksternal (kecuali tabel BigLake), tabel karakter pengganti, tampilan logis1, atau snapshot.
  • Perilaku penghapusan. 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.
  • Set data eksternal Spanner. Hanya tampilan terwujud non-inkremental yang dapat memiliki tabel dasar set data eksternal Spanner. Jika refresh terakhir tampilan terwujud non-inkremental terjadi di luar interval max_staleness, kueri akan membaca tabel set data eksternal Spanner dasar. Untuk mengetahui detail selengkapnya, lihat Membuat tampilan terwujud pada set data eksternal Spanner.
  • Menyimpan dalam cache dengan Spanner. BigQuery tidak meng-cache hasil kueri jika kueri dijalankan terhadap tampilan terwujud non-inkremental yang mereferensikan tabel set data eksternal Spanner.

Cakupan dan batasan regional

  • Batas organisasi. Tampilan terwujud harus berada dalam blok project atau organisasi yang sama dengan tabel dasarnya.
  • Setelan keusangan. Nilai opsi max_staleness harus antara 30 menit dan 3 hari, inklusif.
  • Kueri resource. Batasan pada referensi tabel dasar dan batasan lainnya mungkin berlaku. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

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

Batasan tampilan terwujud atas tabel dengan CDC aktif

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

  • Jika tampilan terwujud memiliki tabel dasar dengan pengambilan data perubahan aktif, Anda tidak dapat mereferensikan tabel tersebut dalam kueri yang juga mereferensikan tampilan terwujud.
  • Saat Anda membuat tampilan terwujud pada tabel dengan pengambilan data perubahan yang aktif, tampilan terwujud tidak dapat menjalankan tugas penggabungan runtime dari tabel CDC pokok. Tetapkan nilai max_staleness tampilan terwujud setidaknya dua kali nilai max_staleness tabel dasar. Kueri terhadap tampilan terwujud akan gagal jika versi tabel CDC pokok saat ini lebih lama daripada max_staleness tampilan terwujud.
  • Anda tidak dapat menggunakan penyesuaian cerdas untuk tampilan terwujud pada tabel dengan pengambilan data perubahan aktif.

Batasan tampilan terwujud atas tabel BigLake

Tampilan terwujud atas tabel BigLake memiliki batasan berikut:

  • Anda tidak dapat mempartisi tampilan terwujud. Tabel dasar dapat menggunakan partisi Apache Hive, tetapi Anda tidak dapat memartisi penyimpanan tampilan terwujud di 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.
  • Anda tidak dapat melakukan penggabungan antara tabel terkelola BigQuery dan tabel BigLake dalam satu definisi tampilan terwujud.
  • BigQuery BI Engine (layanan analisis dalam memori yang cepat) tidak mendukung akselerasi tampilan terwujud melalui tabel BigLake.

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:

  1. Mendesain dan memverifikasi kueri. Buat draf kueri agregasi Anda menggunakan panduan GoogleSQL.
  2. Membuat tampilan terwujud. Jalankan pernyataan CREATE MATERIALIZED VIEW menggunakan Google Cloud konsol, alat command line bq, atau BigQuery API.
  3. 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.

Langkah berikutnya