View a markdown version of this page

Menyegarkan tampilan yang terwujud - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyegarkan tampilan yang terwujud

Topik ini menjelaskan cara menyegarkan data dalam tampilan material dari tabel yang mendasarinya.

Saat Anda membuat tampilan terwujud, isinya mencerminkan keadaan relasi database yang mendasarinya (tabel atau tampilan terwujud lainnya) pada saat itu. Data dalam tampilan terwujud tetap tidak berubah, bahkan ketika aplikasi mengubah data dalam tabel yang mendasarinya. Untuk memperbarui data dalam tampilan terwujud, Anda dapat menggunakan REFRESH MATERIALIZED VIEW pernyataan kapan saja untuk menyegarkan tampilan terwujud secara manual. Saat Anda menggunakan pernyataan ini, Amazon Redshift mengidentifikasi perubahan yang telah terjadi dalam relasi dasar dan menerapkan perubahan tersebut ke tampilan yang terwujud.

Amazon Redshift memiliki dua strategi untuk menyegarkan tampilan yang terwujud:

  • Dalam banyak kasus, Amazon Redshift dapat melakukan penyegaran tambahan. Dalam penye garan tambahan, Amazon Redshift dengan cepat mengidentifikasi perubahan pada data dalam hubungan dasar sejak penyegaran terakhir dan memperbarui data dalam tampilan terwujud. Refresh inkremental didukung pada konstruksi SQL berikut yang digunakan dalam kueri saat mendefinisikan tampilan terwujud:

    • Konstruksi yang berisi klausa SELECT, FROM, [INNER] JOIN, WHERE, GROUP BY, atau HAVING.

    • Konstruksi yang berisi agregasi, seperti SUM, MIN, MAX, AVG, dan COUNT.

    • Sebagian besar fungsi SQL bawaan, khususnya yang tidak dapat diubah, mengingat ini memiliki argumen input yang sama dan selalu menghasilkan output yang sama.

    Penyegaran inkremental juga didukung untuk tampilan terwujud yang didasarkan pada tabel datashare atau tampilan terwujud.

  • Jika penyegaran tambahan tidak memungkinkan, maka Amazon Redshift melakukan penyegaran penuh. Penye garan penuh menjalankan kembali pernyataan SQL yang mendasarinya, menggantikan semua data dalam tampilan yang terwujud.

  • Amazon Redshift secara otomatis memilih metode penyegaran untuk tampilan yang terwujud tergantung pada kueri SELECT yang digunakan untuk menentukan tampilan yang terwujud.

Tampilan terwujud bersarang

Tampilan terwujud dapat didefinisikan di atas tampilan terwujud lainnya. Untuk menyegarkan tampilan terwujud seperti itu, Anda harus secara eksplisit menggunakan CASCADE kata kunci pada penyegaran tampilan terwujud paling atas. Misalnya, asumsikan struktur tampilan terwujud bersarang berikut:

CREATE TABLE t(a INT); CREATE MATERIALIZED VIEW u AS SELECT * FROM t; CREATE MATERIALIZED VIEW v AS SELECT * FROM u; CREATE MATERIALIZED VIEW w AS SELECT * FROM v; -- w -> v -> u -> t INSERT INTO t VALUES (1);

Untuk memperbaharui sepenuhnya, Anda memiliki dua pilihan:

  • (Direkomendasikan) Refresh w menggunakan REFRESH MATERIALIZED VIEW w CASCADE perintah. Perintah ini mengeksekusi refresh semua tampilan yang terwujud dalam satu transaksi.

  • Segarkan u, v, dan w sebagai perintah terpisah, dalam urutan ketergantungan (pertama u, lalu v, lalu w).

Jika CASCADE kata kunci tidak digunakan secara eksplisit, tampilan yang terwujud akan disegarkan dalam RESTRICT mode, hanya menyegarkan tampilan terwujud saat ini. Contoh berikut menunjukkan pesan informasi saat Anda menjalankan tampilan terwujud yang bergantung REFRESH MATERIALIZED VIEW pada tampilan terwujud yang sudah ketinggalan zaman.

REFRESH MATERIALIZED VIEW w; INFO: Materialized view w is already up to date. However, it depends on another materialized view that is not up to date. REFRESH MATERIALIZED VIEW w CASCADE; INFO: Materialized view w was incrementally updated successfully.
REFRESH MATERIALIZED VIEW v; INFO: Materialized view v is already up to date. However, it depends on another materialized view that is not up to date. REFRESH MATERIALIZED VIEW v CASCADE; INFO: Materialized view v was incrementally updated successfully.

Dalam contoh di atas dengan opsi penyegaran kaskade, tampilan terwujud u disegarkan terlebih dahulu, tampilan terwujud v disegarkan berikutnya, dan tampilan terwujud w tidak disegarkan.

Contoh berikut menunjukkan bagaimana Anda dapat membuat rencana penyegaran penuh untuk tampilan terwujud secara terprogram. Untuk menyegarkan tampilan terwujud v, pertama-tama segarkan tampilan terwujud u. Untuk menyegarkan tampilan terwujud w, pertama-tama segarkan tampilan terwujud u dan kemudian tampilan terwujud v.

WITH RECURSIVE recursive_deps (mv_tgt, lvl, mv_dep) AS ( SELECT trim(name) as mv_tgt, 0 as lvl, trim(ref_name) as mv_dep FROM stv_mv_deps UNION ALL SELECT R.mv_tgt, R.lvl+1 as lvl, trim(S.ref_name) as mv_dep FROM stv_mv_deps S, recursive_deps R WHERE R.mv_dep = S.name ) SELECT mv_tgt, mv_dep from recursive_deps ORDER BY mv_tgt, lvl DESC; mv_tgt | mv_dep --------+-------- v | u w | u w | v (3 rows)

