CREATE MATERIALIZED VIEW - Amazon Redshift

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, lihatMenanyakan data eksternal menggunakan Amazon 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 formatDISTSTYLE { EVEN | ALL | KEY }. Jika Anda menghilangkan klausa ini, gaya distribusi adalah. EVEN Untuk informasi selengkapnya, lihat Gaya distribusi.

  • Kunci distribusi untuk tampilan terwujud, dalam formatDISTKEY ( distkey_identifier ). Untuk informasi selengkapnya, lihat Menunjuk gaya distribusi.

  • Kunci sortir untuk tampilan terwujud, dalam formatSORTKEY ( column_name [, ...] ). Untuk informasi selengkapnya, lihat Bekerja dengan tombol sortir.

Sebagai kueri

SELECTPernyataan 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 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 kueri 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: