Monitorare le viste materializzate
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Monitorare l'integrità della vista materializzata nei modi seguenti:
- Monitorare le metriche di visualizzazione materializzate nella portale di Azure.
- La metrica
MaterializedViewAgeSeconds
relativa all'età della visualizzazione materializzata deve essere usata per monitorare l'aggiornamento della visualizzazione. Questa deve essere la metrica primaria da monitorare.
- La metrica
- Monitorare la
IsHealthy
proprietà restituita da.show materialized-view
. - Verificare la presenza di errori tramite
.show materialized-view failures
.
Nota
La materializzazione non ignora mai i dati, anche se si verificano errori costanti. La vista è sempre garantita di restituire lo snapshot più aggiornato della query, in base a tutti i record nella tabella di origine. Gli errori costanti riducono significativamente le prestazioni delle query, ma non causano risultati errati nelle query di visualizzazione.
Risoluzione dei problemi relativi alle viste materializzate non integre
La MaterializedViewHealth
metrica indica se una visualizzazione materializzata è integra. Prima che una vista materializzata diventi non integra, la MaterializedViewAgeSeconds
sua età, annotata dalla metrica, aumenta gradualmente.
Una vista materializzata può diventare non integra per uno o tutti i motivi seguenti:
- Il processo di materializzazione non riesce. La metrica MaterializedViewResult e il
.show materialized-view failures
comando consentono di identificare la causa radice dell'errore. - Il sistema potrebbe aver disabilitato automaticamente la vista materializzata, a causa delle modifiche apportate alla tabella di origine. È possibile verificare se la visualizzazione è disabilitata controllando la
IsEnabled
colonna restituita dal.show materialized-view
comando . Per altri dettagli, vedere limitazioni delle viste materializzate e problemi noti - Il database non dispone di capacità sufficiente per materializzare tutti i dati in ingresso in tempo. In questo caso, l'esecuzione potrebbe non verificarsi errori. Tuttavia, l'età della visualizzazione aumenta gradualmente, poiché non è in grado di tenere il passo con la frequenza di inserimento. Potrebbero esserci diverse cause radice per questa situazione:
- Sono presenti più viste materializzate nel database e il database non ha capacità sufficiente per eseguire tutte le viste. Per modificare le impostazioni predefinite per il numero di viste materializzate eseguite contemporaneamente, vedere Criteri di capacità di visualizzazione materializzata.
- La materializzazione è lenta perché i dati appena inseriti si intersecano con una grande parte della vista e sono presenti molti record da aggiornare in ogni ciclo di materializzazione. Per altre informazioni sul motivo per cui influisce sulle prestazioni della visualizzazione, vedere come funzionano le viste materializzate.
Metrica MaterializedViewResult
La MaterializedViewResult
metrica fornisce informazioni sul risultato di un ciclo di materializzazione e può essere usata per identificare i problemi nello stato di integrità della visualizzazione materializzata. La metrica include e Database
MaterializedViewName
e una Result
dimensione.
La Result
dimensione può avere uno dei valori seguenti:
Operazione riuscita: materializzazione completata correttamente.
SourceTableNotFound: tabella di origine della vista di materializzazione eliminata. Di conseguenza, la vista materializzata viene disabilitata automaticamente.
SourceTableSchemaChange: lo schema della tabella di origine è cambiato in modo che non sia compatibile con la definizione della vista materializzata (la query di visualizzazione materializzata non corrisponde allo schema della vista materializzata). Di conseguenza, la vista materializzata viene disabilitata automaticamente.
InsufficientCapacity: il database non dispone di capacità sufficiente per materializzare la vista materializzata. Ciò può indicare la capacità di inserimento mancante o la capacità delle viste materializzate mancanti. Gli errori di capacità insufficienti possono essere temporanei, ma in caso di ripetizione, è consigliabile aumentare la capacità del database o aumentare la capacità pertinente nei criteri.
InsufficientResources: il database non dispone di risorse sufficienti (CPU/memoria) per materializzare la vista materializzata. Questo errore può essere temporaneo, ma se si riprova a ridimensionare o aumentare il database.
- Se il processo di materializzazione raggiunge i limiti di memoria, è possibile aumentare i limiti del gruppo di carico di lavoro delle visualizzazioni $materialized per supportare più memoria o CPU per il processo di materializzazione da utilizzare.
Ad esempio, il comando seguente modificherà il gruppo di carico di lavoro viste materializzate in modo da usare un massimo di 64 gigabyte (GB) di memoria per nodo durante la materializzazione (il valore predefinito è 15 GB):
.alter-merge workload_group ['$materialized-views'] ``` { "RequestLimitsPolicy": { "MaxMemoryPerQueryPerNode": { "Value": 68719241216 } } } ```
Nota
MaxMemoryPerQueryPerNode non può essere impostato su più del 50% della memoria totale di ogni nodo.
Viste materializzate nei database follower
Le viste materializzate possono essere definite nei database di follower. Tuttavia, il monitoraggio di queste viste materializzate deve essere basato sul database leader, in cui è definita la vista materializzata. In particolare:
- Le metriche correlate all'esecuzione di viste materializzate (
MaterializedViewResult
,MaterializedViewExtentsRebuild
) sono presenti solo nel database leader. Le metriche correlate al monitoraggio (MaterializedViewAgeSeconds
,MaterializedViewHealth
,MaterializedViewRecordsInDelta
) verranno visualizzate anche nei database di follower.
- Il comando .show materialized-view failures funziona solo nel database leader.
Tenere traccia dell'utilizzo delle risorse
Consumo di risorse delle viste materializzate: è possibile tenere traccia delle risorse utilizzate dal processo di materializzazione delle viste materializzate usando il .show commands-and-queries
comando . Filtrare i record per una visualizzazione specifica usando il comando seguente (sostituire DatabaseName
e ViewName
):
.show commands-and-queries
| where Database == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"