Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara membuat dan me-refresh tampilan terwujud di Databricks SQL untuk meningkatkan performa dan mengurangi biaya beban kerja pemrosesan dan analisis data Anda.
Apa itu tampilan materialisasi?
Di Databricks SQL, tampilan terwujud adalah tabel yang dikelola oleh Unity Catalog yang secara fisik menyimpan hasil kueri. Tidak seperti tampilan standar, yang menghitung hasil sesuai permintaan, tampilan terwujud menyimpan hasil dan memperbaruinya saat tabel sumber yang mendasar berubah—baik sesuai jadwal atau secara otomatis.
Tampilan materialisasi sangat cocok untuk beban kerja pemrosesan data seperti pemrosesan ekstrak, transformasi, dan pemuatan (ETL). Tampilan materialisasi menyediakan cara sederhana dan deklaratif untuk memproses data untuk kepatuhan, koreksi, agregasi, atau pengambilan data perubahan umum (CDC). Tampilan materialisasi juga memungkinkan transformasi yang mudah digunakan dengan membersihkan, memperkaya, dan mendenormalisasi tabel dasar. Dengan melakukan pra-komputasi kueri yang mahal atau sering digunakan, tampilan materialisasi menurunkan latensi kueri dan konsumsi sumber daya. Dalam banyak kasus, mereka dapat secara bertahap menghitung perubahan dari tabel sumber, lebih meningkatkan efisiensi dan pengalaman pengguna akhir.
Berikut ini adalah kasus penggunaan umum untuk tampilan materialisasi:
- Menjaga dasbor BI tetap terbarui dengan latensi kueri pengguna akhir minimal.
- Mengurangi orkestrasi ETL yang kompleks dengan logika SQL sederhana.
- Membangun transformasi berlapis yang kompleks.
- Setiap kasus penggunaan yang menuntut performa konsisten dengan wawasan up-to-date.
Saat Anda membuat tampilan materialisasi di gudang Databricks SQL, alur tanpa server dibuat untuk memproses pembuatan dan pembaruan tampilan materialisasi. Anda dapat memantau status operasi refresh di Catalog Explorer. Lihat Menampilkan detail dengan DESCRIBE EXTENDED.
Persyaratan
Tampilan materialisasi yang dibuat di Databricks SQL didukung oleh alur tanpa server. Ruang kerja Anda harus mendukung alur tanpa server untuk menggunakan fungsionalitas ini.
Persyaratan untuk membuat atau me-refresh tampilan materialisasi:
Anda harus menggunakan gudang SQL pro yang mendukung Unity Catalog atau gudang SQL berbasis serverless.
Untuk memperbarui tampilan materialis, Anda harus berada di ruang kerja yang membuatnya.
Untuk me-refresh tampilan materialisasi secara bertahap dari tabel Delta, tabel sumber harus mengaktifkan pelacakan baris.
Pemilik (pengguna yang membuat tampilan materialisasi) harus memiliki izin berikut:
-
SELECThak akses pada tabel dasar yang dirujuk oleh tampilan terwujud. -
USE CATALOGdanUSE SCHEMAizin pada katalog dan skema yang berisi tabel sumber untuk tampilan materialis. -
USE CATALOGdanUSE SCHEMAhak istimewa pada katalog target dan skema untuk tampilan materialisasi. -
CREATE TABLEhak-hak istimewa pada skemaCREATE MATERIALIZED VIEWyang berisi tampilan materialisasi.
-
Untuk me-refresh tampilan materialisasi, Anda harus memiliki
REFRESHhak istimewa pada tampilan materialisasi.
- Ruang kerja Anda harus berada di wilayah yang mendukung gudang SQL tanpa server.
Persyaratan untuk mengkueri tampilan materialisasi:
Anda harus menjadi pemilik tampilan materialisasi, atau memiliki
SELECTpada tampilan materialisasi, bersama denganUSE SCHEMAdanUSE CATALOGpada induknya.Anda harus menggunakan salah satu sumber daya komputasi berikut:
Gudang SQL
Antarmuka Alur Deklaratif Lakeflow Spark
Mode standar akses komputasi (sebelumnya mode akses bersama)
Mode akses khusus (sebelumnya mode akses pengguna tunggal) pada Databricks Runtime 15.4 ke atas, selama ruang kerja diaktifkan untuk komputasi tanpa server. Lihat Kontrol akses halus pada komputasi khusus.
Jika Anda adalah pemilik tampilan materialisasi, Anda dapat menggunakan sumber daya komputasi dengan mode akses khusus yang menjalankan Databricks Runtime mulai dari versi 14.3 ke atas.
Untuk mempelajari tentang batasan lain dalam menggunakan tampilan materialisasi, lihat Batasan.
Membuat tampilan materialisasi
Operasi yang menggunakan tampilan materialisasi Databricks SQL memanfaatkan gudang Databricks SQL untuk membuat dan memuat data dalam tampilan materialisasi tersebut. Membuat tampilan materialisasi adalah operasi sinkron, yang berarti perintah CREATE MATERIALIZED VIEW memblokir hingga tampilan materialisasi dibuat dan beban data awal selesai. Alur tanpa server secara otomatis dibuat untuk setiap tampilan materialisasi dari Databricks SQL. Saat tampilan materialisasi disegarkan, alur memproses refresh.
Untuk membuat pandangan materialisasi, gunakan perintah CREATE MATERIALIZED VIEW. Untuk mengirimkan pernyataan buat, gunakan editor SQL di UI Azure Databricks, Databricks SQL CLI, atau Databricks SQL API.
Pengguna yang membuat tampilan materialisasi adalah pemilik tampilan materialisasi.
Contoh berikut membuat tampilan mv1 materialisasi dari tabel base_table1dasar :
-- This query defines the materialized view:
CREATE OR REPLACE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM
base_table1
GROUP BY
date;
Saat Anda membuat tampilan materialisasi menggunakan CREATE OR REPLACE MATERIALIZED VIEW pernyataan , refresh data awal dan populasi segera dimulai. Ini tidak menggunakan komputasi gudang SQL. Sebagai gantinya, alur tanpa server digunakan untuk pembuatan dan refresh berikutnya.
Komentar kolom pada tabel dasar secara otomatis disebarkan ke tampilan materialisasi baru hanya saat pembuatan. Untuk menambahkan jadwal, batasan tabel, atau properti lainnya, ubah definisi tampilan materialisasi (kueri SQL).
Pernyataan SQL yang sama akan me-refresh tampilan materialisasi jika disebut waktu berikutnya, atau sesuai jadwal. Refresh yang dilakukan dengan cara ini bertindak seperti refresh lainnya. Untuk detailnya, lihat Merefresh tampilan materialisasi.
Untuk mempelajari selengkapnya tentang mengonfigurasi tampilan materialisasi, lihat Mengonfigurasi tampilan materialisasi di Databricks SQL. Untuk mempelajari tentang sintaks lengkap untuk membuat tampilan materialisasi, lihat CREATE MATERIALIZED VIEW. Untuk mempelajari tentang memuat data dalam format yang berbeda dan dari tempat yang berbeda, lihat Memuat data dalam alur.
Memuat data dari sistem eksternal
Databricks merekomendasikan pemuatan data eksternal menggunakan Federasi Lakehouse untuk sumber data yang didukung. Untuk informasi tentang memuat data dari sumber yang tidak didukung oleh Federasi Lakehouse, lihat Opsi Format Data. Untuk informasi umum tentang memuat data, termasuk contoh, lihat Memuat data dalam alur.
Menyembunyikan data sensitif
Anda dapat menggunakan tampilan materialisasi untuk menyembunyikan data sensitif dari pengguna yang mengakses tabel. Salah satu cara untuk melakukan ini adalah dengan membuat kueri sehingga tidak menyertakan data tersebut di tempat pertama. Tetapi Anda juga bisa menutupi kolom atau memfilter baris berdasarkan izin pengguna kueri. Misalnya, Anda dapat menyembunyikan tax_id kolom untuk pengguna yang tidak berada dalam grup HumanResourcesDept. Untuk melakukan ini, gunakan sintaks ROW FILTER dan MASK selama pembuatan tampilan materialisasi. Untuk informasi selengkapnya, lihat Filter baris dan masker kolom.
Memperbarui pandangan terwujud
Me-refresh tampilan materialisasi memperbarui tampilan untuk mencerminkan perubahan terbaru pada tabel dasar pada saat refresh.
Saat Anda menentukan view terwujud, pernyataan CREATE OR REPLACE MATERIALIZED VIEW digunakan baik untuk membuat view tersebut maupun memperbaruinya untuk setiap pembaruan terjadwal. Anda juga dapat menggunakan REFRESH MATERIALIZED VIEW pernyataan untuk me-refresh tampilan materialisasi tanpa perlu menyediakan kueri lagi. Lihat REFRESH (MATERIALIZED VIEW atau STREAMING TABLE) untuk detail tentang sintaks dan parameter SQL untuk perintah ini. Untuk mempelajari lebih lanjut tentang jenis tampilan materialisasi yang dapat diperbarui secara bertahap, lihat Penyegaran bertahap untuk tampilan materialisasi.
Untuk mengirimkan pernyataan refresh, gunakan editor SQL di UI Azure Databricks, buku catatan yang dilampirkan ke gudang SQL, Databricks SQL CLI, atau Databricks SQL API.
Pemilik, dan setiap pengguna yang telah diberikan REFRESH hak istimewa pada tabel, dapat me-refresh tampilan materialisasi.
Contoh berikut menyegarkan tampilan materialisasi mv1:
REFRESH MATERIALIZED VIEW mv1;
Operasi ini sinkron secara default, artinya perintah ditahan sampai operasi refresh selesai. Untuk menyegarkan secara asinkron, Anda dapat menambahkan ASYNC kata kunci:
REFRESH MATERIALIZED VIEW mv1 ASYNC;
Bagaimana tampilan materialisasi Databricks SQL diperbarui?
Tampilan materialisasi secara otomatis membuat dan menggunakan alur tanpa server untuk memproses operasi refresh. Refresh dikelola oleh alur dan pembaruan dipantau oleh gudang Databricks SQL yang digunakan untuk membuat tampilan materialisasi. Tampilan materialisasi dapat diperbarui menggunakan alur yang berjalan sesuai jadwal. Databricks SQL membuat tampilan materialisasi selalu berjalan dalam mode yang dipicu. Lihat Mode dipicu vs. mode jalur berkelanjutan.
Tampilan materialisasi di-refresh menggunakan salah satu dari dua metode.
- Refresh bertahap - Sistem mengevaluasi kueri tampilan untuk mengidentifikasi perubahan yang terjadi setelah pembaruan terakhir dan hanya menggabungkan data baru atau yang dimodifikasi.
- Refresh penuh - Jika refresh inkremental tidak dapat dilakukan, sistem menjalankan seluruh kueri dan mengganti data yang ada dalam tampilan materialisasi dengan hasil baru.
Struktur kueri dan jenis data sumber menentukan apakah refresh inkremental didukung. Untuk mendukung penyegaran secara bertahap, data sumber harus disimpan dalam tabel Delta, dengan pelacakan baris dan umpan data perubahan diaktifkan. Setelah membuat tampilan materialisasi, Anda dapat memantau perilaku refreshnya untuk memverifikasi apakah tampilan tersebut diperbarui secara bertahap atau melalui refresh penuh.
Untuk detail tentang jenis refresh, dan cara mengoptimalkan refresh inkremental, lihat Refresh inkremental untuk tampilan materialisasi.
Penyegaran asinkron
Secara default, operasi refresh dilakukan secara sinkron. Anda juga dapat mengatur operasi refresh agar terjadi secara asinkron. Ini dapat diatur menggunakan perintah refresh dengan ASYNC kata kunci. Lihat REFRESH (MATERIALIZED VIEW atau STREAMING TABLE) Perilaku yang terkait dengan setiap pendekatan adalah sebagai berikut:
- Sinkron: Refresh sinkron mencegah operasi lain melanjutkan hingga refresh selesai. Jika hasilnya diperlukan untuk langkah berikutnya, seperti saat mengurutkan operasi refresh dalam tools orkestrasi seperti Lakeflow Jobs, gunakan refresh sinkron. Untuk mengatur tampilan materialisasi dengan tugas, gunakan jenis tugas SQL. Lihat Pekerjaan Lakeflow.
- Asinkron: Refresh asinkron memulai pekerjaan latar belakang pada komputasi tanpa server saat refresh tampilan materialisasi dimulai, memungkinkan perintah untuk kembali sebelum pemuatan data selesai. Jenis refresh ini dapat menghemat biaya karena operasi tidak selalu menyimpan kapasitas komputasi di gudang tempat perintah dimulai. Jika pembaharuan menjadi tidak aktif dan tidak ada tugas lain yang berjalan, gudang dapat dimatikan saat pembaharuan menggunakan sumber daya komputasi lain yang tersedia. Selain itu, refresh asinkron mendukung memulai beberapa operasi secara paralel.
Menjadwalkan penyegaran tampilan termaterialisasi
Anda dapat mengonfigurasi tampilan materialisasi Databricks SQL untuk di-refresh secara otomatis berdasarkan jadwal yang ditentukan, atau untuk memicu saat data upstram diubah.
Penting
Fitur ini TRIGGER ON UPDATE ada di Beta.
Untuk mengatur jadwal atau pemicu, lakukan salah satu hal berikut ini:
- Konfigurasikan jadwal menggunakan klausa
SCHEDULEsaat Anda membuat tampilan terwujud - Konfigurasikan pemicu dengan
TRIGGER ON UPDATEklausa saat Anda membuat tampilan materialisasi. - Tambahkan atau ubah jadwal atau pemicu dengan ALTER MATERIALIZED VIEW pernyataan .
Nota
Sebagai alternatif, Anda dapat membuat tugas dalam pekerjaan yang mencakup pernyataan CREATE OR REPLACE MATERIALIZED VIEW atau REFRESH, dan mengaturnya seperti yang Anda lakukan pada pekerjaan lainnya. Lihat Pekerjaan Lakeflow.
Contoh berikut membuat tampilan materialisasi mv1 dari tabel dasar base_table1, dan jadwal untuk memperbarui tampilan materialisasi sekali sejam.
CREATE OR REPLACE MATERIALIZED VIEW mv1
SCHEDULE EVERY 1 hour
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM
base_table1
GROUP BY
date;
Untuk mengatur atau mengubah jadwal setelah pembuatan, gunakan ALTER MATERIALIZED VIEW pernyataan :
-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated.
ALTER MATERIALIZED VIEW sales ALTER TRIGGER ON UPDATE;
Saat jadwal dibuat, pekerjaan baru di Databricks secara otomatis ditetapkan untuk memproses pembaruan.
Untuk melihat jadwal, lakukan salah satu hal berikut ini:
- Jalankan
DESCRIBE EXTENDEDpernyataan dari editor SQL di antarmuka pengguna Azure Databricks. Lihat DESCRIBE TABLE. - Gunakan Catalog Explorer untuk melihat tampilan terwujud. Jadwal tercantum di tab Gambaran Umum, di bawah Refresh status. Lihat Apa itu Catalog Explorer?.
Ketika ada jadwal untuk refresh, Anda masih memiliki opsi untuk menjalankan refresh manual kapan saja, jika Anda membutuhkan data yang diperbarui.
Menghentikan refresh aktif
Untuk menghentikan refresh aktif di antarmuka pengguna Azure Databricks, di halaman Detail alur klik Hentikan untuk menghentikan pembaruan alur. Anda juga dapat menghentikan pembaruan dengan Databricks CLI atau operasi POST /api/2.0/pipelines/{pipeline_id}/stop di API Pipelines.
Tenggang waktu untuk pembaharuan
Refresh yang berjalan lama dapat habis waktu. Tampilan termaterialisasi yang dibuat atau diperbarui setelah 14 Agustus 2025 akan menggunakan batas waktu yang terkait dengan gudang SQL yang digunakan untuk melakukan penyegaran. Jika gudang tidak memiliki batas waktu yang ditetapkan, default 2 hari akan digunakan.
Nota
Tampilan materialisasi hanya menyinkronkan batas waktu saat Anda menjalankan CREATE OR REFRESH pernyataan secara manual. Pembaruan terjadwal mempertahankan batas waktu dari yang CREATE OR REFRESHterbaru.
Anda dapat secara eksplisit mengatur batas waktu dengan STATEMENT_TIMEOUT konfigurasi di SQL Anda untuk refresh. Lihat STATEMENT_TIMEOUT.
Menghapuskan rekaman secara permanen dari tampilan materialisasi dengan vektor penghapusan yang diaktifkan
Penting
Dukungan untuk pernyataan REORG dengan tampilan terwujud tersedia dalam Pratinjau Umum.
Nota
- Menggunakan pernyataan
REORGdengan tampilan terwujud memerlukan Databricks Runtime 15.4 atau lebih. - Meskipun Anda dapat menggunakan pernyataan
REORGdengan tampilan materialisasi apa pun, itu hanya diperlukan saat menghapus catatan dari tampilan materialisasi dengan vektor penghapusan sudah diaktifkan. Perintah tidak akan berpengaruh ketika digunakan pada tampilan materialisasi yang tidak memiliki vektor penghapusan yang diaktifkan.
Untuk menghapus rekaman secara fisik dari penyimpanan yang mendasari untuk materialized view dengan vektor penghapusan diaktifkan, seperti untuk kepatuhan GDPR, langkah-langkah tambahan perlu dilakukan untuk memastikan bahwa operasi VACUUM dijalankan pada data materialized view.
Untuk menghapus rekaman secara fisik:
- Jalankan pernyataan
REORGterhadap tampilan materialisasi dengan menentukan parameterAPPLY (PURGE). Contoh:REORG TABLE <materialized-view-name> APPLY (PURGE);. Lihat REORG TABLE. - Tunggu hingga periode retensi data tampilan terwujud berlalu. Periode retensi data default adalah tujuh hari, tetapi dapat dikonfigurasi dengan properti tabel
delta.deletedFileRetentionDuration. Lihat Mengonfigurasi retensi data untuk kueri perjalanan lintas waktu. -
REFRESHtampilan terwujud. Lihat Refresh tampilan materialisasi. Dalam waktu 24 jam setelah operasiREFRESH, tugas pemeliharaan pipa saluran, termasuk operasiVACUUMyang dibutuhkan untuk memastikan catatan dihapus secara permanen, dieksekusi secara otomatis.
Menghilangkan tampilan materialisasi
Nota
Untuk mengirimkan perintah untuk menghilangkan tampilan materialisasi, Anda harus menjadi pemilik tampilan materialisasi tersebut atau memiliki hak istimewa MANAGE pada tampilan materialisasi.
Untuk menghilangkan tampilan materialisasi, gunakan pernyataan DROP VIEW. Untuk mengirimkan DROP pernyataan, Anda dapat menggunakan editor SQL di UI Azure Databricks, Databricks SQL CLI, atau Databricks SQL API. Contoh berikut menghilangkan tampilan materialisasi mv1 :
DROP MATERIALIZED VIEW mv1;
Anda juga dapat menggunakan Catalog Explorer untuk menghilangkan tampilan materialisasi.
- Klik
Katalog di bilah samping.
- Di pohon Catalog Explorer di sebelah kiri, buka katalog dan pilih skema tempat tampilan materialisasi Anda berada.
- Buka item Tabel di bawah skema yang Anda pilih, dan klik tampilan hasil materialisasi.
- Pada
, pilih Hapus.
Memahami biaya tampilan materialisasi
Karena tampilan materialisasi berjalan dalam komputasi tanpa server, di luar komputasi yang Anda siapkan untuk buku catatan atau pekerjaan, Anda mungkin bertanya-tanya cara memahami biaya yang terkait dengannya. Penggunaan tampilan materialisasi ditelusuri berdasarkan konsumsi DBU. Untuk mempelajari lebih lanjut, lihat Apa konsumsi DBU dari tampilan materialisasi atau tabel streaming?
Mengaktifkan pelacakan baris
Untuk mendukung refresh bertahap dari tabel Delta, pelacakan baris harus diaktifkan untuk tabel sumber tersebut. Jika Anda membuat ulang tabel sumber, Anda harus mengaktifkan kembali pelacakan baris.
Contoh berikut menunjukkan cara mengaktifkan pelacakan baris pada tabel:
ALTER TABLE source_table SET TBLPROPERTIES (delta.enableRowTracking = true);
Untuk detail selengkapnya, lihat Menggunakan pelacakan baris untuk tabel Delta
Batasan
- Untuk persyaratan komputasi dan ruang kerja, lihat Persyaratan.
- Untuk persyaratan refresh inkremental, lihat Refresh inkremental untuk tampilan materialisasi.
- Tampilan terwujud tidak mendukung kolom identitas atau kunci pengganti.
- Jika tampilan materialisasi menggunakan agregat jumlah atas kolom
NULL-mampu dan hanyaNULLnilai yang tetap ada di kolom tersebut, nilai agregat hasil tampilan materialisasi adalah nol bukanNULL. - Anda tidak dapat membaca aliran data perubahan dari tampilan materialisasi.
- Kueri perjalanan waktu tidak didukung pada tampilan yang dimaterialisasi.
- File dasar yang mendukung tampilan materialisasi mungkin menyertakan data dari tabel upstream (termasuk kemungkinan informasi pribadi yang dapat diidentifikasi) yang tidak muncul dalam definisi tampilan materialisasi. Data ini secara otomatis ditambahkan ke penyimpanan dasar untuk mendukung penyegaran tampilan materialisasi secara inkremental. Karena file dasar dari tampilan materialisasi mungkin berisiko mengekspos data dari tabel hulu yang bukan bagian dari skema tampilan materialisasi, Databricks merekomendasikan untuk tidak berbagi penyimpanan dasar dengan konsumen hilir yang tidak tepercaya. Misalnya, misalkan definisi tampilan materialisasi menyertakan
COUNT(DISTINCT field_a)klausul. Meskipun definisi tampilan materialisasi hanya menyertakan klausul agregatCOUNT DISTINCT, file dasar akan berisi daftar nilai aktualfield_a. - Anda dapat dikenakan beberapa biaya komputasi tanpa server, bahkan saat menggunakan fitur-fitur ini pada komputasi khusus.
- Jika Anda perlu menggunakan koneksi Azure Private Link untuk materialized view Anda, hubungi perwakilan Databricks Anda.
Mengakses tampilan yang sudah dimaterialisasi oleh klien eksternal
Untuk mengakses tampilan materialisasi dari klien Delta Lake atau Iceberg eksternal yang tidak mendukung API terbuka, Anda dapat menggunakan Mode Kompatibilitas. Mode Kompatibilitas membuat versi baca-saja dari tampilan materialisasi Anda yang dapat diakses oleh klien Delta Lake atau Iceberg apa pun.