Partager via


ALTER STREAMING TABLE

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

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

  • Ajoutez une planification ou un déclencheur pour actualiser une table de streaming existante.
  • Modifiez une planification ou un déclencheur d’actualisation existant pour une table de diffusion en continu.
  • Supprimez la planification d’actualisation ou le déclencheur d’une table de diffusion en continu. S’il n’existe aucune planification ou déclencheur, l’objet doit être actualisé manuellement pour refléter les données les plus récentes.

Pour ajouter ou modifier un commentaire sur une table de diffusion en continu, 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 STREAMING TABLE table_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

  • table_name

    Nom de la table en streaming dont on souhaite modifier la définition. Le nom ne doit pas inclure une spécification temporelle.

  • horaire

    Ajoutez ou modifiez une SCHEDULETRIGGER instruction sur la table.

    Remarque

    Vous ne pouvez pas modifier la planification d’une table de diffusion en continu créée avec des 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 la syntaxe EVERY 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, DAY, DAYS, WEEK, ou 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 quartz cron. 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 table à 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 table de diffusion en continu lors de l’utilisation de 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 horaire de la table de streaming.

  • 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 lignes à la table de flux en continu. Toutes les requêtes suivantes sur la table de flux 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 lignes de la table de streaming, le cas échéant. Les requêtes futures retournent toutes les lignes de la table sans filtrage automatique.

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

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Appliquez des balises à la table en streaming. Vous devez disposer APPLY TAG de l’autorisation d’ajouter des balises à la table de streaming.

    • tag_name

      Un STRING littéral. Le tag_name doit être unique dans la table en streaming.

    • tag_value

      Un STRING littéral.

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

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Supprimez les balises de la table de streaming. Vous devez disposer APPLY TAG de l’autorisation de supprimer des étiquettes de la table de streaming.

    • tag_name

      Un STRING littéral. Le tag_name doit être unique dans la table en streaming.

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 streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 1 HOUR;

-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
  DROP SCHEDULE;

-- Adds a column comment
> ALTER STREAMING TABLE my_st
    ALTER COLUMN column_name COMMENT 'test'