Menyegarkan tampilan yang terwujud - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog.

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 hubungan basis data 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 terjadi dalam relasi dasar dan menerapkan perubahan tersebut ke tampilan terwujud.

Amazon Redshift memiliki dua strategi untuk menyegarkan tampilan yang terwujud:

  • Dalam banyak kasus, Amazon Redshift dapat melakukan penyegaran tambahan. Dalam penyegaran tambahan, Amazon Redshift dengan cepat mengidentifikasi perubahan pada data dalam relasi dasar sejak penyegaran terakhir dan memperbarui data dalam tampilan terwujud. Penyegaran tambahan 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 tambahan juga didukung untuk tampilan terwujud yang didasarkan pada tabel datashare.

  • Jika penyegaran tambahan tidak memungkinkan, Amazon Redshift akan melakukan penyegaran penuh. Penyegaran penuh menjalankan ulang pernyataan SQL yang mendasarinya, menggantikan semua data dalam tampilan terwujud.

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

Pandangan 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 di penyegaran tampilan paling terwujud teratas. 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 memperbarui sepenuhnya, Anda memiliki dua pilihan:

  • (Disarankan) Segarkan w menggunakan REFRESH MATERIALIZED VIEW w CASCADE perintah. Perintah ini mengeksekusi refresh semua tampilan 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 terwujud akan disegarkan dalam RESTRICT mode, hanya menyegarkan tampilan terwujud saat ini. Contoh berikut menunjukkan pesan informasi saat Anda menjalankan tampilan terwujud yang REFRESH MATERIALIZED VIEW bergantung pada tampilan out-of-date terwujud.

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 cascading untuk tampilan terwujud berdasarkan sumber selain:

  • Tabel lokal

  • Lokal MVs

  • Streaming MVs

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

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

  • Operasi set UNION, INTERSECT, EXCEPT, dan MINUS.

  • Fungsi agregat MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, PERKIRAAN HITUNGAN, PERKIRAAN PERSENTIL, dan fungsi agregat bitwise.

    catatan

    Fungsi agregat COUNT, SUM, dan AVG didukung.

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

  • Fungsi Jendela.

  • Kueri yang menggunakan tabel sementara untuk optimasi kueri, seperti mengoptimalkan subexpressions umum.

  • Subkueri.

  • Tabel eksternal yang mereferensikan 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.

Autorefreshing tampilan yang terwujud

Amazon Redshift dapat secara otomatis menyegarkan tampilan terwujud dengan up-to-date data dari tabel dasarnya ketika tampilan terwujud dibuat dengan atau diubah untuk memiliki opsi autorefresh. Amazon Redshift secara otomatis menyegarkan tampilan terwujud sesegera mungkin setelah tabel dasar berubah.

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

Amazon Redshift memprioritaskan beban kerja Anda daripada autorefresh dan mungkin menghentikan autorefresh 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 tampilan terwujud Anda. Jika demikian, pertimbangkan untuk menggunakan penyegaran manual seperti yang dijelaskan dalam MENYEGARKAN TAMPILAN 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 terwujud secara otomatis. Untuk informasi selengkapnya tentang membuat tampilan terwujud, lihatBUAT TAMPILAN TERWUJUD. Anda dapat mengaktifkan autorefresh untuk tampilan terwujud saat ini dengan menggunakan. MENGUBAH TAMPILAN TERWUJUD

Pertimbangkan hal berikut saat Anda menyegarkan tampilan terwujud:

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

  • Amazon Redshift didukung pada tampilan terwujud yang ditentukan pada tabel datasharing dan tabel Iceberg.

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

  • Untuk menjalankan REFRESH pada tampilan terwujud hanya komputasi ulang, pastikan Anda memiliki izin CREATE pada skema. Untuk informasi selengkapnya, lihat HIBAH.