Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Ajoute une stratégie d’actualisation à la vue matérialisée, en contrôlant quand incrémentiser l’actualisation. S’applique à l’instruction CREATE MATERIALIZED VIEW .
Pour en savoir plus sur l’incrémentisation, consultez Actualisation incrémentielle pour les vues matérialisées. Vous pouvez vérifier si une requête SQL est incrémentielle avec l’instruction EXPLAIN CREATE MATERIALIZED VIEW . Voir EXPLAIN CREATE MATERIALIZED VIEW.
Syntaxe
REFRESH POLICY refresh_policy
refresh_policy:
AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL
Paramètres
refresh_policy
Définit une stratégie d’actualisation pour la vue matérialisée. Si la
REFRESH POLICYvaleur est omise,AUTOest la stratégie par défaut.La stratégie d’actualisation définit comment une actualisation gère l’incrémentisation de la vue matérialisée.
AUTOLe système sélectionne automatiquement l’actualisation incrémentielle ou complète, en fonction du modèle de coût.
État Comportement L’actualisation incrémentielle est disponible. Utilise le modèle de coût pour déterminer qui est moins cher, incrémentiel ou complet. L’actualisation incrémentielle n’est pas disponible. Effectue une actualisation complète. La création ou la re-initialisation est requise (par exemple, lors de la modification du schéma) Effectue une actualisation complète. INCREMENTALLe système utilise des actualisations incrémentielles lorsque cela est possible. Sur
CREATE, si la requête n’est pas possible d’être incrémentielle, la création échoue.État Comportement L’actualisation incrémentielle est disponible. Effectue une actualisation incrémentielle. L’actualisation incrémentielle n’est pas disponible. Effectue une actualisation complète. La création ou la re-initialisation est requise, mais l’incrémentisation est possible pour la requête. Effectue une actualisation complète. La création ou la re-initialisation est requise et l’incrémentisation n’est pas possible pour la requête. L’opération échoue. INCREMENTAL STRICTLe système utilise des actualisations incrémentielles. Sur
CREATE, si la requête n’est pas possible d’être incrémentielle, la création échoue.État Comportement L’actualisation incrémentielle est disponible. Effectue une actualisation incrémentielle. L’actualisation incrémentielle n’est pas disponible. L'actualisation échoue. La création ou la re-initialisation est requise, mais l’incrémentisation est possible pour la requête. Effectue une actualisation complète. La création ou la re-initialisation est requise et l’incrémentisation n’est pas possible pour la requête. L’opération échoue. FULLLe système utilise toujours une actualisation complète.
État Comportement L’actualisation incrémentielle est disponible. Effectue une actualisation complète. L’actualisation incrémentielle n’est pas disponible. Effectue une actualisation complète. La création ou la re-initialisation est requise. Effectue une actualisation complète.
Comportement en cas d’échec
Lorsqu’une actualisation échoue, car elle ne peut pas répondre à la stratégie d’actualisation (pour REFRESH POLICY INCREMENTAL (STRICT)), le système retourne une classe d’erreur contenant MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE des informations détaillées qui décrivent la raison de ne pas être incrémentielle. Par exemple:
-
OPERATOR_NOT_SUPPORTED: un opérateur, tel qu’une jointure complexe, empêche l’incrémentisation. -
EXPRESSION_NOT_DETERMINSTIC: une fonction non déterministe, telle queRAND, est utilisée dans la requête.
Pour comprendre ce qui rend une requête incrémentielle modifiable, consultez Actualisation incrémentielle pour les vues matérialisées.
Pour vérifier si une requête SQL est incrémentielle, utilisez l’instruction EXPLAINCREATE MATERIALIZED VIEW . Voir EXPLAIN CREATE MATERIALIZED VIEW.
Examples
-- Create a materialized view with an incremental policy
CREATE MATERIALIZED VIEW IF NOT EXISTS my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;