Superviser les vues matérialisées
Surveillez l’intégrité de la vue matérialisée des manières suivantes :
- Surveillez les métriques de vue matérialisée dans le Portail Azure.
- La métrique
MaterializedViewAgeSeconds
âge de la vue matérialisée doit être utilisée pour surveiller l’actualisation de la vue. Celui-ci doit être la métrique principale à surveiller.
- La métrique
- Surveillez la
IsHealthy
propriété retournée à partir de.show materialized-view
. - Vérifiez les échecs à l’aide de
.show materialized-view failures
.
Notes
La matérialisation n’ignore jamais les données, même en cas de défaillances constantes. La vue est toujours garantie de retourner les instantané les 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 n’entraînent pas de résultats incorrects dans les requêtes d’affichage.
Résolution des problèmes liés aux 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 non saine, son âge, noté par la MaterializedViewAgeSeconds
métrique, augmente progressivement.
Une vue matérialisée peut devenir non saine pour l’une ou l’autre des 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 automatiquement désactivé la vue matérialisée, en raison de modifications apportées à la table source. Vous pouvez case activée si la vue est désactivée en vérifiant la colonne retournée par la
IsEnabled
.show materialized-view
commande . Pour plus d’informations, consultez Limitations des affichages matérialisés et problèmes connus - Le cluster ne dispose pas d’une capacité suffisante pour matérialiser toutes les données entrantes à temps. Dans ce cas, il peut ne pas y avoir d’échecs d’exécution. Toutefois, l’âge de la vue augmente progressivement, car elle n’est pas en mesure de suivre le taux d’ingestion. Il peut y avoir plusieurs causes racines de cette situation :
- Il existe davantage de vues matérialisées dans le cluster, et le cluster n’a pas une capacité suffisante pour exécuter toutes les vues. Consultez 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 il y a trop d’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. Le nombre d’extensions qui nécessitent des mises à jour dans chaque cycle est fourni dans la
MaterializedViewExtentsRebuild
métrique.
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 les status d’intégrité de la vue matérialisée. La métrique inclut la Database
dimension et MaterializedViewName
et .Result
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. Par conséquent, la vue matérialisée est automatiquement désactivée.
SourceTableSchemaChange : le schéma de la table source a changé d’une manière qui n’est pas compatible avec la définition de la vue matérialisée (la requête de vue matérialisée ne correspond pas au schéma de vue matérialisée). Par conséquent, la vue matérialisée est automatiquement désactivée.
InsufficientCapacity : le cluster n’a pas 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 reproduisent souvent, nous vous recommandons d’effectuer un scale-out du cluster ou d’augmenter la capacité pertinente dans la stratégie.
InsufficientResources : Le cluster n’a pas suffisamment de ressources (processeur/mémoire) pour matérialiser la vue matérialisée. Cet échec peut être temporaire, mais s’il se reproduit, essayez de mettre à l’échelle le cluster.
- Si le processus de matérialisation atteint les limites de mémoire, les limites du groupe de charge de travail $materialized-vues peuvent être augmentées pour prendre en charge davantage de mémoire ou de processeur pour le processus de matérialisation.
Par exemple, la commande suivante modifie le groupe de charge de travail 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 } } } ```
Notes
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 d’suiveur
Les vues matérialisées peuvent être définies dans les bases de données suivantes. 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 la 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
) s’affichent également dans les bases de données suivantes. - La commande .show materialized-view failures fonctionne uniquement dans la base de données leader.
Suivre la consommation des ressources
Consommation des ressources des 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;"
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour