Operazioni di aggiornamento per le viste materializzate
Importante
Le viste materializzate in Databricks SQL sono disponibili in anteprima pubblica.
Le viste materializzate sono oggetti di database che contengono i risultati di una query SQL su una o più tabelle di base. Alcune viste materializzate possono essere aggiornate in modo incrementale, propagando automaticamente e in modo incrementale le modifiche dalle tabelle di base.
Questo articolo illustra i tipi di operazioni di aggiornamento che è possibile applicare alle viste materializzate e identifica le operazioni, le parole chiave e le clausole SQL che supportano l'aggiornamento incrementale.
Nota
Per creare e usare viste materializzate, l'area di lavoro deve soddisfare i requisiti.
Tipi di aggiornamento
Le operazioni di aggiornamento sono uno di questi tipi:
- Aggiornamento incrementale: un aggiornamento incrementale elabora le modifiche apportate ai dati sottostanti dopo l'ultimo aggiornamento e quindi aggiunge tali dati alla tabella. A seconda delle tabelle di base e delle operazioni incluse, è possibile aggiornare in modo incrementale solo determinati tipi di viste materializzate.
- Aggiornamento completo: Un aggiornamento completo tronca la tabella e rielabora tutti i dati disponibili nell'origine con la definizione più recente. Non è consigliabile eseguire aggiornamenti completi sulle origini che non mantengono l'intera cronologia dei dati o hanno brevi periodi di conservazione, ad esempio Kafka, perché l'aggiornamento completo tronca i dati esistenti. Potrebbe non essere possibile recuperare i dati obsoleti se i dati non sono più disponibili nell'origine.
Quando le viste materializzate vengono create usando una pipeline di SQL warehouse o tabelle live Deltaless serverless, vengono aggiornate automaticamente in modo incrementale se le query sono supportate. Se una query include espressioni non supportate per un aggiornamento incrementale, verrà eseguito un aggiornamento completo, con conseguenti costi aggiuntivi. Per determinare il tipo di aggiornamento usato, consultare Determinare se viene usato un aggiornamento incrementale o completo.
Supporto per l'aggiornamento incrementale della visualizzazione materializzata
La tabella seguente elenca il supporto per l'aggiornamento incrementale in base alla parola chiave o alla clausola SQL. Le parole chiave e le clausole contrassegnate con una stella (*) richiedono l'abilitazione del rilevamento delle righe per l'aggiornamento incrementale. Consultare Usare il rilevamento delle righe per le tabelle Delta.
Parola chiave o clausola SQL | Supporto per l’aggiornamento incrementale |
---|---|
SELECT espressioni* |
Sì, sono supportate espressioni che includono funzioni predefinite deterministiche e funzioni definite dall'utente non modificabili. |
GROUP BY |
Sì |
WITH |
Sì, le espressioni di tabella comuni sono supportate. |
UNION ALL * |
Sì |
FROM |
Le tabelle di base supportate includono tabelle Delta, viste materializzate e tabelle di streaming. |
WHERE , HAVING * |
Le clausole di filtro, ad esempio WHERE e HAVING , sono supportate. |
INNER JOIN * |
Sì |
LEFT OUTER JOIN |
Sì |
FULL OUTER JOIN |
Sì |
RIGHT OUTER JOIN |
Sì |
OVER |
Sì. Le colonne PARTITION_BY devono essere specificate per l'incrementalizzazione nelle funzioni finestra. |
QUALIFY |
Sì |
EXPECTATIONS |
No. Le viste materializzate che usano le aspettative vengono sempre aggiornate completamente. |
Nota
Le funzioni non deterministiche, ad esempio CURRENT_TIMESTAMP
, non sono supportate.