Compartilhar via


ALTER MATERIALIZED VIEW

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

Altera os metadados associados à exibição.

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

  • Adicione uma agenda para atualizar uma exibição materializada existente.
  • Altere um agendamento de atualização existente para uma exibição materializada.
  • Remova a agenda de atualização para uma exibição materializada. Se a agenda for descartada, o objeto precisará ser atualizado manualmente para refletir os dados mais recentes.

Para adicionar ou alterar um comentário em uma exibição materializada, 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 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 }

Parâmetros

  • view_name

    O nome da exibição materializada 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 na TRIGGER exibição materializada.

    Observação

    Você não pode modificar o agendamento de uma exibição materializada 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 exibição materializada 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 upstream por exibição materializada 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 visão materializada.

  • ALTER COLUMN clause

    Consulte a cláusula ALTERCOLUMN.

  • Cláusula SETROW FILTER

    Importante

    Esse recurso está em Visualização Pública.

    Adiciona uma função de filtro de linha à exibição materializada. Todas as consultas subsequentes à exibição materializada 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. Para pipelines contínuos, isso requer uma reinicialização do pipeline.

  • DROP ROW FILTER

    Importante

    Esse recurso está em Visualização Pública.

    Descarta o filtro de linha da exibição materializada, se houver. Consultas futuras retornarão todas as linhas da tabela sem nenhuma filtragem automática.

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

    Importante

    Esse recurso está em Visualização Pública.

    Aplique tags à visão materializada. Você precisa ter APPLY TAG permissão para adicionar tags à visão materializada.

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da visão materializada ou coluna.

    • tag_value

      Um literal STRING.

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

    Importante

    Esse recurso está em Visualização Pública.

    Remova tags da visão materializada. Você precisa ter APPLY TAG permissão para remover tags da visão materializada.

    • tag_name

      Um literal STRING. O tag_name deve ser exclusivo dentro da visão materializada ou coluna.

Cláusula ALTER COLUMN

Importante

Esse recurso está em Visualização Pública.

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