Partager via


ALTER MATERIALIZED VIEW

S’applique à :coche marquée oui Databricks SQL

Modifie les métadonnées associées à l’affichage.

Vous permet d’effectuer l’une des actions suivantes :

  • Ajoutez une planification pour actualiser une vue matérialisée existante.
  • Modifiez une planification d’actualisation existante pour une vue matérialisée.
  • Supprimez la planification d’actualisation pour une vue matérialisée. Si la planification est supprimée, l'objet doit être actualisé manuellement pour refléter les dernières données.

Pour ajouter ou modifier un commentaire sur une vue matérialisée, utilisez COMMENT ON.

Remarque

La modification d’un jeu de données créé par un pipeline d'une manière qui contredit la définition SQL peut entraîner l'annulation de certains changements. Consultez Utilisation ALTER de commandes avec des pipelines déclaratifs Spark Lakeflow.

Syntaxe

ALTER MATERIALIZED VIEW view_name
  {
    { ADD | ALTER } schedule |
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

  schedule
    { SCHEDULE [ REFRESH ] schedule_clause |
      TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
    { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Paramètres

  • view_name

    Nom de la vue matérialisée pour modifier la définition de. Le nom ne doit pas inclure une spécification temporelle.

  • horaire

    Ajoutez ou modifiez une SCHEDULETRIGGER instruction sur la vue matérialisée.

    Remarque

    Vous ne pouvez pas modifier la planification d’une vue matérialisée créée avec les pipelines déclaratifs Spark Lakeflow avec cette commande. Utilisez l’éditeur de pipeline.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        Pour planifier une actualisation qui se produit régulièrement, utilisez EVERY la syntaxe. Si EVERY la syntaxe est spécifiée, la table de diffusion en continu ou la vue matérialisée est actualisée régulièrement à l’intervalle spécifié en fonction de la valeur fournie, telle que HOUR, , , HOURS, DAYDAYSWEEKou .WEEKS Le tableau suivant répertorie les valeurs entières acceptées pour number.

        Unité de temps Valeur entière
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Remarque

        Les formes singulières et plurielles de l’unité de temps incluse sont sémantiquement équivalentes.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Pour planifier une actualisation à l’aide d’une valeur cron de quartz. Les time_zone_values valides sont acceptées. La fonction AT TIME ZONE LOCAL n'est pas prise en charge.

        Si AT TIME ZONE est absent, le fuseau horaire de session est utilisé. Si AT TIME ZONE est absent et que le fuseau horaire de session n’est pas défini, une erreur est générée. SCHEDULE est équivalent sémantiquement à SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Important

      La TRIGGER ON UPDATE fonctionnalité est en version bêta.

      Définit la vue matérialisée à actualiser lorsqu’une source de données en amont est mise à jour, au plus une fois par minute. Définissez une valeur pour AT MOST EVERY exiger au moins une durée minimale entre les actualisations.

      Les sources de données en amont doivent être des tables Delta externes ou gérées (y compris des vues matérialisées ou des tables de diffusion en continu) ou des vues managées dont les dépendances sont limitées aux types de tables pris en charge.

      L’activation des événements de fichier peut rendre les déclencheurs plus performants et augmenter certaines des limites des mises à jour du déclencheur.

      Il trigger_interval s’agit d’une instruction INTERVAL qui est d’au moins 1 minute.

      TRIGGER ON UPDATE présente les limitations suivantes

      • Pas plus de 10 sources de données en amont par vue matérialisée avec TRIGGER ON UPDATE.
      • Un maximum de 1 000 tables de diffusion en continu ou de vues matérialisées peut être spécifié avec TRIGGER ON UPDATE.
      • La AT MOST EVERY clause est par défaut de 1 minute et ne peut pas être inférieure à 1 minute.
  • DROP SCHEDULE

    Supprime un programme de la vue matérialisée.

  • ALTER COLUMN clause

    Voir la clause ALTERCOLUMN.

  • SET ROW FILTER clause

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Ajoute une fonction de filtre de ligne à la vue matérialisée. Toutes les requêtes suivantes dans la vue matérialisée reçoivent un sous-ensemble des lignes où la fonction prend la valeur booléenne TRUE. Cela peut être utile à des fins de contrôle d’accès plus précis, où la fonction peut inspecter l’identité et/ou l’appartenance à un groupe de l’utilisateur appelant afin de décider s’il convient de filtrer certaines lignes.

    Les filtres de lignes ajoutés après la création se propagent uniquement aux tables en aval après la prochaine mise à jour. Pour les pipelines continus, cela nécessite un redémarrage du pipeline.

  • DROP ROW FILTER

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Supprime le filtre de ligne de la vue matérialisée, le cas échéant. Les requêtes futures retourneront toutes les lignes de la table sans aucun filtrage automatique.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Appliquez des balises à la vue matérialisée. Vous devez avoir APPLY TAG l’autorisation d’ajouter des balises à la vue matérialisée.

    • tag_name

      Un STRING littéral. Il tag_name doit être unique dans la vue matérialisée ou dans la colonne.

    • tag_value

      Un STRING littéral.

  • UNSET TAGS ( tag_name [, ...] )

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Supprimez les balises de la vue matérialisée. Vous devez avoir APPLY TAG l’autorisation de supprimer des balises de la vue matérialisée.

    • tag_name

      Un STRING littéral. Il tag_name doit être unique dans la vue matérialisée ou dans la colonne.

ALTER COLUMN clause

Important

Cette fonctionnalité est disponible en préversion publique.

Modifie une propriété ou l’emplacement d’une colonne.

Syntaxe

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Paramètres

  • column_identifier

    Nom de la colonne à modifier.

  • COMMENT comment

    Modifie la description de la colonne column_name. comment doit être un littéral STRING.

  • SET Clause MASK

    Permet d’ajouter une fonction de masque de colonne pour anonymiser les données sensibles. Toutes les requêtes suivantes de cette colonne recevront le résultat de l’évaluation de cette fonction sur la colonne à la place de la valeur d’origine de la colonne. Cela peut être utile à des fins de contrôle d’accès plus précis, où la fonction peut inspecter l’identité ou l’appartenance à un groupe de l’utilisateur appelant afin de décider s’il convient de modifier la valeur.

    Les masques de colonne ajoutés après la création se propagent uniquement aux tables en aval après la prochaine mise à jour. Pour les pipelines continus, cela nécessite un redémarrage du pipeline.

  • DROP MASK

    Permet de supprimer le masque de colonne pour celle-si, le cas échéant. Les futures requêtes de cette colonne recevront les valeurs d’origine de la colonne.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Appliquer des balises à la colonne. Vous devez disposer d’une autorisation APPLY TAG pour ajouter des balises à la colonne.

    • tag_name

      Un STRING littéral. Le tag_name doit être unique dans la colonne ou la table.

    • tag_value

      Un STRING littéral.

  • UNSET TAGS ( tag_name [, ...] )

    Supprimez les balises données de la colonne. Vous devez disposer d’une autorisation APPLY TAG pour supprimer des balises de la colonne.

    • tag_name

      Un STRING littéral. Le tag_name doit être unique dans la colonne ou la table.

Exemples

-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE EVERY 2 HOURS;

-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
    ALTER COLUMN my_column_name COMMENT 'test'