Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
REFRESH MATERIALIZED VIEW
Aggiorna una vista materializzata
Quando crei una vista materializzata, il suo contenuto riflette lo stato della tabella o delle tabelle del database sottostante in quel momento. I dati nella vista materializzata rimangono invariati, anche quando le applicazioni apportano modifiche ai dati nelle tabelle sottostanti.
Per aggiornare i dati in una vista materializzata, è possibile usare l'istruzione REFRESH MATERIALIZED
VIEW
in qualsiasi momento. Eseguendo questa istruzione, Amazon Redshift identifica le modifiche apportate nella tabella o nelle tabelle di base e quindi applica tali modifiche alla vista materializzata.
Per ulteriori informazioni sulle viste materializzate, consultare Viste materializzate in Amazon Redshift.
Sintassi
REFRESH MATERIALIZED VIEW mv_name
Parametri
- mv_name
-
Il nome della vista materializzata da aggiornare.
Note per l'utilizzo
Solo il proprietario di una vista materializzata può eseguire un'operazione REFRESH MATERIALIZED
VIEW
su tale vista materializzata. Inoltre, il proprietario deve disporre del privilegio SELECT sulle tabelle di base sottostanti per eseguire correttamente il comando REFRESH
MATERIALIZED VIEW
.
Il comando REFRESH MATERIALIZED VIEW
viene eseguito come transazione propria. La semantica delle transazioni Amazon Redshift viene seguita per determinare quali dati dalle tabelle di base sono visibili al comando REFRESH
o quando le modifiche apportate dal comando REFRESH
sono rese visibili ad altre transazioni in esecuzione in Amazon Redshift.
-
Nel caso di viste materializzate incrementali,
REFRESH MATERIALIZED VIEW
utilizza solo le righe delle tabelle di base per le quali è già stato eseguito il commit. Pertanto, se l'operazione di aggiornamento viene eseguita dopo un'istruzione DML (Data Manipolation Language) nella stessa transazione, le modifiche di tale istruzione DML non sono visibili per l'aggiornamento. -
Per un aggiornamento completo di una vista materializzata,
REFRESH MATERIALIZED VIEW
vede tutte le righe della tabella di base visibili alla transazione di aggiornamento, in base alla semantica delle transazioni Amazon Redshift usuale. -
A seconda del tipo di argomento di input, Amazon Redshift supporta ancora l'aggiornamento incrementale per le viste materializzate per le seguenti funzioni con tipi di argomenti di input specifici: DATE (timestamp), DATE_PART (data, ora, intervallo, time-tz), DATE_TRUNC (timestamp, intervallo).
-
L'aggiornamento incrementale è supportato in una vista materializzata in cui la tabella di base si trova in un'unità di condivisione dati.
Alcune operazioni in Amazon Redshift interagiscono con le viste materializzate. Alcune di queste operazioni potrebbero forzare un'operazione REFRESH MATERIALIZED VIEW
per ricalcolare completamente la vista materializzata, anche se la query che definisce la vista materializzata utilizza solo le funzionalità SQL idonee per l'aggiornamento incrementale. Ad esempio:
-
Le operazioni vacuum in background potrebbero essere bloccate se le viste materializzate non vengono aggiornate. Dopo un periodo di soglia definito internamente, è possibile eseguire l'operazione di vacuum. Con l'operazione vacuum, tutte le viste materializzate dipendenti vengono contrassegnate come da rielaborare al successivo aggiornamento (anche se sono di tipo incrementale). Per informazioni su VACUUM, vedere VACUUM. Per ulteriori informazioni sugli eventi e le modifiche allo stato, consultare STL_MV_STATE.
-
Alcune operazioni avviate dall'utente sulle tabelle di base impongono che una vista materializzata venga rielaborata completamente alla successiva esecuzione dell'operazione REFRESH. Esempi di tali operazioni sono un VACUUM richiamato manualmente, un ridimensionamento classico, un'operazione ALTER DISTKEY, un'operazione ALTER SORTKEY e un'operazione di troncatura. Le operazioni automatiche in alcuni casi possono anche comportare il ricalcolo completo di una vista materializzata alla successiva esecuzione di un'operazione REFRESH. Ad esempio, un'operazione di eliminazione automatica del vuoto può causare un ricalcolo completo. Per ulteriori informazioni sugli eventi e le modifiche allo stato, consultare STL_MV_STATE.
Aggiornamento incrementale per le viste materializzate in un datashare
Amazon Redshift supporta l'aggiornamento automatico e incrementale per le viste materializzate in un datashare consumer quando le tabelle di base vengono condivise. L'aggiornamento incrementale è un'operazione in cui Amazon Redshift identifica le modifiche nella tabella o nelle tabelle di base avvenute dopo l'aggiornamento precedente e aggiorna solo i record corrispondenti nella vista materializzata. Per ulteriori informazioni su questo comportamento, consulta CREATE MATERIALIZED VIEW.
Limitazioni per l'aggiornamento incrementale
Amazon Redshift attualmente non supporta l'aggiornamento incrementale per le viste materializzate definite con una query utilizzando uno dei seguenti elementi SQL:
-
OUTER JOIN (RIGHT, LEFT o FULL).
-
Operazioni insiemistiche: UNION, INTERSECT, EXCEPT, MINUS
-
UNION ALL quando si verifica in una query secondaria e una funzione di aggregazione o una clausola GROUP BY è presente nella query.
-
Le funzioni di aggregazione MEDIAN, PERCENTILE_CONT, MAX, MIN, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE e le funzioni di aggregazione bitwise.
Nota
Sono supportate le funzioni di aggregazione COUNT, SUM, MIN, MAX e AVG.
-
Funzioni di aggregazione di tipo DISTINCT, come DISTINCT COUNT, DISTINCT SUM, ecc.
-
Funzioni finestra
-
Query che utilizza tabelle temporanee per l'ottimizzazione delle query, ad esempio l'ottimizzazione delle espressioni secondarie comuni.
-
Sottoquery
-
Tabelle esterne che fanno riferimento ai seguenti formati nella query che definisce la vista materializzata.
-
Delta Lake
-
Hudi
L'aggiornamento incrementale è supportato per le viste materializzate definite utilizzando formati diversi da quelli sopra elencati. Per ulteriori informazioni, consulta Visualizzazioni materializzate su tabelle di data lake esterne in Amazon Redshift Spectrum.
-
Funzioni mutabili, come le funzioni data-ora, funzioni RANDOM e funzioni definite dall'utente non stabili.
Per le limitazioni relative all'aggiornamento incrementale per le integrazioni zero-ETL, consulta Considerazioni sull'utilizzo di integrazioni zero-ETL con Amazon Redshift.
Per ulteriori informazioni sulle limitazioni della vista materializzata, incluso l'effetto di operazioni in background come VACUUM sulle operazioni di aggiornamento della vista materializzata, consulta Note per l'utilizzo.
Esempi
Nell'esempio seguente viene eseguito l'aggiornamento della vista materializzata tickets_mv
.
REFRESH MATERIALIZED VIEW tickets_mv;