BUAT TAMPILAN TERWUJUD - Amazon Redshift

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

BUAT TAMPILAN 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, 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

CADANGAN

Klausa yang menentukan apakah tampilan terwujud disertakan dalam snapshot cluster otomatis dan manual, yang disimpan di Amazon S3.

Nilai default-nya BACKUP is YES.

Anda dapat menentukan BACKUP NO untuk menghemat waktu pemrosesan saat membuat snapshot dan memulihkan dari snapshot, dan untuk mengurangi jumlah penyimpanan yang diperlukan di Amazon S3.

catatan

BACKUP NOPengaturan tidak berpengaruh pada replikasi otomatis data ke node lain di dalam cluster, sehingga tabel dengan BACKUP NO yang ditentukan dipulihkan dalam kegagalan node.

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 distribusinya 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 bahasa SQL tertentu yang digunakan dalam kueri menentukan apakah tampilan terwujud dapat disegarkan secara bertahap atau sepenuhnya. Untuk informasi tentang metode penyegaran, lihatMENYEGARKAN TAMPILAN TERWUJUD. Untuk informasi tentang batasan penyegaran tambahan, lihatBatasan untuk penyegaran tambahan.

Jika kueri berisi perintah SQL 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 klien SQL. Periksa state kolom STV_MV_INFO untuk melihat jenis penyegaran yang digunakan oleh tampilan terwujud.

PENYEGARAN OTOMATIS

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:

  • BUAT hak istimewa untuk skema.

  • Hak istimewa SELECT tingkat tabel atau 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.

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.

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 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 tampilan 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 dan tampilan sistem.

  • Tabel sementara.

  • Fungsi yang ditentukan pengguna.

  • Klausul ORDER BY, LIMIT, atau OFFSET.

  • referensi yang mengikat akhir 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 khusus simpul 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 yang 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 MENGANALISA pada tampilan yang terwujud. Ini terjadi saat ini hanya melalui ANALISIS OTOMATIS. 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 klausa UNION ALL untuk bergabung dengan tabel Amazon public_sales Redshift dan tabel Redshift spectrum.sales Spectrum untuk membuat tampilan material. mv_sales_vw Untuk informasi tentang perintah CREATE EXTERNAL TABLE untuk 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, 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 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 diaktifkan 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 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;

Ketika Anda menjalankan pernyataan SELECT, cities_mv mengembalikan catatan. Rekaman disegarkan dari tabel sumber hanya ketika pernyataan REFRESH dijalankan. Juga, perhatikan bahwa Anda tidak dapat memperbarui catatan secara langsung dalam tampilan terwujud. Untuk informasi tentang menyegarkan data dalam tampilan terwujud, lihat. MENYEGARKAN TAMPILAN TERWUJUD

Untuk detail tentang ikhtisar tampilan terwujud dan perintah SQL yang digunakan untuk menyegarkan dan menghapus tampilan terwujud, lihat topik berikut: