Partilhar via


ALTER STREAMING TABLE

Aplica-se a:Marque Sim Databricks SQL

Permite executar qualquer uma das seguintes ações:

  • Adicione uma agenda ou gatilho para atualizar uma tabela de streaming existente.
  • Altere uma agenda de atualização existente ou um gatilho para uma tabela de streaming.
  • Solte a agenda de atualização ou o gatilho para uma tabela de streaming. Se não houver agendamento ou gatilho, o objeto precisará ser atualizado manualmente para refletir os dados mais recentes.

Para adicionar ou alterar um comentário numa tabela de streaming, use COMMENT ON.

Nota

Alterar um conjunto de dados criado por pipeline de formas que contradizem o SQL definidor pode fazer com que algumas alterações sejam revertidas. Veja Utilizar ALTER comandos com Lakeflow Spark Declarative Pipelines.

Sintaxe

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 }

Parâmetros

  • table_name

    O nome da tabela de streaming para alterar a definição de. O nome não deve incluir uma especificação temporal.

  • Horário

    Adicione ou altere uma SCHEDULE instrução ou TRIGGER na tabela.

    Nota

    Não podes modificar o cronograma de uma tabela de streaming criada com Lakeflow Spark Declarative Pipelines com este comando. Utilize o editor de pipelines.

    • SCHEDULE [ REFRESH ] schedule_clause

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

        Para programar uma atualização que ocorre periodicamente, use a sintaxe EVERY. Se a sintaxe EVERY for especificada, a tabela de streaming ou a vista materializada será atualizada periodicamente no intervalo definido com base no valor fornecido, como HOUR, HOURS, DAY, DAYS, WEEKou WEEKS. A tabela a seguir lista os valores inteiros aceitos para number.

        Unidade de tempo Valor inteiro
        HOUR or HOURS <1 = H <= 72
        DAY or DAYS <1 = D <= 31
        WEEK or WEEKS <1 = W <= 8

        Nota

        As formas singular e plural da unidade de tempo incluída são semanticamente equivalentes.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Para agendar uma atualização usando um valor cron quartz . São aceites time_zone_values válidos. AT TIME ZONE LOCAL não é suportado.

        Se AT TIME ZONE estiver ausente, o fuso horário da sessão será usado. Se AT TIME ZONE estiver ausente e o fuso horário da sessão não estiver definido, um erro será lançado. SCHEDULE é semanticamente equivalente a SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Importante

      O TRIGGER ON UPDATE recurso está em versão Beta.

      Define a tabela para atualizar quando uma fonte de dados upstream é atualizada, no máximo uma vez a cada minuto. Defina um valor para AT MOST EVERY exigir pelo menos um tempo mínimo entre as atualizações.

      As fontes de dados de origem devem ser tabelas Delta externas ou geridas (incluindo vistas materializadas ou tabelas de streaming) ou vistas geridas cujas dependências são limitadas a tipos de tabela suportados.

      Habilitar eventos de arquivo pode tornar os gatilhos mais eficientes e aumenta alguns dos limites nas atualizações de gatilho.

      A trigger_interval é uma instrução INTERVAL que é de pelo menos 1 minuto.

      TRIGGER ON UPDATE tem as seguintes limitações:

      • No máximo 10 fontes de dados upstream por tabela de streaming ao usar TRIGGER ON UPDATE.
      • Máximo de 1000 tabelas de streaming ou visualizações materializadas podem ser especificadas com TRIGGER ON UPDATE.
      • O AT MOST EVERY padrão da cláusula é de 1 minuto e não pode ser inferior a 1 minuto.
  • DROP SCHEDULE

    Remove um horário da tabela de streaming.

  • ALTER COLUMN clause

    Ver cláusula ALTERCOLUMN.

  • SET ROW FILTER cláusula

    Importante

    Este recurso está no Public Preview.

    Adiciona uma função de filtro de linha à tabela de streaming. Todas as consultas subsequentes à tabela de streaming recebem um subconjunto das linhas onde a função é avaliada como booleana TRUE. Isso pode ser útil para fins de controle de acesso refinado, onde a função pode inspecionar a identidade ou as associações de grupo do usuário que invoca para determinar se determinadas linhas devem ser filtradas.

    Os filtros de linhas adicionados após a criação só se propagam para as tabelas a jusante após a próxima atualização. Para pipelines contínuos, é necessário reiniciar o pipeline.

  • DROP ROW FILTER

    Importante

    Este recurso está no Public Preview.

    Descarta o filtro de linha da tabela de streaming, se houver. Consultas futuras retornam todas as linhas da tabela sem qualquer filtragem automática.

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

    Importante

    Este recurso está no Public Preview.

    Aplique etiquetas à tabela de streaming. Você precisa ter APPLY TAG permissão para adicionar tags à tabela de streaming.

    • tag_name

      Um literal STRING. Deve tag_name ser único dentro da tabela de streaming.

    • tag_value

      Um literal STRING.

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

    Importante

    Este recurso está no Public Preview.

    Remova as tags da tabela de fluxo. Você precisa ter APPLY TAG permissão para remover tags da tabela de streaming.

    • tag_name

      Um literal STRING. Deve tag_name ser único dentro da tabela de streaming.

Cláusula ALTER COLUMN

Importante

Este recurso está no Public Preview.

Altera uma propriedade ou a posição de uma coluna.

Sintaxe

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

Parâmetros

  • column_identifier

    O nome da coluna a ser alterada.

  • COMMENT comment

    Altera a descrição da column_name coluna. comment tem de ser um STRING literal.

  • SET Cláusula MASK

    Adiciona uma função de máscara de coluna para anonimizar dados sensíveis. Todas as consultas subsequentes dessa coluna receberão o resultado da avaliação dessa função sobre a coluna no lugar do valor original da coluna. Isso pode ser útil para fins de controle de acesso refinado, onde a função pode inspecionar a identidade ou as associações de grupo do usuário que invoca para determinar se o valor deve ser redigido.

    As máscaras de coluna adicionadas após a criação só se propagam para as tabelas a jusante após a atualização seguinte. Para pipelines contínuos, é necessário reiniciar o pipeline.

  • DROP MASK

    Remova a máscara de coluna desta coluna, se houver. Consultas futuras desta coluna receberão os valores originais da coluna.

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

    Aplique etiquetas à coluna. Você precisa ter APPLY TAG permissão para adicionar tags à coluna.

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da tabela ou coluna.

    • tag_value

      Um literal STRING.

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

    Remova as etiquetas dadas da coluna. Você precisa ter APPLY TAG permissão para remover tags da coluna.

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da tabela ou coluna.

Exemplos

-- 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'