MaxCompute memperkenalkan fitur Delta Live Materialized View (Delta Live MV) untuk membantu Anda membangun pipeline pembaruan inkremental yang sederhana dan mudah digunakan. Topik ini menjelaskan operasi Delta Live MV di MaxCompute.
Pendahuluan
Dibandingkan dengan tampilan materialisasi berbasis pembaruan penuh, Delta Live Materialized View menyeimbangkan kesegaran data dan biaya komputasi. Fitur ini memanfaatkan hasil komputasi yang telah ada dan menggunakan algoritma komputasi inkremental cerdas untuk mengurangi biaya komputasi sekaligus meningkatkan kesegaran data.
Arsitektur

Manfaat utama
Fitur Delta Live MV di MaxCompute memberikan manfaat berikut:
SQL deklaratif, bebas maintenance, dan pelapisan gudang data otomatis.
Arsitektur gudang data yang disederhanakan. Logika dan engine komputasi tunggal mendukung komputasi inkremental maupun penuh, menyediakan latensi rendah dan throughput tinggi secara bersamaan.
Hemat biaya. Menyeimbangkan kesegaran data dan biaya, serta menangani pemrosesan ETL inkremental dan penuh secara terpadu secara efisien.
Kasus penggunaan
Fitur Delta Live MV cocok untuk skenario berikut:
Pemrosesan hampir real-time untuk beban kerja offline
Mengubah gudang data T+1 menjadi gudang data hampir real-time dengan latensi tingkat menit.
Pemrosesan inkremental dan penuh terpadu
Komputasi inkremental hampir real-time pada partisi hari ini: Ideal untuk skenario yang membutuhkan kesegaran data tinggi dan komputasi hemat biaya.
(Opsional) Backfill partisi historis: Mengarsipkan atau memperbaiki data untuk analisis data skala besar.
Dukungan komprehensif untuk komputasi inkremental dengan berbagai jenis logika SQL, termasuk operator SQL umum berikut:
INNER JOIN dua aliran
OUTER JOIN dua aliran (LEFT/RIGHT)
Fungsi AGGREGATE apa pun (kecuali user-defined aggregate functions (UDAFs)), termasuk fungsi tanpa klausa GROUP BY.
WINDOW
TableFunctionScan
UNION ALL
FILTER/Project
SUBQUERY
Prasyarat
Anda telah membuat proyek MaxCompute.
Change Data Capture (CDC) diaktifkan pada tabel sumber. Jenis tabel sumber berikut didukung:
Delta Table dengan fitur CDC diaktifkan.
Delta Live MV lain. CDC diaktifkan secara default untuk Delta Live MV.
Delta Live MV tidak dapat menggunakan komputasi non-deterministik, seperti fungsi RAND atau user-defined functions (UDFs).
Buat Delta Live MV
Sintaks
CREATE MATERIALIZED VIEW [IF NOT EXISTS][<project_name>.]<mv_name>
[LIFECYCLE <days>] -- Menentukan siklus hidup.
[BUILD DEFERRED] -- Hanya membuat skema tabel tanpa mengisi data saat pembuatan.
[(<col_name> [COMMENT <col_comment>],...)] -- Menentukan komentar kolom.
[DISABLE REWRITE] -- Menentukan apakah tampilan digunakan untuk penulisan ulang kueri.
[COMMENT <table comment>] -- Menentukan komentar tabel.
[PARTITIONED ON/BY (<col_name> [, <col_name>, ...]) -- Membuat tampilan yang di-materialisasi sebagai tabel partisi.
[REFRESH EVERY <num> MINUTES/HOURS/DAYS] -- Mengatur interval penyegaran terjadwal.
TBLPROPERTIES(
"refresh_mode"="incremental"
[,"enable_auto_refresh"="true"] -- Menentukan apakah auto-refresh diaktifkan.
[,"refresh_cron"="xx"] -- Menggunakan ekspresi cron untuk mengonfigurasi jadwal penyegaran berbasis interval, waktu tetap, atau campuran.
[,"refresh_job_settings"="xx"]
)
AS <select_statement>;Sintaks Delta Live MV sebagian besar kompatibel dengan sintaks tampilan materialisasi standar, dengan perbedaan utama berikut:
Anda tidak dapat membuat Delta Live MV sebagai tabel terkluster.
Anda tidak dapat mengatur parameter
enable_auto_substituteke true untuk Delta Live MV. Delta Live MV merupakan jenis tampilan materialisasi asinkron, sehingga data dari tabel dasar mungkin bukan versi terbaru. Hal ini bertentangan dengan perilaku yang diharapkan ketikaenable_auto_substitutediatur ke true.
Parameter
Parameter | Wajib | Deskripsi |
project_name | Tidak | Nama proyek. |
mv_name | Ya | Nama Delta Live MV. |
LIFECYCLE <days> | Tidak | Menentukan siklus hidup data. |
BUILD DEFERRED | Tidak | Menentukan bahwa hanya skema tabel yang dibuat, tanpa mengisi data saat pembuatan. |
col_name | Tidak | Nama kolom. |
col_comment | Tidak | Komentar kolom. |
DISABLE REWRITE | Tidak | Mencegah tampilan digunakan untuk penulisan ulang kueri. |
table comment | Tidak | Komentar tabel. |
REFRESH EVERY <num> MINUTES/HOURS/DAYS | Tidak | Menentukan interval penyegaran terjadwal. Nilai minimum adalah 1 menit. |
enable_auto_refresh | Tidak | Menentukan apakah auto-refresh diaktifkan.
|
refresh_mode | Tidak | Mode penyegaran.
|
refresh_cron | Tidak | Menentukan ekspresi Cron untuk mengatur frekuensi penyegaran. Anda dapat mengonfigurasi jadwal penyegaran berbasis interval, waktu tetap, atau campuran. Nilainya berupa string dalam format QUARTZ Cron. Untuk informasi selengkapnya, lihat Contoh ekspresi cron. Contoh: |
refresh_job_settings | Tidak |
|
select_statement | Ya | Kueri SQL. |
Contoh
Contoh 1: Buat Delta Live MV sederhana
Menentukan Delta Live MV bernama mv1 yang melakukan penyegaran inkremental secara otomatis setiap 5 menit. Tabel sumber adalah Delta Table dengan CDC diaktifkan.
CREATE MATERIALIZED VIEW IF NOT EXISTS mv1
REFRESH EVERY 5 MINUTES
TBLPROPERTIES("enable_auto_refresh"="true", "refresh_mode"="incremental")
AS
SELECT name, COUNT(*) FROM source GROUP BY name;Contoh 2: Buat Delta Live MV yang dioptimalkan
SET odps.task.major.version=sql_flighting_dlmv;
CREATE MATERIALIZED VIEW IF NOT EXISTS part_dlmv_department
PRIMARY KEY(dept_id) -- Kolom kunci primer `dept_id` dapat disimpulkan dari logika SQL berdasarkan kunci primer tabel dasar.
-- Deklarasi eksplisit biasanya tidak diperlukan. Namun, karena MV partisi saat ini hanya mendukung mode BUILD DEFERRED,
-- yang tidak mendukung inferensi kunci otomatis, Anda harus mendeklarasikan kunci primer secara eksplisit.
LIFECYCLE 10
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES('refresh_mode'='incremental',
'refresh_job_settings'='set odps.task.major.version=sql_flighting_dlmv;')
AS
SELECT *, get_setting('odps.custom.setting.department.pt') AS pt FROM t_department; Persyaratan kunci primer untuk penyegaran MV
Saat ini, penyegaran tampilan materialisasi memerlukan MV memiliki kunci primer (PK). Berbeda dengan Delta Table PK, MV dihasilkan dari logika SQL. Apakah Anda perlu mendeklarasikan kunci primer secara eksplisit saat membuat MV bergantung pada situasi berikut:
Ketika kunci primer dapat disimpulkan dari logika SQL
Sebagai contoh, jika pernyataan SQL berisi klausa GROUP BY key, kunci primer MV secara otomatis disimpulkan sebagai key dan tidak perlu dideklarasikan secara eksplisit. Anda dapat menjalankan perintah
DESC EXTENDED mvName;untuk melihat kolom kunci primer yang disimpulkan.Ketika kunci primer tidak dapat disimpulkan dari logika SQL
Metode 1: Ubah logika SQL MV dengan menambahkan klausa
GROUP BYagar inferensi otomatis dimungkinkan.Metode 2: Deklarasikan kunci primer secara eksplisit. Perhatikan bahwa data harus memenuhi batasan unik. Sistem melakukan pemeriksaan upaya terbaik untuk keunikan data selama setiap penyegaran inkremental. Dukungan untuk pemeriksaan keunikan kunci primer selama fase build awal akan ditingkatkan di rilis mendatang.
Persyaratan khusus untuk MV partisi
MV partisi saat ini hanya mendukung mode
BUILD DEFERRED. Dalam mode ini, inferensi kunci primer otomatis tidak didukung. Oleh karena itu, Anda harus mendeklarasikan kunci primer secara eksplisit.
Terpartisi Delta Live MV
Skenario 1: Gunakan Delta Live MV partisi untuk merepresentasikan data inkremental hari ini dan data historis lengkap
SET odps.task.major.version=sql_flighting_dlmv;
CREATE MATERIALIZED VIEW IF NOT EXISTS part_dlmv_department
PRIMARY KEY(dept_id) -- Kolom kunci primer `dept_id` dapat disimpulkan dari logika SQL berdasarkan kunci primer tabel dasar.
-- Deklarasi eksplisit biasanya tidak diperlukan. Namun, karena MV Delta Live partisi saat ini hanya mendukung mode BUILD DEFERRED,
-- yang tidak mendukung inferensi kunci otomatis, Anda harus mendeklarasikan kunci primer secara eksplisit.
LIFECYCLE 10
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES('refresh_mode'='incremental',
'refresh_job_settings'='set odps.task.major.version=sql_flighting_dlmv;')
AS
-- t_department adalah tabel ingestion hampir real-time yang menggambarkan data inkremental untuk hari ini.
SELECT *, get_setting('odps.custom.setting.department.pt') AS pt FROM t_department;
UNION ALL
-- history_t_department adalah tabel partisi historis yang berisi semua data historis.
SELECT * FROM history_t_department;Skenario 2: Simpulkan kunci primer Delta Live MV dengan menggunakangroup by key
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
CREATE MATERIALIZED VIEW dlmv_pt
PRIMARY KEY(value) -- Kolom kunci primer `value` dapat disimpulkan dari logika SQL (GROUP BY value).
-- Deklarasi eksplisit biasanya tidak diperlukan. Namun, karena MV Delta Live partisi saat ini hanya mendukung mode BUILD DEFERRED,
-- yang tidak mendukung inferensi kunci otomatis, Anda harus mendeklarasikan kunci primer secara eksplisit.
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS SELECT *, get_setting('odps.custom.setting.dlmv_pt.pt') AS pt FROM (SELECT value, MAX(value2) FROM dlmv_base_table GROUP BY value) t;Skenario 3: Simpulkan kunci primer Delta Live MV dari kunci primer tabel dasar
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
CREATE MATERIALIZED VIEW dlmv_pt
PRIMARY KEY(key) -- Kolom kunci primer `key` dapat disimpulkan dari logika SQL (diturunkan dari PK tabel dasar).
-- Deklarasi eksplisit biasanya tidak diperlukan. Namun, karena MV Delta Live partisi saat ini hanya mendukung mode BUILD DEFERRED,
-- yang tidak mendukung inferensi kunci otomatis, Anda harus mendeklarasikan kunci primer secara eksplisit.
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS
SELECT key, value, value2, get_setting('odps.custom.setting.dlmv_pt.pt') as pt FROM dlmv_base_table;Skenario 4: Kunci primer Delta Live MV tidak dapat disimpulkan
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
# 1. Deklarasikan kolom PK secara eksplisit.
CREATE MATERIALIZED VIEW dlmv_pt
PRIMARY KEY(value) -- PK tidak dapat disimpulkan dari logika SQL, tetapi Anda tahu data memenuhi keunikan PK. PK harus dideklarasikan secara eksplisit.
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS
SELECT value, value2, get_setting('odps.custom.setting.dlmv_pt.pt') as pt FROM dlmv_base_table;
# 2. Ubah logika SQL agar inferensi PK dimungkinkan.
-- Jika Anda tidak dapat menjamin keunikan kolom 'value', ubah logika dengan klausa GROUP BY, seperti ditunjukkan di bawah:
CREATE MATERIALIZED VIEW dlmv_pt
PRIMARY KEY(value) -- PK `value` kini dapat disimpulkan dari logika SQL (GROUP BY value).
-- Deklarasi eksplisit biasanya tidak diperlukan. Namun, karena MV Delta Live partisi saat ini hanya mendukung mode BUILD DEFERRED,
-- yang tidak mendukung inferensi kunci otomatis, Anda harus mendeklarasikan kunci primer secara eksplisit.
BUILD DEFERRED
PARTITIONED BY (pt)
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS SELECT value, MAX(value2), get_setting('odps.custom.setting.dlmv_pt.pt') as pt FROM dlmv_base_table GROUP BY value;Tidak dipartisi Delta Live MV
Skenario 1: Simpulkan kunci primer Delta Live MV dengan menggunakangroup by key
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
CREATE MATERIALIZED VIEW dlmv
-- PRIMARY KEY(value) -- PK `value` dapat disimpulkan dari logika SQL (GROUP BY value), sehingga tidak perlu deklarasi eksplisit.
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS SELECT value, MAX(value2) FROM dlmv_base_table GROUP BY value;Skenario 2: Simpulkan kunci primer Delta Live MV dari kunci primer tabel dasar
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
CREATE MATERIALIZED VIEW dlmv
-- PRIMARY KEY(key) -- PK `key` dapat disimpulkan dari logika SQL (diturunkan dari PK tabel dasar), sehingga tidak perlu deklarasi eksplisit.
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS
SELECT key, value, value2 FROM dlmv_base_table;Skenario 3: Kunci primer Delta Live MV tidak dapat disimpulkan
-- PK Delta Table
CREATE TABLE dlmv_base_table(
key STRING NOT NULL PRIMARY KEY,
value BIGINT,
value2 BIGINT
)
STORED AS ALIORC
TBLPROPERTIES (
'transactional' = 'true',
'cdc.insert.into.passthrough.enable' = 'true',
'acid.cdc.mode.enable' = 'true',
'acid.cdc.build.async' = 'false'
);
# 1. Deklarasikan kolom PK secara eksplisit.
CREATE MATERIALIZED VIEW dlmv
PRIMARY KEY(value) -- PK tidak dapat disimpulkan dari logika SQL, tetapi Anda tahu data memenuhi keunikan PK. PK harus dideklarasikan secara eksplisit.
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS
SELECT value, value2 FROM dlmv_base_table;
# 2. Ubah logika SQL agar inferensi PK dimungkinkan.
-- Jika Anda tidak dapat menjamin keunikan kolom 'value', ubah logika dengan klausa GROUP BY, seperti ditunjukkan di bawah:
CREATE MATERIALIZED VIEW dlmv
-- PRIMARY KEY(value) -- PK `value` kini dapat disimpulkan dari logika SQL (GROUP BY value), sehingga tidak perlu deklarasi eksplisit.
TBLPROPERTIES (
'refresh_mode' = 'incremental',
'enable_auto_refresh' = 'true'
)
AS SELECT value, MAX(value2) FROM dlmv_base_table GROUP BY value;Contoh 3: Segarkan satu partisi MV
Saat membuat Delta Live MV partisi, Anda harus menyertakan kata kunci BUILD DEFERRED, yang hanya melakukan operasi DDL.
-- Buat Delta Live MV.
CREATE MATERIALIZED VIEW dlmv_pt
PRIMARY KEY(value) BUILD DEFERRED PARTITIONED BY (ds) TBLPROPERTIES
('refresh_mode'='incremental', 'enable_auto_refresh'='true')
AS SELECT value, AVG(value2), ds FROM dlmv_pt_src GROUP BY value, ds;
-- Segarkan satu partisi.
ALTER MATERIALIZED VIEW dlmv_pt REBUILD PARTITION(ds='20250730');Untuk informasi selengkapnya tentang penyegaran Delta Live MV, lihat Penyegaran manual.
Contoh 4: Buat Delta Live MV berparameter
Anda dapat menggunakan definisi berparameter untuk memigrasikan pekerjaan partisi offline ke pekerjaan inkremental.
Fungsi
get_settingmengambil nilai parameter yang diatur dalam Session Flags. Nama parameter harus diawali denganodps.custom.setting.Pada pekerjaan offline tradisional, ganti variabel seperti
${biz_date}denganget_setting(odps.custom.setting.xx)untuk memparameterisasi definisi.Tambahkan Session Flag
set odps.custom.setting.xx=yysebelum pernyataan penyegaran untuk Delta Live MV.Selama waktu proses, pengoptimal MaxCompute secara otomatis mengganti
get_setting(odps.custom.setting.xx)dalam Delta Live MV denganyy.
Berikut adalah contohnya:
-- Buat Delta Live MV.
CREATE MATERIALIZED VIEW mv1
BUILD DEFERRED -- Hanya melakukan operasi DDL dan tidak mengisi data.
PARTITIONED BY (ds)
REFRESH EVERY 5 minutes
TBLPROPERTIES("enable_auto_refresh"="true", "refresh_mode"="incremental")
AS
SELECT A.* FROM A JOIN B ON A.c1 = B.c1
AND A.ds=get_setting('odps.custom.setting.bizdate.a')
AND B.ds=get_setting('odps.custom.setting.bizdate.b');
-- Logika penyegaran. DataWorks secara otomatis mengganti ${biz_date} dan ${yesterday} selama penjadwalan.
SET odps.custom.setting.bizdate.a=${biz_date};
SET odps.custom.setting.bizdate.b=${yesterday};
ALTER MATERIALIZED VIEW mv1 REBUILD PARTITION(ds=${biz_date});Kelola Delta Live MV
Hapus Delta Live MV
DROP MATERIALIZED VIEW [IF EXISTS] [<project_name>.]<mv_name>;Penyegaran manual
Anda dapat menyegarkan Delta Live MV secara manual. Hanya penyegaran satu partisi yang didukung. Sintaksnya sama dengan tampilan materialisasi standar:
ALTER MATERIALIZED VIEW [<project_name>.]<mv_name>
REBUILD [PARTITION(<ds>=max_pt(<table_name>),<expression1>...)];Dalam sintaks ini, ds adalah kolom partisi.
Nonaktifkan auto-refresh
Jalankan perintah berikut untuk mengubah TBLPROPERTIES tampilan materialisasi guna menonaktifkan fitur auto-refresh:
ALTER MATERIALIZED VIEW <mv_name> SET TBLPROPERTIES("enable_auto_refresh"="false");Resume auto-refresh
Jalankan perintah berikut untuk mengubah TBLPROPERTIES tampilan materialisasi guna mengaktifkan atau melanjutkan auto-refresh:
ALTER MATERIALIZED VIEW <mv_name> SET TBLPROPERTIES("enable_auto_refresh"="true");Ubah frekuensi penyegaran
Jalankan perintah berikut untuk mengubah frekuensi penyegaran Delta Live MV:
ALTER MATERIALIZED VIEW <mv_name>
SET TBLPROPERTIES("refresh_interval_minutes"="xx");Nilai minimum untuk parameter refresh_interval_minutes adalah 1. Kami menyarankan agar Anda mengatur nilai ini lebih pendek daripada siklus hidup CDC tabel dasar.
Lihat Delta Live MV
Lihat riwayat perubahan data
Jalankan perintah berikut untuk melihat riwayat perubahan data Delta Live MV:
SHOW HISTORY FOR TABLE <mv_name>;Contoh hasil:
ObjectType ObjectId ObjectName VERSION(LSN) Time Operation
TABLE d95ec7015e8b432e8e0092d01da962a9 incremental_mv 0000000000000001 2024-08-18 21:06:32 CREATE
TABLE d95ec7015e8b432e8e0092d01da962a9 incremental_mv 0000000000000002 2024-08-18 21:11:13 UPDATELihat riwayat penyegaran
Jalankan perintah berikut untuk melihat riwayat penyegaran Delta Live MV.
SELECT * FROM
Delta_Live_MV_Refresh_History(['<project_name>', '<schema_name>',]'<table_name>');Parameter
Parameter | Deskripsi |
project_name | Nama proyek. |
schema_name | Nama skema. |
table_name | Nama tabel. |
Nilai kembali
Parameter | Deskripsi |
project_name | Proyek yang berisi Delta Live MV. |
schema_name | Skema yang berisi Delta Live MV. |
name | Nama Delta Live MV. |
refresh_start_time | Waktu mulai penyegaran. |
refresh_end_time | Waktu selesai penyegaran. Jika status pekerjaan RUNNING, nilai bidang ini adalah NULL. |
instance_id | ID pekerjaan. Anda dapat menggunakan ID ini untuk mendapatkan Logview. |
duration_in_seconds | Durasi penyegaran, dalam detik. |
state | Status pekerjaan.
|
refresh_trigger | Metode yang memicu penyegaran.
|
refresh_mode | Mode penyegaran.
|
error_message | Pesan error jika penyegaran gagal. Jika penyegaran berhasil, bidang ini bernilai NULL. |
source_tables | Nama tabel dasar yang digunakan oleh Delta Live MV dan versi yang sesuai. |
numInsertedRows | Jumlah baris yang dimasukkan. |
numDeletedRows | Jumlah baris yang dihapus. |
Penagihan
Delta Live MV dikenai biaya komputasi dan penyimpanan. Metode penagihan sama dengan operasi tampilan materialisasi standar.
Biaya komputasi
Membuat atau menyegarkan Delta Live MV dapat memicu pekerjaan komputasi. Pekerjaan ini mengonsumsi sumber daya komputasi dan dikenai biaya komputasi. Aturan penagihan sama dengan pekerjaan SQL standar.
Jika fitur auto-refresh mendeteksi tidak ada perubahan data, pekerjaan penyegaran tidak dipicu dan tidak ada biaya yang dikenakan.
Menempatkan Delta Live MV dalam proyek khusus mempermudah pelacakan pekerjaan auto-refresh beserta konsumsi sumber daya dan biayanya.
Biaya penyimpanan
Penyimpanan untuk Delta Live MV ditagih dengan cara yang sama seperti tampilan materialisasi standar atau tabel biasa.
Untuk operator tertentu, Delta Live MV dapat menggunakan algoritma komputasi inkremental berbasis status, yang menghasilkan tabel status internal yang mengonsumsi ruang penyimpanan tambahan.
Delta Live MV memerlukan overhead penyimpanan untuk CDC inkremental dan Time Travel. Overhead penyimpanan ini mirip dengan Delta Table standar.