Batasan

Amazon Redshift tidak mendukung penyegaran bertingkat untuk tampilan yang terwujud berdasarkan sumber selain:

  • Tabel lokal

  • Tabel bersama

  • MV Lokal

  • Streaming MV

Penyegaran bertingkat tidak meluas ke tampilan terwujud bersama.

Amazon Redshift tidak mendukung penyegaran tambahan untuk tampilan terwujud yang ditentukan dengan kueri menggunakan elemen SQL berikut:

  • OUTER JOIN (KANAN, KIRI, atau PENUH).

  • Setel operasi UNION, INTERSECT, EXCEPT, dan MINUS.

  • Fungsi agregat MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE, dan fungsi agregat bitwise.

    catatan

    Fungsi agregat COUNT, SUM, dan AVG didukung.

  • Fungsi agregat DISTINCT, seperti DISTINCT COUNT, DISTINCT SUM, dan sebagainya.

  • Fungsi Jendela.

  • Kueri yang menggunakan tabel sementara untuk pengoptimalan kueri, seperti mengoptimalkan subexpressi umum.

  • Subkueri.

  • Tabel eksternal merujuk format berikut dalam kueri yang mendefinisikan tampilan terwujud.

    • Danau Delta

    • Hudi

    Penyegaran tambahan didukung untuk tampilan terwujud yang ditentukan menggunakan format selain yang tercantum di atas. Untuk informasi selengkapnya, lihat Tampilan terwujud pada tabel danau data eksternal di Amazon Redshift Spectrum.

Menyegarkan tampilan yang terwujud secara otomatis

Amazon Redshift dapat secara otomatis menyegarkan tampilan yang terwujud dengan data terkini dari tabel dasarnya saat tampilan terwujud dibuat dengan atau diubah untuk memiliki opsi penyegaran otomatis. Amazon Redshift memperbarui tampilan yang terwujud sesegera mungkin setelah tabel dasar berubah.

Untuk menyelesaikan penyegaran tampilan terwujud yang paling penting dengan dampak minimal terhadap beban kerja aktif di cluster Anda, Amazon Redshift mempertimbangkan beberapa faktor. Faktor-faktor ini termasuk beban sistem saat ini, sumber daya yang diperlukan untuk penyegaran, sumber daya cluster yang tersedia, dan seberapa sering tampilan terwujud digunakan.

Amazon Redshift memprioritaskan beban kerja Anda daripada autorefresh dan mungkin menghentikan penyegaran otomatis untuk mempertahankan kinerja beban kerja pengguna. Pendekatan ini mungkin menunda penyegaran beberapa pandangan yang terwujud. Dalam beberapa kasus, Anda mungkin memerlukan perilaku penyegaran yang lebih deterministik untuk pandangan yang terwujud. Jika demikian, pertimbangkan untuk menggunakan penyegaran manual seperti yang dijelaskan dalam MENYEGARKAN TAMPILAN YANG TERWUJUD atau penyegaran terjadwal menggunakan operasi API penjadwal Amazon Redshift atau konsol.

Anda dapat mengatur autorefresh untuk tampilan terwujud menggunakan CREATE MATERIALIZED VIEW. Anda juga dapat menggunakan klausa AUTO REFRESH untuk menyegarkan tampilan yang terwujud secara otomatis. Untuk informasi selengkapnya tentang membuat tampilan yang terwujud, lihatBUAT TAMPILAN YANG TERWUJUD. Anda dapat mengaktifkan autorefresh untuk tampilan terwujud saat ini dengan menggunakan. MENGUBAH TAMPILAN YANG TERWUJUD

Pertimbangkan hal berikut saat Anda menyegarkan tampilan yang terwujud:

  • Anda masih dapat menyegarkan tampilan terwujud secara eksplisit menggunakan perintah REFRESH MATERIALIZED VIEW meskipun Anda belum mengaktifkan autorefresh untuk tampilan terwujud.

  • Penyegaran otomatis didukung pada tampilan terwujud yang ditentukan pada tabel berbagi data atau tabel Iceberg tetapi tidak pada kombinasi keduanya.

  • Untuk status penyegaran, Anda dapat memeriksa SVL_MV_REFRESH_STATUS, yang merekam kueri yang dimulai pengguna atau diperbarui secara otomatis.

  • Untuk menjalankan recompute REFRESH penuh dari tampilan yang terwujud, pastikan Anda memiliki izin CREATE pada skema. Untuk informasi selengkapnya, lihat HIBAH.

Mulai 27 Februari 2026, kueri Auto REFRESH untuk tampilan terwujud Amazon Redshift dijalankan sebagai kueri pengguna daripada proses otonom latar belakang. Akibatnya, kueri Auto REFRESH sekarang berjalan dengan prioritas yang sama dengan kueri pengguna lainnya.

Perubahan ini meningkatkan kesegaran tampilan yang terwujud dengan Auto REFRESH diaktifkan, membantu mereka tetap up to date dengan perubahan terbaru pada tabel dasar mereka dibandingkan dengan perilaku sebelumnya.

Catatan: Fitur perubahan perilaku MV Auto REFRESH hanya diaktifkan untuk cluster Amazon Redshift Provisioned pada Track CURRENT dari rilis patch P198 dan yang lebih baru. Saat ini dinonaktifkan di Serverless.