Compartilhar via


ALTER STREAMING TABLE

Aplica-se a:marca de seleção positiva SQL do Databricks

Permite que você execute qualquer uma das seguintes ações:

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

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

Observação

Alterar um conjunto de dados criado por pipeline de maneiras que contradizem o SQL definidor pode fazer com que algumas alterações sejam revertidas. Consulte Usando ALTER comandos com Pipelines Declarativos do Lakeflow Spark.

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 da qual alterar a definição. O nome não deve incluir uma especificação temporal.

  • horário

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

    Observação

    Você não pode modificar o agendamento de uma tabela de streaming criada com o Lakeflow Spark Declarative Pipelines com este comando. Use o editor de pipeline.

    • SCHEDULE [ REFRESH ] schedule_clause

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

        Para agendar uma atualização que ocorre periodicamente, use EVERY a sintaxe. Se EVERY a sintaxe for especificada, a tabela de streaming ou a exibição materializada será atualizada periodicamente no intervalo especificado 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

        Observação

        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 de quartzo. São aceites time_zone_values válidas. Não há suporte para AT TIME ZONE LOCAL.

        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 Beta.

      Define a tabela a ser atualizada 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 upstream devem ser tabelas Delta externas ou gerenciadas (incluindo exibições materializadas ou tabelas de streaming) ou exibições gerenciadas cujas dependências são limitadas a tipos de tabela compatíveis.

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

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

      TRIGGER ON UPDATE tem as seguintes limitações

      • Não mais do que 10 fontes de dados de origem por tabela de streaming ao usar TRIGGER ON UPDATE.
      • No máximo 1000 tabelas de streaming ou exibições materializadas podem ser especificadas com TRIGGER ON UPDATE.
      • A AT MOST EVERY cláusula tem o padrão de 1 minuto e não pode ter menos de 1 minuto.
  • DROP SCHEDULE

    Remove um agendamento da tabela de streaming.

  • ALTER COLUMN clause

    Consulte a cláusula ALTERCOLUMN.

  • Cláusula SETROW FILTER

    Importante

    Esse recurso está em uma versão prévia.

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

    Filtros de linha adicionados após a criação só se propagam para tabelas downstream após a próxima atualização. No caso de pipelines contínuos, isso requer uma reinicialização do pipeline.

  • DROP ROW FILTER

    Importante

    Esse recurso está em uma versão prévia.

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

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

    Importante

    Esse recurso está em uma versão prévia.

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

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da tabela de streaming.

    • tag_value

      Um literal STRING.

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

    Importante

    Esse recurso está em uma versão prévia.

    Remova marcas da tabela de streaming. Você precisa ter APPLY TAG permissão para remover etiquetas da tabela de streaming.

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da tabela de streaming.

Cláusula ALTER COLUMN

Importante

Esse recurso está em uma versão prévia.

Altera uma propriedade ou o local 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 coluna column_name. comment deve ser uma literal de STRING.

  • SET Cláusula MASK

    Adiciona uma função para mascarar colunas e anonimizar dados sensíveis. Todas as consultas subsequentes dessa coluna receberão o resultado da aplicação dessa função na coluna, em substituição ao valor original da coluna. Isso pode ser útil para fins de controle de acesso detalhado, em que a função pode inspecionar a identidade ou as associações de grupo do usuário que a invoca para determinar se o valor deve ser redigido.

    Máscaras de coluna adicionadas após a criação só se propagam para tabelas downstream após a próxima atualização. No caso de pipelines contínuos, isso requer uma reinicialização do pipeline.

  • DROP MASK

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

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

    Aplicar marcas à coluna. Você precisa ter a permissão APPLY TAG para adicionar marcas à coluna.

    • nome_da_tag

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

    • tag_value

      Um literal STRING.

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

    Remova as etiquetas fornecidas da coluna. Você precisa ter a permissão APPLY TAG para remover marcas da coluna.

    • nome_da_tag

      Um literal STRING. O tag_name deve ser exclusivo na 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'