Limitations des vues matérialisées et problèmes connus
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Source de vue matérialisée
- Table source d’une vue matérialisée :
- Doit être une table dans laquelle les données sont directement ingérées, à l’aide d’une stratégie de mise à jour ou à l’ingestion à partir de commandes de requête.
- L’utilisation
setNewIngestionTime
d’étendues de déplacement ou de remplacement d’autres tables vers la table source de la vue matérialisée n’est prise en charge que si la propriété est utilisée dans le cadre de la commande move extents (reportez-vous aux étendues .move et aux commandes .replaces pour plus d’informations). - Le déplacement d’étendues vers la table source d’une vue matérialisée, tout en n’utilisant
setNewIngestionTime
pas peut échouer avec l’une des erreurs suivantes :Cannot drop/move extents from/to table 'TableName' since Materialized View 'ViewName' is currently processing some of these extents
.Cannot move extents to 'TableName' since materialized view 'ViewName' will not process these extents (can lead to data loss in the materialized view)
.
- L’utilisation
- Doit être une table dans laquelle les données sont directement ingérées, à l’aide d’une stratégie de mise à jour ou à l’ingestion à partir de commandes de requête.
- La table source d’une vue matérialisée doit avoir la stratégie IngestionTime activée. Cette stratégie est activée par défaut.
- Si la vue matérialisée utilise une
lookback
(voir les propriétés prises en charge), elleingestion_time()
doit être conservée dans la requête de la vue matérialisée. Les opérateurs tels que le plug-in mv-expand ou pivot ne conservent pas lesingestion_time()
éléments et ne peuvent donc pas être utilisés dans une vue matérialisée avec unlookback
. - La table source d’une vue matérialisée ne peut pas être une table avec une stratégie d’accès en mode restreint.
- Une vue matérialisée ne peut pas être créée au-dessus d’une autre vue matérialisée, sauf si la première vue matérialisée est d’agrégation de type
take_any(*)
. Voir la vue matérialisée sur la vue matérialisée. - Les vues matérialisées ne peuvent pas être définies sur des tables externes.
Avertissement
- Une vue matérialisée est automatiquement désactivée par le système si les modifications apportées à la table source de la vue matérialisée, ou les modifications apportées aux données entraînent une incompatibilité entre la requête de vue matérialisée et le schéma de la vue matérialisée attendue.
- Pour éviter cette erreur, la requête de vue matérialisée doit être déterministe. Par exemple, les plug-ins bag_unpack ou pivot entraînent un schéma non déterministe.
- Lorsque vous utilisez une
arg_max(Timestamp, *)
agrégation et lorsqueautoUpdateSchema
la valeur est false, les modifications apportées à la table source peuvent également entraîner des incompatibilités de schéma.- Évitez cet échec en définissant la requête d’affichage comme
arg_max(Timestamp, Column1, Column2, ...)
, ou en utilisant l’optionautoUpdateSchema
.
- Évitez cet échec en définissant la requête d’affichage comme
- L’utilisation
autoUpdateSchema
peut entraîner une perte de données irréversible lorsque les colonnes de la table source sont supprimées. - Surveillez la désactivation automatique des vues matérialisées à l’aide de la métrique MaterializedViewResult.
- Après avoir résolu les problèmes d’incompatibilité, la vue doit être explicitement réactivée à l’aide de la commande enable materialized view .
Impact des enregistrements ingérés vers ou supprimés de la table source
- Une vue matérialisée traite uniquement les nouveaux enregistrements ingérés dans la table source. Les enregistrements supprimés de la table source, soit en exécutant des étendues de suppression réversible de suppression/réversible des données/, soit en raison d’une stratégie de rétention ou d’une autre raison, n’ont aucun impact sur la vue matérialisée.
- La vue matérialisée a sa propre stratégie de rétention, qui est indépendante de la stratégie de rétention de la table source. La vue matérialisée peut inclure des enregistrements qui ne sont pas présents dans la table source.
Bases de données d’abonné
- Les vues matérialisées ne peuvent pas être créées dans les bases de données de suivi. Les bases de données de suivi sont des vues en lecture seule et matérialisées nécessitent des opérations d’écriture.
- Les vues matérialisées ne peuvent pas être créées dans les raccourcis de base de données. Les raccourcis de base de données sont des vues en lecture seule et matérialisées nécessitent des opérations d’écriture.
- Les vues matérialisées définies sur les bases de données leader peuvent être interrogées auprès de leurs abonnés, comme n’importe quelle autre table du leader.
- Utilisez le cluster leader pour surveiller les vues matérialisées de la base de données de suivi. Pour plus d’informations, consultez Les vues matérialisées dans les bases de données de suivi.
- Utilisez l’Eventhouse source pour surveiller les vues matérialisées de la base de données de raccourci. Pour plus d’informations, consultez Surveiller les vues matérialisées
Other
- Les fonctions de curseur ne peuvent pas être utilisées en plus des vues matérialisées.
- L’exportation continue à partir d’une vue matérialisée n’est pas prise en charge.