Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CREATE MATERIALIZED VIEW
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, lihatAmazon Redshift Spectrum. Untuk informasi tentang kueri federasi, lihatMenanyakan data dengan kueri gabungan di Amazon Redshift.
Sintaks
CREATE MATERIALIZED VIEW mv_name [ BACKUP { YES | NO } ] [ table_attributes ] [ AUTO REFRESH { YES | NO } ] AS query
Parameter
- BACKUP
-
Klausa yang menentukan apakah tampilan 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 dan untuk 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 terwujud dengan BACKUP NO ditentukan dipulihkan jika terjadi kegagalan node. Defaultnya adalah BACKUPYES.
- table_attributes
-
Klausa yang menentukan bagaimana data dalam tampilan terwujud didistribusikan, termasuk yang berikut:
-
Gaya distribusi untuk tampilan terwujud, dalam format
DISTSTYLE { EVEN | ALL | KEY }
. Jika Anda menghilangkan klausa ini, gaya distribusinya adalah.EVEN
Untuk informasi selengkapnya, lihat Gaya distribusi. -
Kunci distribusi untuk tampilan terwujud, dalam format
DISTKEY ( distkey_identifier )
. Untuk informasi selengkapnya, lihat Menunjuk gaya distribusi. -
Kunci sortir untuk tampilan terwujud, dalam format
SORTKEY ( column_name [, ...] )
. Untuk informasi selengkapnya, lihat Sortir kunci.
-
- Sebagai kueri
-
SELECT
Pernyataan valid yang mendefinisikan tampilan terwujud dan isinya. Hasil yang ditetapkan dari kueri mendefinisikan kolom dan baris tampilan terwujud. Untuk informasi tentang batasan saat membuat tampilan terwujud, lihatBatasan.Selanjutnya, konstruksi SQL bahasa tertentu yang digunakan dalam kueri menentukan apakah tampilan terwujud dapat disegarkan secara bertahap atau sepenuhnya. Untuk informasi tentang metode penyegaran, lihatREFRESH MATERIALIZED VIEW. Untuk informasi tentang batasan penyegaran inkremental, lihatBatasan untuk penyegaran inkremental.
Jika kueri berisi SQL perintah yang tidak mendukung penyegaran tambahan, Amazon Redshift menampilkan pesan yang menunjukkan bahwa tampilan terwujud akan menggunakan penyegaran penuh. Pesan mungkin atau mungkin tidak ditampilkan, tergantung pada aplikasi SQL klien. Periksa
state
kolom STV_MV_ INFO untuk melihat jenis penyegaran yang digunakan oleh tampilan terwujud. - AUTO REFRESH
-
Klausa yang menentukan apakah tampilan terwujud harus disegarkan 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 terwujud, Anda harus memiliki hak istimewa berikut:
-
CREATEhak istimewa untuk skema.
-
SELECTKeistimewaan tingkat tabel atau tingkat kolom pada tabel dasar untuk membuat tampilan terwujud. Jika Anda memiliki hak istimewa tingkat kolom pada kolom tertentu, Anda dapat membuat tampilan terwujud hanya pada kolom tersebut.
Penyegaran tambahan untuk tampilan terwujud dalam datashare
Amazon Redshift mendukung penyegaran otomatis dan inkremental untuk tampilan terwujud dalam penyimpanan data 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 terkait dalam tampilan terwujud. Ini berjalan lebih cepat daripada penyegaran penuh dan meningkatkan kinerja beban kerja. Anda tidak perlu mengubah definisi tampilan terwujud Anda untuk memanfaatkan penyegaran tambahan.
Ada beberapa batasan yang perlu diperhatikan untuk memanfaatkan penyegaran tambahan dengan tampilan yang terwujud:
Tampilan yang terwujud harus mereferensikan hanya satu database, baik lokal maupun 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 dalam database, lihat Bekerja dengan tampilan di berbagi data Amazon Redshift, yang berisi beberapa contoh kueri.
DDLpembaruan untuk 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 memengaruhi 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 terwujud seperti itu dapat ditanyakan tetapi tidak dapat disegarkan. Dalam hal ini, Anda harus menjatuhkan dan membuat ulang tampilan yang terwujud.
-
Secara umum, Anda tidak dapat mengubah definisi pandangan terwujud (SQLpernyataannya).
-
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 dan tampilan sistem.
-
Tabel sementara.
-
Fungsi yang ditentukan pengguna.
-
ORDERBY,LIMIT, atau OFFSET klausa.
-
referensi yang mengikat akhir ke tabel dasar. Dengan kata lain, setiap tabel dasar atau kolom terkait yang direferensikan dalam SQL kueri penentu tampilan terwujud harus ada dan harus valid.
-
Fungsi khusus simpul pemimpin: CURRENT _SCHEMA, CURRENT _SCHEMAS, _ HAS _PRIVILEGE, DATABASE _ HAS _PRIVILEGE, SCHEMA _ HAS _TABLE. PRIVILEGE
Anda tidak dapat menggunakan AUTO REFRESH YES opsi ketika definisi tampilan terwujud menyertakan fungsi yang dapat berubah atau skema eksternal. Anda juga tidak dapat menggunakannya saat menentukan tampilan terwujud pada tampilan terwujud lainnya.
Anda tidak harus menjalankan secara manual ANALYZE pada tampilan yang terwujud. Ini terjadi saat ini hanya melalui AUTOANALYZE. Untuk informasi selengkapnya, lihat Menganalisis tabel.
Contoh
Contoh berikut menciptakan tampilan terwujud dari tiga tabel dasar yang digabungkan dan digabungkan. Setiap baris mewakili kategori dengan jumlah tiket yang terjual. Saat Anda menanyakan tampilan materialisasi tickets_mv, Anda langsung mengakses data yang telah dihitung sebelumnya dalam tampilan materialisasi 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 UNION ALL klausa untuk bergabung dengan tabel Amazon public_sales
Redshift dan tabel Redshift spectrum.sales
Spectrum untuk membuat tampilan material. mv_sales_vw
Untuk informasi tentang CREATE EXTERNAL TABLE perintah Amazon Redshift Spectrum, CREATE EXTERNAL TABLE lihat. 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 query federasi. Untuk informasi tentang kueri federasi, lihatCREATE EXTERNAL SCHEMA.
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 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 mv_baseball yang terwujud. Untuk memeriksa apakah AUTO REFRESH dihidupkan untuk tampilan 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 workgroup 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 disebut kota, dengan kolom nama kota. Jadikan tipe data kolom aVARCHAR. 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 FROM klausa:
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;
Ketika Anda menjalankan SELECT pernyataan, cities_mv mengembalikan catatan. Rekaman disegarkan dari tabel sumber hanya ketika REFRESH pernyataan dijalankan. Juga, perhatikan bahwa Anda tidak dapat memperbarui catatan secara langsung dalam tampilan terwujud. Untuk informasi tentang menyegarkan data dalam tampilan terwujud, lihat. REFRESH MATERIALIZED VIEW
Untuk detail tentang ikhtisar tampilan terwujud dan SQL perintah yang digunakan untuk menyegarkan dan menghapus tampilan terwujud, lihat topik berikut: