Limitations des vues matérialisées et problèmes connus

Source de la vue matérialisée

  • Table source d’une vue matérialisée :
    • Doit être une table dans laquelle les données sont ingérées directement, à l’aide d’une stratégie de mise à jour, ou ingérées à partir de commandes de requête.
      • L’utilisation de déplacer des extensions ou de remplacer des extensions d’autres tables vers la table source de la vue matérialisée n’est prise en charge que si vous utilisez setNewIngestionTime la propriété dans le cadre de la commande move extents (reportez-vous aux commandes .move extents et .replace extents pour plus d’informations).
      • Le déplacement d’étendues vers la table source d’une vue matérialisée, alors qu’il n’est pas utilisé setNewIngestionTime , 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).
  • La table source d’une vue matérialisée doit avoir la stratégie IngestionTime activée (elle est activée par défaut).
  • La table source d’une vue matérialisée ne peut pas être une table avec une stratégie d’accès aux vues restreintes.
  • 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 vue matérialisée sur 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 des modifications apportées à la table source de la vue matérialisée ou des 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 d’affichage matérialisé doit être déterministe. Par exemple, les plug-ins de bag_unpack ou de tableau croisé dynamique entraînent un schéma non déterministe.
    • Lorsque vous utilisez une arg_max(Timestamp, *) agrégation et quand autoUpdateSchema a la valeur 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 en tant que arg_max(Timestamp, Column1, Column2, ...), ou en utilisant l’option autoUpdateSchema .
  • 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 Activer la vue matérialisée .

Impact des enregistrements ingérés dans 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 qui sont supprimés de la table source, soit en exécutantdes étendues desuppression/ réversible de suppression réversible de vidage/ des données, soit en raison d’une stratégie de rétention ou pour toute 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 suivantes. Les bases de données follower sont en lecture seule et les vues matérialisées nécessitent des opérations d’écriture.
  • Les vues matérialisées définies sur les bases de données de 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 base de données d’adeptes. Pour plus d’informations, consultez Affichages matérialisés dans les bases de données d’suiveur.

Autres

  • Les fonctions de curseur ne peuvent pas être utilisées par-dessus les vues matérialisées.
  • L’exportation continue à partir d’une vue matérialisée n’est pas prise en charge.