Memecahkan masalah tampilan terwujud
Dokumen ini membantu Anda memecahkan masalah umum terkait tampilan terwujud di BigQuery, termasuk error saat membuat tampilan terwujud, kegagalan refresh, dan performa kueri yang tidak terduga.
Alur kerja diagnostik
Saat Anda menyelidiki masalah pada tampilan terwujud, ikuti langkah-langkah diagnostik berikut untuk mengidentifikasi penyebab utama:
Verifikasi jenis tabel dan metadata. Pastikan tabel target adalah tampilan terwujud dan periksa opsi konfigurasinya:
SELECT table_name, table_type FROM `PROJECT_ID.DATASET`.INFORMATION_SCHEMA.TABLES WHERE table_name = 'MATERIALIZED_VIEW';
Ganti kode berikut:
PROJECT_ID: project yang berisi tampilan terwujud.DATASET: set data yang berisi tampilan terwujud.MATERIALIZED_VIEW: nama tampilan terwujud.
Untuk memeriksa opsi konfigurasi seperti
enable_refresh,refresh_interval_minutes, danmax_staleness, buat kueri tampilanINFORMATION_SCHEMA.TABLE_OPTIONS:SELECT table_name, option_name, option_value FROM `PROJECT_ID.DATASET`.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE table_name = 'MATERIALIZED_VIEW';
Periksa status pemuatan ulang terakhir. Kueri tampilan
INFORMATION_SCHEMA.MATERIALIZED_VIEWSuntuk memeriksa kapan tampilan terakhir dimuat ulang dan apakah pemuatan ulang otomatis terakhir mengalami error:SELECT table_name, last_refresh_time, refresh_watermark, last_refresh_status FROM `PROJECT_ID.DATASET`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE table_name = 'MATERIALIZED_VIEW';
Jika
last_refresh_statusbukanNULL, tugas pemuatan ulang otomatis terakhir akan gagal. Jikalast_refresh_timeadalahNULLatau lama, tampilan terwujud tidak pernah berhasil menyelesaikan pemuatan ulang atau gagal dimuat ulang.Periksa histori dan error tugas refresh. Buat kueri tampilan
INFORMATION_SCHEMA.JOBS_BY_PROJECTuntuk memeriksa tugas pemuatan ulang otomatis terbaru:SELECT job_id, creation_time, end_time, state, error_result.reason AS error_reason, error_result.message AS error_message, total_slot_ms, total_bytes_processed FROM `region-REGION`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE job_id LIKE '%materialized_view_refresh_%' AND creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) ORDER BY creation_time DESC LIMIT 50;
Ganti
REGIONdengan region set data Anda—misalnya,usataueurope-west3.Periksa eksekusi kueri dan statistik penyesuaian cerdas. Jika kueri berjalan lebih lambat dari yang diharapkan, periksa kolom
materialized_view_statisticsdi statistik tugas untuk memverifikasi apakah pengoptimal kueri menggunakan tampilan terwujud:SELECT job_id, total_slot_ms, total_bytes_billed, materialized_view_statistics FROM `region-REGION`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE job_id = 'JOB_ID';
Ganti
JOB_IDdengan ID tugas kueri.
Memecahkan masalah error pembuatan tampilan terwujud
Bagian ini menjelaskan error yang mungkin Anda alami saat membuat tampilan yang di-materialisasi, beserta penyebab dan langkah-langkah penyelesaiannya.
Operator atau sintaksis SQL yang tidak didukung
Pesan error:
Unsupported operator in materialized view: KEYWORD
atau
Materialized view queries do not support FEATURE
Penyebab:
Tampilan terwujud inkremental mendukung subset terbatas dari sintaksis SQL untuk mengaktifkan pemeliharaan inkremental dan smart tuning. Anda mungkin mengalami error ini jika kueri yang menentukan tampilan terwujud Anda menyertakan fitur yang tidak didukung, seperti berikut:
- Fungsi non-deterministik (misalnya,
CURRENT_TIMESTAMP(),RAND(), atauSESSION_USER()) - Fungsi jendela analisis dengan
OVER() - Klausul
ORDER BYatauLIMIT DISTINCTtanpa agregasi- Subkueri dalam klausa
WHEREatauSELECT - Fungsi yang ditentukan pengguna (UDF)
Penyelesaian:
- Tinjau daftar fitur SQL yang tidak didukung.
Jika kueri Anda memerlukan kemampuan SQL yang lebih luas, pertimbangkan untuk membuat tampilan terwujud non-inkremental dengan menetapkan
allow_non_incremental_definition = truedan menentukan intervalmax_staleness:CREATE MATERIALIZED VIEW `PROJECT_ID.DATASET.MATERIALIZED_VIEW` OPTIONS ( enable_refresh = true, refresh_interval_minutes = 60, max_staleness = INTERVAL "4" HOUR, allow_non_incremental_definition = true ) AS SELECT ...
Ganti kode berikut:
PROJECT_ID: project yang berisi tampilan terwujud.DATASET: set data yang berisi tampilan terwujud.MATERIALIZED_VIEW: nama tampilan terwujud.
Tampilan terwujud non-inkremental mendukung serangkaian kueri SQL yang lebih luas, tetapi tampilan ini selalu melakukan refresh penuh dan tidak mendukung penyesuaian cerdas.
Jika sintaksis SQL yang diperlukan tidak didukung dalam tampilan terwujud non-inkremental, gunakan tampilan logis atau kueri terjadwal untuk menulis hasil ke tabel tujuan.
max_staleness tidak valid dengan tabel dasar CDC
Pesan error:
Materialized view PROJECT_ID:DATASET.MATERIALIZED_VIEW has a CDC table as base table PROJECT_ID:DATASET.TABLE but does not have valid max_staleness. Materialized views over CDC tables must have max_staleness set at least 2 times the base table's max_staleness: 0-0 0 0:0:0
Penyebab:
Saat Anda membuat tampilan terwujud pada tabel dasar pengambilan data perubahan (CDC), opsi max_staleness tampilan terwujud harus dikonfigurasi setidaknya dua kali nilai max_staleness tabel dasar.
Penyelesaian:
- Periksa nilai
max_stalenesstabel CDC dasar dengan membuat kueri tampilanINFORMATION_SCHEMA.TABLE_OPTIONS. - Tetapkan opsi
max_stalenesstampilan terwujud ke nilai yang setidaknya dua kali lipat nilaimax_stalenesstabel dasar. Misalnya, jika tabel CDC dasar memiliki nilaimax_staleness15 menit, tetapkan nilaimax_stalenesstabel virtual ke minimal 30 menit. Untuk mengetahui informasi selengkapnya, lihat "PernyataanALTER MATERIALIZED VIEW SET OPTIONS" di Pernyataan bahasa definisi data (DDL) di GoogleSQL.
Tampilan terwujud yang dipartisi melalui tabel dasar yang tidak dipartisi
Pesan error:
Partitioned incremental materialized view must be created on top of partitioned managed storage base table.
Penyebab:
Untuk membuat tampilan terwujud inkremental yang dipartisi, tabel dasar yang mendasarinya juga harus dipartisi, dan kolom partisi tampilan terwujud harus sejajar dengan kolom partisi tabel dasar.
Penyelesaian:
- Jika Anda ingin tampilan terwujud dipartisi, pastikan tabel dasar dipartisi dan konfigurasi tampilan terwujud untuk menggunakan kolom partisi yang sama. Untuk mengetahui informasi selengkapnya, lihat Perataan partisi.
- Jika tabel dasar tidak dipartisi, buat tampilan terwujud tanpa klausa
PARTITION BY. - Jika Anda memerlukan tampilan yang dipartisi melalui tabel yang tidak dipartisi, buat
tampilan terwujud non-inkremental
dengan
allow_non_incremental_definition = truedanmax_staleness. Tampilan terwujud non-inkremental tidak memerlukan penyelarasan partisi dengan tabel dasar.
Replika set data lintas region bersifat hanya baca
Pesan error:
The dataset replica of the cross region dataset 'PROJECT_ID:DATASET' in region 'REGION' is read-only because it's not the primary replica.
Penyebab:
Saat Anda menggunakan replikasi set data lintas region, replika sekunder bersifat hanya baca. Anda tidak dapat membuat tampilan terwujud di region replika sekunder.
Penyelesaian:
Buat tampilan terwujud di region utama set data yang direplikasi. Jika Anda memerlukan tampilan terwujud di region replika, buat replika tampilan terwujud di region tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengelola replika tampilan terwujud.
Melebihi batas tabel dasar
Pesan error:
Materialized views support at most 10 source tables, query has NUMBER_OF_SOURCE_TABLES
Penyebab:
Tampilan terwujud BigQuery mendukung gabungan di paling banyak 10 tabel dasar.
Penyelesaian:
Refaktorkan kueri yang menentukan tampilan terwujud untuk mereferensikan 10 tabel dasar atau kurang. Jika arsitektur Anda memerlukan penggabungan lebih dari 10 tabel, pertimbangkan untuk menggabungkan tabel statis atau dimensi ke dalam tabel perantara terlebih dahulu, atau gunakan kueri terjadwal atau pipeline Dataform.
Resource terlampaui selama pembuatan tampilan terwujud
Pesan error:
Resources exceeded during query execution: The data accessed in this query is too large; consider accessing fewer tables, or for partitioned tables, fewer partitions.
Penyebab:
Saat Anda membuat tampilan terwujud, BigQuery akan melakukan refresh penuh awal untuk mengisi tampilan. Jika tabel dasar yang mendasarinya berisi sejumlah besar data yang tidak dipartisi, atau jika tampilan menghasilkan agregasi perantara berkardinalitas tinggi, refresh awal dapat melampaui batas memori slot atau kueri.
Penyelesaian:
- Tambahkan kondisi filter dalam klausa
WHEREdari tampilan terwujud untuk membatasi cakupan data yang dipindai ke subkumpulan yang diperlukan. - Sejajarkan partisi tampilan terwujud dengan partisi tabel dasar untuk memangkas partisi selama pemuatan ulang.
- Jika menggunakan komputasi on-demand, pertimbangkan untuk menggunakan edisi BigQuery dengan reservasi slot khusus untuk menyediakan kapasitas komputasi yang memadai untuk refresh besar.
Masalah pada tabel BigLake dan penyimpanan metadata ke dalam cache
Gejala:
Tampilan terwujud di atas tabel eksternal BigLake gagal dibuat atau gagal dimuat ulang.
Penyebab:
Tampilan terwujud di atas tabel eksternal memiliki persyaratan arsitektur tertentu:
- Tampilan terwujud hanya didukung di tabel BigLake dengan caching metadata diaktifkan.
- Nilai
max_stalenesstampilan terwujud harus lebih besar daripada nilaimax_stalenesstabel dasar BigLake pokok. - Tampilan terwujud dapat mereferensikan tabel eksternal BigLake atau tabel penyimpanan terkelola BigQuery, tetapi tidak dapat menggabungkan jenis dalam satu tampilan terwujud.
Penyelesaian:
- Pastikan caching metadata diaktifkan di semua tabel dasar BigLake yang mendasarinya.
- Konfigurasi
max_stalenesspada tampilan terwujud ke nilai yang lebih tinggi daripada interval cache metadata tabel dasar. Misalnya, jika interval cache tabel dasar adalah 30 menit, tetapkanmax_stalenesstampilan terwujud ke setidaknya 45 menit untuk memberikan buffer bagi eksekusi refresh. - Jangan mencampur tabel eksternal dan tabel terkelola dalam definisi tampilan terwujud.
Memecahkan masalah pembaruan
Bagian ini menjelaskan penyebab umum kegagalan pemuatan ulang dan keterlambatan performa untuk tampilan terwujud.
Perubahan skema tabel dasar (invalidQuery)
Gejala:
Kolom last_refresh_status di
INFORMATION_SCHEMA.MATERIALIZED_VIEWS menampilkan error invalidQuery, dan
refresh otomatis berhenti berjalan.
Penyebab:
Jika skema tabel dasar berubah—seperti menghapus kolom yang direferensikan oleh tampilan terwujud, mengganti nama kolom, atau mengubah jenis data kolom—kueri yang mendasari yang menentukan tampilan terwujud menjadi tidak valid.
Penyelesaian:
BigQuery tidak mendukung pengubahan skema kolom tampilan terwujud yang ada. Untuk mengatasi pembatalan skema, lakukan tindakan berikut:
Buat ulang tampilan terwujud menggunakan pernyataan
CREATE OR REPLACE MATERIALIZED VIEW:CREATE OR REPLACE MATERIALIZED VIEW `PROJECT_ID.DATASET.MATERIALIZED_VIEW` OPTIONS ( enable_refresh = true, refresh_interval_minutes = 30 ) AS SELECT ...
Ganti kode berikut:
PROJECT_ID: project yang berisi tampilan terwujud.DATASET: set data yang berisi tampilan terwujud.MATERIALIZED_VIEW: nama tampilan terwujud.
Pastikan definisi baru cocok dengan skema tabel dasar yang diperbarui.
Masa berlaku partisi tabel dasar, pemotongan, atau perubahan DML
Gejala:
Pemuatan ulang tampilan terwujud gagal, atau kueri terhadap tampilan terwujud melakukan penggantian ke tabel dasar dan berjalan lambat.
Penyebab:
Operasi tabel dasar berikut membatalkan data tampilan terwujud yang ada:
- Memangkas tabel dasar atau partisi tabel dasar (
TRUNCATE TABLE) - Masa berlaku partisi pada tabel dasar
- Pernyataan bahasa pengolahan data (DML)
DELETEatauMERGEpada tabel yang tidak dipartisi atau tabel dasar yang digabungkan sekunder
Saat operasi ini terjadi, partisi yang terpengaruh (atau seluruh tampilan terwujud untuk tabel yang tidak dipartisi) ditandai sebagai tidak valid.
Penyelesaian:
Picu pemuatan ulang secara manual untuk memulihkan tampilan terwujud ke status yang valid:
CALL BQ.REFRESH_MATERIALIZED_VIEW('PROJECT_ID.DATASET.MATERIALIZED_VIEW');
Jika Anda menjalankan pipeline ETL batch yang menjalankan pernyataan DML atau memangkas data secara rutin, nonaktifkan refresh otomatis dan panggil
BQ.REFRESH_MATERIALIZED_VIEWdi akhir pipeline ETL Anda. Untuk mengetahui informasi selengkapnya, lihat Pemuatan ulang otomatis.
Tugas pembaruan yang kehabisan waktu
Gejala:
Tugas refresh gagal dengan error waktu tunggu habis setelah berjalan selama beberapa jam (hingga 12 jam).
Penyebab:
Seiring bertambahnya ukuran tabel dasar, volume data yang diproses selama pemuatan ulang akan meningkat. Jika kueri tampilan terwujud tidak memfilter baris, atau jika tampilan tidak dapat melakukan pembaruan inkremental karena pembatalan penuh, setiap pembaruan memerlukan pemindaian penuh tabel dasar, yang dapat menghabiskan waktu slot.
Penyelesaian:
- Tambahkan kriteria filter dalam klausa
WHEREtampilan terwujud untuk membatasi data historis yang tidak diperlukan. - Pastikan tampilan terwujud disejajarkan dengan partisi tabel dasar sehingga hanya partisi yang diubah yang dimuat ulang secara inkremental.
- Alokasikan pemesanan slot dengan kapasitas yang cukup untuk mengakomodasi workload refresh.
Pesan pemuatan ulang duplikat
Pesan:
Materialized view is already being refreshed.
Penyebab:
Jika tabel dasar dalam tampilan terwujud JOIN diperbarui secara bersamaan, atau jika pemuatan ulang manual dipicu saat pemuatan ulang otomatis sedang berlangsung, BigQuery akan mendeteksi pemuatan ulang serentak dan membatalkan tugas duplikat.
Penyelesaian:
Perilaku ini normal dan sementara. Tugas duplikat dihentikan untuk mencegah pemrosesan yang berlebihan, dan Anda tidak ditagih untuk upaya pemuatan ulang duplikat. Anda tidak perlu melakukan tindakan apa pun.
Penundaan pembaruan data streaming (penyimpanan yang dioptimalkan untuk tulis)
Gejala:
Kueri terhadap tabel dasar dengan data streaming kecepatan tinggi tidak muncul di tampilan terwujud dengan segera, atau kueri kembali ke tabel dasar.
Penyebab:
Data yang di-streaming ke BigQuery menggunakan Storage Write API awalnya disimpan di penyimpanan yang dioptimalkan untuk penulisan (buffer streaming). Tugas pemuatan ulang tampilan terwujud memproses data setelah data di-commit dan dikonversi dari buffer streaming ke penyimpanan berbasis kolom yang dioptimalkan.
Untuk mempertahankan konsistensi real-time, kueri yang membaca dari tampilan terwujud membaca data yang di-commit dari tampilan terwujud dan secara bersamaan membaca delta langsung dari buffer streaming tabel dasar.
Penyelesaian:
- Jika konsistensi baca real-time pada data streaming diperlukan, perencana kueri akan otomatis menggabungkan data tampilan terwujud dengan delta tabel dasar.
- Jika konsistensi real-time tidak diperlukan dan Anda ingin menghindari pemindaian buffer streaming pada setiap kueri, tetapkan
max_stalenesspada tampilan terwujud (misalnya,max_staleness = INTERVAL "15" MINUTE). Kueri kemudian dapat dibaca langsung dari tampilan terwujud yang telah dihitung sebelumnya tanpa pemrosesan delta.
Memecahkan masalah performa kueri dan penyesuaian cerdas
Bagian ini menjelaskan cara memecahkan masalah kueri yang berjalan lebih lambat dari yang diharapkan atau tidak memanfaatkan penyesuaian cerdas.
Memverifikasi penggunaan penyesuaian cerdas
Saat Anda membuat kueri tabel dasar, BigQuery menggunakan penyesuaian cerdas untuk otomatis menulis ulang kueri agar menggunakan tampilan terwujud yang tersedia jika hal tersebut meningkatkan performa dan mengurangi biaya.
Untuk memeriksa apakah kueri menggunakan tampilan terwujud, periksa kolom
materialized_view_statistics di detail tugas kueri atau buat kueri
tabel virtual INFORMATION_SCHEMA.JOBS_BY_PROJECT:
SELECT job_id, total_slot_ms, total_bytes_billed, mv.table_reference.dataset_id, mv.table_reference.table_id, mv.chosen, mv.rejected_reason FROM `region-REGION`.INFORMATION_SCHEMA.JOBS_BY_PROJECT, UNNEST(materialized_view_statistics.materialized_view) AS mv WHERE job_id = 'JOB_ID';
Ganti kode berikut:
REGION: region set data Anda (misalnya,usataueurope-west3).JOB_ID: ID tugas kueri.
Dalam objek materialized_view_statistics, setiap entri dalam array
materialized_view berisi kolom berikut:
table_reference: mengidentifikasi kandidat tampilan terwujud.chosen: boolean yang menunjukkan apakah pengoptimal kueri memilih tampilan terwujud untuk eksekusi (true) atau menolaknya (false).estimated_bytes_saved: estimasi byte yang tidak dipindai oleh kueri dengan menggunakan tampilan terwujud.rejected_reason: jikachosenadalahfalse, menentukan alasan mengapa pengoptimal menolak tampilan terwujud.
Untuk mengetahui informasi selengkapnya tentang alasan penolakan dan enum rejected_reason, lihat
Memahami alasan penolakan tampilan terwujud.
Alasan umum penolakan tampilan terwujud
Jika chosen adalah false, periksa nilai rejected_reason untuk mendiagnosis penyebabnya:
Nilai rejected_reason |
Deskripsi | Resolusi |
|---|---|---|
NO_DATA |
Tampilan terwujud tidak memiliki data yang di-cache karena belum dimuat ulang, atau pemuatan ulang awal gagal. | Picu pemuatan ulang manual menggunakan CALL BQ.REFRESH_MATERIALIZED_VIEW(...). |
COST |
Pengoptimal kueri memperkirakan bahwa membuat kueri tabel dasar (atau membaca dari cache kueri) lebih murah daripada membuat kueri tampilan terwujud. | Tinjau filter dan partisi kueri. Jika kueri tabel dasar hanya memindai partisi kecil, sementara tampilan terwujud mencakup beberapa partisi, membuat kueri tabel dasar secara langsung mungkin lebih efisien. |
BASE_TABLE_DATA_CHANGE |
Perubahan data dalam satu atau beberapa tabel dasar membatalkan validasi data yang di-cache di luar periode keusangan yang dikonfigurasi. | Lakukan refresh manual atau konfigurasi max_staleness untuk mengizinkan kueri membaca data usang tanpa melakukan penggantian ke tabel dasar. |
BASE_TABLE_TRUNCATED |
Tabel dasar dipangkas, sehingga membatalkan semua data tampilan terwujud. | Muat ulang tampilan terwujud setelah data diisi ulang. |
BASE_TABLE_EXPIRED_PARTITION |
Masa berlaku partisi di tabel dasar telah berakhir. | Pastikan setelan masa berlaku partisi cocok antara tabel dasar dan tampilan terwujud, lalu muat ulang tampilan. |
BASE_TABLE_PARTITION_EXPIRATION_CHANGE |
Durasi masa berlaku partisi tabel dasar telah diubah. | Muat ulang tampilan terwujud untuk menyelaraskan kembali metadata masa berlaku partisi. |
BASE_TABLE_INCOMPATIBLE_METADATA_CHANGE |
Perubahan metadata terjadi pada tabel dasar (seperti modifikasi skema). | Buat ulang tampilan terwujud menggunakan CREATE OR REPLACE MATERIALIZED VIEW. |
BASE_TABLE_TOO_STALE |
Metadata yang di-cache dari tabel dasar (misalnya, pada tabel eksternal BigLake) lebih lama dari batas yang diizinkan. | Muat ulang cache metadata tabel eksternal. |
BASE_TABLE_FINE_GRAINED_SECURITY_POLICY |
Pengguna kueri tidak memiliki akses berdasarkan kebijakan kontrol akses tingkat baris atau tingkat kolom pada tabel dasar. | Verifikasi izin IAM dan pemberian kebijakan data. |
TIME_ZONE |
Tampilan dimuat ulang menggunakan zona waktu yang berbeda dengan zona waktu kueri saat ini. | Menyelaraskan setelan zona waktu antara lingkungan dan tugas refresh Anda. |
Tampilan terwujud tidak dipertimbangkan (struktur kueri tidak cocok)
Jika tampilan terwujud tidak tercantum dalam materialized_view_statistics, pengoptimal kueri menentukan selama penguraian sintaksis bahwa pola kueri tidak cocok dengan definisi tampilan terwujud.
Penyebab umumnya meliputi:
- Ketidakcocokan agregasi atau filter. Kueri menggunakan fungsi agregasi, kolom pengelompokan, atau predikat filter yang tidak dapat dihitung dari agregasi yang telah dihitung sebelumnya dalam tampilan terwujud.
- Resolusi: Selaraskan fungsi agregat dan pengelompokan antara kueri Anda dan definisi tampilan terwujud.
- Tampilan terwujud non-inkremental. Tampilan yang dibuat dengan
allow_non_incremental_definition = truetidak mendukung penyesuaian cerdas.- Penyelesaian: Buat kueri tampilan terwujud non-inkremental secara langsung dengan
menentukan nama tampilan dalam klausa
FROM.
- Penyelesaian: Buat kueri tampilan terwujud non-inkremental secara langsung dengan
menentukan nama tampilan dalam klausa
- Kueri langsung atas tampilan yang tidak terbaru. Jika Anda mengkueri tampilan terwujud secara langsung
yang memiliki setelan
max_staleness, kueri akan menampilkan hasil pra-komputasi yang tidak terbaru hinggamax_stalenesstanpa pemrosesan delta dari tabel dasar.
Error sketsa HyperLogLog yang tidak kompatibel
Pesan error:
Invalid or incompatible sketch in HLL_COUNT.MERGE_PARTIAL
Penyebab:
Saat Anda menggunakan fungsi agregasi perkiraan seperti HLL_COUNT.INIT dan HLL_COUNT.MERGE_PARTIAL, BigQuery akan menggunakan sketsa HyperLogLog.
Jika parameter presisi yang ditentukan dalam kueri tidak cocok dengan parameter presisi yang ditentukan dalam tampilan terwujud, operasi penggabungan sketsa akan gagal.
Penyelesaian:
Pastikan parameter presisi (misalnya, HLL_COUNT.INIT(x, 12)) sama di definisi tampilan terwujud dan kueri yang mereferensikan atau menulis ulang ke tampilan.
Memecahkan masalah perubahan tampilan dan modifikasi skema
Bagian ini menjelaskan masalah yang mungkin Anda alami saat mengubah skema atau opsi tampilan terwujud.
Mengedit skema tampilan terwujud
Masalah:
Mencoba menambahkan atau mengubah kolom dalam tampilan terwujud menggunakan ALTER TABLE
atau konsol Google Cloud akan menghasilkan error, atau opsi Edit Skema
tidak tersedia.
Penyebab:
BigQuery tidak mendukung modifikasi skema kolom tampilan terwujud secara langsung.
Penyelesaian:
Anda dapat mengubah opsi tampilan terwujud (seperti
enable_refresh,refresh_interval_minutes, danmax_staleness) menggunakan pernyataanALTER MATERIALIZED VIEW SET OPTIONS:ALTER MATERIALIZED VIEW `PROJECT_ID.DATASET.MATERIALIZED_VIEW` SET OPTIONS ( enable_refresh = true, refresh_interval_minutes = 20 );
Ganti kode berikut:
PROJECT_ID: project yang berisi tampilan terwujud.DATASET: set data yang berisi tampilan terwujud.MATERIALIZED_VIEW: nama tampilan terwujud.
Untuk mengubah definisi kueri SQL, menambahkan kolom, atau mengubah jenis data kolom, buat ulang tampilan menggunakan
CREATE OR REPLACE MATERIALIZED VIEW:CREATE OR REPLACE MATERIALIZED VIEW `PROJECT_ID.DATASET.MATERIALIZED_VIEW` AS SELECT ...
Langkah berikutnya
- Pelajari cara membuat tampilan terwujud.
- Pelajari cara menggunakan tampilan terwujud dan penyesuaian cerdas.
- Pelajari cara mengelola dan memperbarui tampilan yang diwujudkan.
- Pelajari cara memantau pemuatan ulang dan penggunaan tampilan terwujud.
- Pelajari cara memecahkan masalah performa kueri umum.