CREATE MATERIALIZED VIEW
Berlaku untuk: Databricks SQL
Penting
Fitur ini ada di Pratinjau Publik. Untuk mendaftar akses, isi formulir ini.
Tampilan materialisasi adalah tampilan di mana hasil yang telah dikomputasi tersedia untuk kueri dan dapat diperbarui untuk mencerminkan perubahan dalam input. Setiap kali tampilan materialisasi di-refresh, hasil kueri dihitung ulang untuk mencerminkan perubahan dalam himpunan data hulu. Semua tampilan materialisasi didukung oleh alur DLT. Anda dapat me-refresh tampilan materialisasi secara manual, sesuai jadwal, atau dengan menjadwalkan alur DLT tempat tampilan tersebut berada.
Sintaks
CREATE MATERIALIZED VIEW [IF NOT EXISTS]
view_name
[ column_list ]
[ table_constraints ]
[ view_clauses ]
AS query
column_list
( { column_alias [ COMMENT column_comment | column_constraint ] [...] } [, ...] [ , table_constraint ] [...])
table_constraints
( table_constraint [, ...] )
view_clauses
{ PARTITIONED BY (col [, ...]) |
COMMENT view_comment |
TBLPROPERTIES clause |
SCHEDULE [ REFRESH ] CRON cron_string [ AT TIME ZONE timezone_id ] } [...]
Parameter
IF NOT EXISTS
Membuat tampilan jika tidak ada. Jika tampilan dengan nama ini sudah ada,
CREATE VIEW
pernyataan diabaikan.Anda dapat menentukan paling banyak salah satu
IF NOT EXISTS
atauOR REFRESH
.-
Nama tampilan yang baru dibuat. Nama tampilan yang sepenuhnya memenuhi syarat harus unik.
column_list
Secara opsional, beri label pada kolom dalam hasil kueri tampilan. Jika Anda memberikan daftar kolom, jumlah alias kolom harus sesuai dengan jumlah ekspresi dalam kueri. Jika tidak ada daftar kolom yang ditentukan, alias berasal dari isi tampilan.
-
Alias kolom harus unik.
column_comment
Literal opsional
STRING
yang menjelaskan alias kolom.-
Penting
Fitur ini ada di Pratinjau Publik.
Menambahkan kunci primer informasi atau batasan kunci asing informasi ke kolom dalam tampilan materialisasi. Batasan tidak didukung untuk tampilan materialisasi dalam
hive_metastore
katalog.
-
-
Penting
Fitur ini ada di Pratinjau Publik.
Menambahkan kunci primer informasi atau batasan kunci asing informasi ke tampilan materialisasi. Batasan tidak didukung untuk tampilan materialisasi dalam
hive-metastore
katalog. view_clauses
Secara opsional tentukan partisi, komentar, properti yang ditentukan pengguna, dan jadwal refresh untuk tampilan materialisasi baru. Setiap sub klausul hanya dapat ditentukan satu kali.
-
Daftar kolom tabel opsional untuk mempartisi tabel.
view_comment KOMENTAR
Harfiah
STRING
untuk menggambarkan tabel.-
Secara opsional, atur satu atau beberapa properti yang ditentukan pengguna.
SCHEDULE [ REFRESH ] CRON cron_string [ AT TIME ZONE timezone_id ]
Jika disediakan, menjadwalkan tabel streaming atau tampilan materialisasi untuk me-refresh datanya dengan jadwal cron kuarsa yang diberikan. Hanya time_zone_values yang diterima.
AT TIME ZONE LOCAL
tidak didukung. JikaAT TIME ZONE
tidak ada, zona waktu sesi digunakan. JikaAT TIME ZONE
tidak ada dan zona waktu sesi tidak diatur, kesalahan akan muncul.SCHEDULE
secara semantik setaraSCHEDULE REFRESH
dengan .Anda tidak dapat menggunakan
SCHEDULE
sintaks dalam definisi alur Delta Live Tables.
-
AS kueri
Kueri yang membuat tampilan dari tabel dasar atau tampilan lainnya.
Izin yang diperlukan
Pengguna yang membuat tampilan materialisasi (MV) adalah pemilik MV dan harus memiliki izin berikut:
SELECT
hak istimewa atas tabel dasar yang dirujuk oleh MV.USE CATALOG
hak istimewa pada katalog induk danUSE SCHEMA
hak istimewa pada skema induk.CREATE
hak istimewa pada skema untuk MV.
Hanya pemilik yang dapat REFRESH
MV.
Agar pengguna dapat mengkueri MV, mereka memerlukan:
USE CATALOG
hak istimewa pada katalog induk danUSE SCHEMA
hak istimewa pada skema induk.SELECT
hak istimewa atas tampilan materialisasi.
Batasan
- Saat tampilan terwujud dengan agregat
sum
melalui kolom berkemampuan NULL memiliki nilai non-NULL terakhir yang dihapus dari kolom tersebut - dan dengan demikian hanyaNULL
nilai yang tetap ada di kolom tersebut - nilai agregat hasil tampilan materialisasi mengembalikan nol alih-alihNULL
. - Referensi kolom tidak memerlukan alias. Ekspresi referensi non-kolom memerlukan alias, seperti dalam contoh berikut:
- Diperbolehkan:
SELECT col1, SUM(col2) AS sum_col2 FROM t GROUP BY col1
- Tidak Diizinkan:
SELECT col1, SUM(col2) FROM t GROUP BY col1
- Diperbolehkan:
- Tampilan materialisasi tidak mendukung kolom identitas atau kunci pengganti.
- Tampilan materialisasi tidak mendukung ad-hoc
OPTIMIZE
danVACUUM
perintah. Pemeliharaan terjadi secara otomatis.
Contoh
-- Create a materialized view if it doesn't exist
> CREATE MATERIALIZED VIEW IF NOT EXISTS subscribed_movies
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb ON mo.member_id = mb.id;
-- Create and schedule a materialized view to be refreshed daily at midnight.
-- Note: All columns in a GROUP BY need to be explicitly aliased
> CREATE MATERIALIZED VIEW daily_sales
COMMENT 'Daily sales numbers'
SCHEDULE CRON '0 0 0 * * ? *'
AS SELECT date AS date, sum(sales) AS sumOfSales
FROM table1
GROUP BY date;
-- Create a materialized view with a column constraint
> CREATE MATERIALIZED VIEW IF NOT EXISTS subscribed_movies(
member_id NOT NULL PRIMARY KEY,
full_name,
movie_title
)
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb ON mo.member_id = mb.id;
-- Create a materialized view with a table constraint
> CREATE MATERIALIZED VIEW IF NOT EXISTS subscribed_movies(
member_id NOT NULL,
full_name,
movie_title,
CONSTRAINT movie_pk PRIMARY KEY(member_id)
)
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb ON mo.member_id = mb.id;
-- Create a materialized view without column list
> CREATE MATERIALIZED VIEW IF NOT EXISTS subscribed_movies(
CONSTRAINT movie_pk PRIMARY KEY(member_id)
)
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb ON mo.member_id = mb.id;
Artikel terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk