Superviser les vues matérialisées
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Surveillez l’intégrité de la vue matérialisée de la manière suivante :
- Surveillez les métriques de vue matérialisée dans le Portail Azure.
- La métrique
MaterializedViewAgeSeconds
d’âge de la vue matérialisée doit être utilisée pour surveiller l’actualisation de la vue. Il doit s’agir de la métrique principale à surveiller.
- La métrique
- Surveillez la
IsHealthy
propriété retournée par.show materialized-view
. - Vérifiez les échecs à l’aide
.show materialized-view failures
de .
Remarque
La matérialisation n’ignore jamais les données, même s’il existe des défaillances constantes. La vue est toujours garantie de retourner l’instantané le plus à jour de la requête, en fonction de tous les enregistrements de la table source. Les échecs constants dégradent considérablement les performances des requêtes, mais ne provoquent pas de résultats incorrects dans les requêtes d’affichage.
Résolution des problèmes de vues matérialisées non saines
La MaterializedViewHealth
métrique indique si une vue matérialisée est saine. Avant qu’une vue matérialisée ne devienne saine, son âge, noté par la MaterializedViewAgeSeconds
métrique, augmente progressivement.
Une vue matérialisée peut devenir défectueuse pour toutes les raisons suivantes :
- Le processus de matérialisation échoue. La métrique MaterializedViewResult et la
.show materialized-view failures
commande peuvent aider à identifier la cause racine de l’échec. - Le système a peut-être désactivé automatiquement la vue matérialisée en raison des modifications apportées à la table source. Vous pouvez vérifier si la vue est désactivée en vérifiant la colonne retournée par
.show materialized-view
laIsEnabled
commande. Voir plus de détails dans les limitations de vues matérialisées et les problèmes connus - La base de données ne dispose pas d’une capacité suffisante pour matérialiser toutes les données entrantes à temps. Dans ce cas, il se peut qu’il n’y ait pas d’échecs dans l’exécution. Toutefois, l’âge de la vue augmente progressivement, car il n’est pas en mesure de suivre le taux d’ingestion. Il peut y avoir plusieurs causes racines pour cette situation :
- Il existe des vues plus matérialisées dans la base de données, et la base de données ne dispose pas d’une capacité suffisante pour exécuter toutes les vues. Consultez la stratégie de capacité de vue matérialisée pour modifier les paramètres par défaut pour le nombre de vues matérialisées exécutées simultanément.
- La matérialisation est lente, car les données nouvellement ingérées se croisent avec une grande partie de la vue et il existe de nombreux enregistrements à mettre à jour dans chaque cycle de matérialisation. Pour en savoir plus sur la raison pour laquelle cela a un impact sur les performances de la vue, consultez le fonctionnement des vues matérialisées.
Métrique MaterializedViewResult
La MaterializedViewResult
métrique fournit des informations sur le résultat d’un cycle de matérialisation et peut être utilisée pour identifier les problèmes dans l’état d’intégrité de l’affichage matérialisé. La métrique inclut la dimension et MaterializedViewName
Result
la Database
valeur.
La Result
dimension peut avoir l’une des valeurs suivantes :
Réussite : la matérialisation s’est terminée avec succès.
SourceTableNotFound : La table source de la vue de matérialisation a été supprimée. La vue matérialisée est automatiquement désactivée en conséquence.
SourceTableSchemaChange : le schéma de la table source a changé d’une manière qui n’est pas compatible avec la définition de vue matérialisée (la requête de vue matérialisée ne correspond pas au schéma de vue matérialisé). La vue matérialisée est automatiquement désactivée en conséquence.
Capacité insuffisante : la base de données ne dispose pas d’une capacité suffisante pour matérialiser la vue matérialisée. Cela peut indiquer une capacité d’ingestion manquante ou une capacité de vues matérialisées manquante. Les défaillances de capacité insuffisantes peuvent être temporaires, mais si elles se réoccupéent souvent, nous vous recommandons d’effectuer un scale-out de la base de données ou d’augmenter la capacité pertinente dans la stratégie.
InsufficientResources : la base de données ne dispose pas de ressources suffisantes (processeur/mémoire) pour matérialiser la vue matérialisée. Cette défaillance peut être temporaire, mais si elle reoccuère, essayez de mettre à l’échelle la base de données vers le haut ou la sortie.
- Si le processus de matérialisation atteint des limites de mémoire, les limites de groupe de charge de travail $materialized vues peuvent être augmentées pour prendre en charge plus de mémoire ou d’UC pour le processus de matérialisation à consommer.
Par exemple, la commande suivante modifie le groupe de charges de travail de vues matérialisées pour utiliser un maximum de 64 gigaoctets (Go) de mémoire par nœud pendant la matérialisation (la valeur par défaut est de 15 Go) :
.alter-merge workload_group ['$materialized-views'] ``` { "RequestLimitsPolicy": { "MaxMemoryPerQueryPerNode": { "Value": 68719241216 } } } ```
Remarque
MaxMemoryPerQueryPerNode ne peut pas être défini sur plus de 50 % de la mémoire totale de chaque nœud.
Vues matérialisées dans les bases de données de suivi
Les vues matérialisées peuvent être définies dans les bases de données de suivi. Toutefois, la surveillance de ces vues matérialisées doit être basée sur la base de données leader, où la vue matérialisée est définie. Plus précisément :
- Les métriques liées à l’exécution de vue matérialisée (
MaterializedViewResult
,MaterializedViewExtentsRebuild
) sont uniquement présentes dans la base de données leader. Les métriques liées à la surveillance (MaterializedViewAgeSeconds
,MaterializedViewHealth
,MaterializedViewRecordsInDelta
) apparaissent également dans les bases de données de l’éditeur de suivi.
- La commande .show materialized-view échecs fonctionne uniquement dans la base de données leader.
Suivre la consommation des ressources
Consommation de ressources de vues matérialisées : les ressources consommées par le processus de matérialisation des vues matérialisées peuvent être suivies à l’aide de la .show commands-and-queries
commande. Filtrez les enregistrements d’une vue spécifique à l’aide des éléments suivants (remplacez DatabaseName
et ViewName
) :
.show commands-and-queries
| where Database == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"