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
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BUAT TAMPILAN YANG TERWUJUD
Membuat tampilan terwujud berdasarkan satu atau beberapa tabel Amazon Redshift. Anda juga dapat mendasarkan tampilan terwujud pada tabel eksternal yang dibuat menggunakan Spectrum atau kueri federasi. Untuk informasi tentang Spectrum, lihatSpektrum Pergeseran Merah Amazon. Untuk informasi tentang kueri federasi, lihatMenanyakan data dengan kueri gabungan di Amazon Redshift.
Sintaksis
CREATE MATERIALIZED VIEW mv_name [ BACKUP { YES | NO } ] [ table_attributes ] [ AUTO REFRESH { YES | NO } ] AS query
Parameter
- CADANGAN
-
Klausa yang menentukan apakah tampilan yang terwujud harus disertakan dalam snapshot cluster otomatis dan manual.
Untuk tampilan terwujud yang tidak berisi data penting, tentukan BACKUP NO untuk menghemat waktu pemrosesan saat membuat snapshot dan memulihkan dari snapshot serta mengurangi ruang penyimpanan di Amazon Simple Storage Service. Pengaturan BACKUP NO tidak berpengaruh pada replikasi otomatis data ke node lain di dalam cluster, sehingga tampilan yang terwujud dengan BACKUP NO yang ditentukan dipulihkan jika terjadi kegagalan node. Defaultnya adalah BACKUP YES.
- tabel_atribut
-
Klausa yang menentukan bagaimana data dalam tampilan terwujud didistribusikan, termasuk yang berikut:
-
Gaya distribusi untuk tampilan yang terwujud, dalam format
DISTSTYLE { EVEN | ALL | KEY }. Jika Anda menghilangkan klausa ini, gaya distribusinya adalahEVEN. Untuk informasi selengkapnya, lihat Gaya distribusi. -
Kunci distribusi untuk tampilan yang terwujud, dalam format
DISTKEY ( distkey_identifier ). Untuk informasi selengkapnya, lihat Menunjuk gaya distribusi. -
Kunci pengurutan untuk tampilan terwujud, dalam format
SORTKEY ( column_name [, ...] ). Untuk informasi selengkapnya, lihat Sortir kunci.
-
- Ku eri AS
-
Per
SELECTnyataan valid yang mendefinisikan tampilan yang terwujud dan isinya. Kumpulan hasil dari kueri mendefinisikan kolom dan baris dari tampilan yang terwujud. Untuk informasi tentang keterbatasan saat membuat tampilan yang terwujud, lihatBatasan.Selanjutnya, konstruksi bahasa SQL tertentu yang digunakan dalam kueri menentukan apakah tampilan yang terwujud dapat diperbarui secara bertahap atau sepenuhnya. Untuk informasi tentang metode penyegaran, lihatMENYEGARKAN TAMPILAN YANG TERWUJUD. Untuk informasi tentang batasan penyegaran inkremental, lihatBatasan untuk penyegaran tambahan.
Jika kueri berisi perintah SQL yang tidak mendukung penyegaran tambahan, Amazon Redshift menampilkan pesan yang menunjukkan bahwa tampilan yang terwujud akan menggunakan penyegaran penuh. Pesan mungkin atau mungkin tidak ditampilkan, tergantung pada aplikasi klien SQL. Periksa
statekolom STV_MV_INFO untuk melihat jenis refresh yang digunakan oleh tampilan yang terwujud. - PENYEGARAN OTOMATIS
-
Klausa yang mendefinisikan apakah tampilan yang terwujud harus diperbarui secara otomatis dengan perubahan terbaru dari tabel dasarnya. Nilai default-nya adalah
NO. Untuk informasi selengkapnya, lihat Menyegarkan tampilan yang terwujud.
Catatan penggunaan
Untuk membuat tampilan yang terwujud, Anda harus memiliki hak istimewa berikut:
-
BUAT hak istimewa untuk skema.
-
Table-level atau hak istimewa SELECT tingkat kolom pada tabel dasar untuk membuat tampilan yang terwujud. Jika Anda memiliki hak istimewa tingkat kolom pada kolom tertentu, Anda dapat membuat tampilan terwujud hanya pada kolom tersebut.
Anda dapat membuat tampilan terwujud dari cluster pembagian data jarak jauh dengan memberikan nama database eksternal di. mv_name
Penyegaran tambahan untuk tampilan terwujud dalam datashare
Amazon Redshift mendukung penyegaran otomatis dan inkremental untuk tampilan yang terwujud di datashare konsumen saat tabel dasar dibagikan. Penyegaran tambahan adalah operasi di mana Amazon Redshift mengidentifikasi perubahan pada tabel dasar atau tabel yang terjadi setelah penyegaran sebelumnya dan hanya memperbarui catatan yang sesuai dalam tampilan yang terwujud. Ini berjalan lebih cepat daripada penyegaran penuh dan meningkatkan kinerja beban kerja. Anda tidak perlu mengubah definisi tampilan terwujud untuk memanfaatkan penyegaran tambahan.
Ada beberapa batasan yang perlu diperhatikan untuk memanfaatkan penyegaran tambahan dengan tampilan yang terwujud:
-
Tampilan terwujud harus mereferensikan hanya satu database, baik lokal atau jarak jauh.
-
Penyegaran tambahan hanya tersedia pada tampilan baru yang terwujud. Oleh karena itu, Anda harus menghapus tampilan terwujud yang ada dan membuatnya kembali agar penyegaran tambahan terjadi.
Untuk informasi selengkapnya tentang membuat tampilan terwujud di datashare, lihat Bek erja dengan tampilan di berbagi data Amazon Redshift, yang berisi beberapa contoh kueri.
Pembaruan DDL ke tampilan terwujud atau tabel dasar
Saat menggunakan tampilan terwujud di Amazon Redshift, ikuti catatan penggunaan ini untuk pembaruan bahasa definisi data (DDL) ke tampilan terwujud atau tabel dasar.
-
Anda dapat menambahkan kolom ke tabel dasar tanpa mempengaruhi tampilan terwujud yang mereferensikan tabel dasar.
-
Beberapa operasi dapat meninggalkan tampilan terwujud dalam keadaan yang tidak dapat disegarkan sama sekali. Contohnya adalah operasi seperti mengganti nama atau menjatuhkan kolom, mengubah jenis kolom, dan mengubah nama skema. Pandangan yang terwujud seperti itu dapat ditanyakan tetapi tidak dapat disegarkan. Dalam hal ini, Anda harus melepaskan dan membuat ulang tampilan yang terwujud.
-
Secara umum, Anda tidak dapat mengubah definisi tampilan yang terwujud (pernyataan SQL-nya).
-
Anda tidak dapat mengganti nama tampilan yang terwujud.
Batasan
Anda tidak dapat menentukan tampilan terwujud yang mereferensikan atau menyertakan salah satu dari berikut ini:
-
Tampilan standar, atau tabel sistem dan tampilan.
-
Tabel sementara.
-
User-defined fungsi.
-
Klausul ORDER BY, LIMIT, atau OFFSET.
-
Late-binding referensi ke tabel dasar. Dengan kata lain, setiap tabel dasar atau kolom terkait yang direferensikan dalam kueri SQL yang menentukan dari tampilan terwujud harus ada dan harus valid.
-
Fungsi hanya node pemimpin: CURRENT_SCHEMA, CURRENT_SCHEMAS, HAS_DATABASE_PRIVILEGE, HAS_SCHEMA_PRIVILEGE, HAS_TABLE_PRIVILEGE.
-
Anda tidak dapat menggunakan opsi AUTO REFRESH YES ketika definisi tampilan terwujud menyertakan fungsi yang dapat diubah atau skema eksternal. Anda juga tidak dapat menggunakannya saat Anda menentukan tampilan terwujud pada tampilan terwujud lainnya.
-
Anda tidak perlu menjalankan secara manual MENGANALISA pada tampilan yang terwujud. Ini terjadi saat ini hanya melalui ANALISIS OTOMATIS. Untuk informasi selengkapnya, lihat Menganalisis tabel.
-
RLS-protected atau DDM-protected tabel.
-
Pembuatan tampilan terwujud dari cluster pembagian data jarak jauh tidak mendukung referensi pada tampilan terwujud lainnya, tabel Spectrum, tabel yang ditentukan dalam cluster Redshift dan UDF yang berbeda. Ini didukung untuk pembuatan tampilan terwujud dari cluster lokal (produsen).
Contoh
Contoh berikut membuat tampilan terwujud dari tiga tabel dasar yang digabungkan dan digabungkan. Setiap baris mewakili kategori dengan jumlah tiket yang terjual. Saat Anda menanyakan tampilan terwujud tickets_mv, Anda langsung mengakses data yang telah dihitung sebelumnya dalam tampilan terwujud tickets_mv.
CREATE MATERIALIZED VIEW tickets_mv AS select catgroup, sum(qtysold) as sold from category c, event e, sales s where c.catid = e.catid and e.eventid = s.eventid group by catgroup;
Contoh berikut membuat tampilan terwujud mirip dengan contoh sebelumnya dan menggunakan fungsi agregat MAX ().
CREATE MATERIALIZED VIEW tickets_mv_max AS select catgroup, max(qtysold) as sold from category c, event e, sales s where c.catid = e.catid and e.eventid = s.eventid group by catgroup; SELECT name, state FROM STV_MV_INFO;
Contoh berikut menggunakan klausa UNION ALL untuk bergabung dengan tabel Amazon Redshift dan public_sales tabel Redshift Spectrum spectrum.sales untuk membuat tampilan material. mv_sales_vw Untuk informasi tentang perintah CREATE EXTERNAL TABLE untuk Amazon Redshift Spectrum, lihatCREATE EXTERNAL TABLE. Tabel eksternal Redshift Spectrum mereferensikan data di Amazon S3.
CREATE MATERIALIZED VIEW mv_sales_vw as select salesid, qtysold, pricepaid, commission, saletime from public.sales union all select salesid, qtysold, pricepaid, commission, saletime from spectrum.sales
Contoh berikut membuat tampilan terwujud mv_fq berdasarkan tabel eksternal kueri federasi. Untuk informasi tentang kueri federasi, lihatBUAT SKEMA EKSTERNAL.
CREATE MATERIALIZED VIEW mv_fq as select firstname, lastname from apg.mv_fq_example; select firstname, lastname from mv_fq; firstname | lastname -----------+---------- John | Day Jane | Doe (2 rows)
Contoh berikut menunjukkan definisi tampilan yang terwujud.
SELECT pg_catalog.pg_get_viewdef('mv_sales_vw'::regclass::oid, true); pg_get_viewdef --------------------------------------------------- create materialized view mv_sales_vw as select a from t;
Contoh berikut menunjukkan cara mengatur AUTO REFRESH dalam definisi tampilan terwujud dan juga menentukan DISTSTYLE. Pertama, buat tabel dasar sederhana.
CREATE TABLE baseball_table (ball int, bat int);
Kemudian, buat tampilan yang terwujud.
CREATE MATERIALIZED VIEW mv_baseball DISTSTYLE ALL AUTO REFRESH YES AS SELECT ball AS baseball FROM baseball_table;
Sekarang Anda dapat menanyakan tampilan yang terwujud mv_baseball. Untuk memeriksa apakah AUTO REFRESH diaktifkan untuk tampilan yang terwujud, lihatSTV_MV_INFO.
Contoh berikut membuat tampilan terwujud yang mereferensikan tabel sumber di database lain. Ini mengasumsikan bahwa database yang berisi tabel sumber, Database_a, berada di cluster atau kelompok kerja yang sama dengan tampilan terwujud Anda, yang Anda buat di Database_b. (Anda dapat mengganti database Anda sendiri untuk sampel.) Pertama, buat tabel di Database_A bernama cities, dengan kolom cityname. Jadikan tipe data kolom sebagai VARCHAR. Setelah Anda membuat tabel sumber, jalankan perintah berikut di Database_b untuk membuat tampilan terwujud yang sumbernya adalah tabel kota Anda. Pastikan untuk menentukan database dan skema tabel sumber dalam klausa FROM:
CREATE MATERIALIZED VIEW cities_mv AS SELECT cityname FROM database_A.public.cities;
Kueri tampilan terwujud yang Anda buat. Kueri mengambil catatan yang sumber aslinya adalah tabel kota di Database_a:
select * from cities_mv;
Saat Anda menjalankan pernyataan SELECT, cities_mv mengembalikan catatan. Catatan disegarkan dari tabel sumber hanya ketika pernyataan REFRESH dijalankan. Juga, perhatikan bahwa Anda tidak dapat memperbarui catatan secara langsung di tampilan yang terwujud. Untuk informasi tentang menyegarkan data dalam tampilan terwujud, lihatMENYEGARKAN TAMPILAN YANG TERWUJUD.
Untuk detail tentang ikhtisar tampilan terwujud dan perintah SQL yang digunakan untuk menyegarkan dan menghapus tampilan yang terwujud, lihat topik berikut: