Partilhar via


ALTER MATERIALIZED VIEW

Aplica-se a:Sim marcado Databricks SQL

Altera os metadados associados à exibição.

Permite executar qualquer uma das seguintes ações:

  • Adicione uma agenda para refrescar uma vista materializada existente.
  • Altere uma agenda de atualização existente para uma exibição materializada.
  • Remova a agenda de atualização para uma vista 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 numa vista materializada, 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 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 visão materializada para alterar a definição de. O nome não deve incluir uma especificação temporal.

  • Horário

    Adicione ou altere uma SCHEDULE ou TRIGGER declaração na visão materializada.

    Nota

    Não pode modificar o cronograma de uma visualização materializada 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 agendar 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 cron quartz. Valores de fusos horários válidos são aceites. 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 exibição materializada para 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 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:

      • Não mais do que 10 fontes de dados upstream por visualização materializada 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 uma agenda da vista materializada.

  • 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 à exibição materializada. Todas as consultas subsequentes na vista materializada recebem um subconjunto de linhas em que a função é avaliada para um valor booleano 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 canalizações contínuas, isto requer um reinício da canalização.

  • DROP ROW FILTER

    Importante

    Este recurso está no Public Preview.

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

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

    Importante

    Este recurso está no Public Preview.

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

    • tag_name

      Um literal STRING. O tag_name deve ser único dentro da vista ou coluna materializada.

    • tag_value

      Um literal STRING.

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

    Importante

    Este recurso está no Public Preview.

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

    • tag_name

      Um literal STRING. O tag_name deve ser único dentro da vista ou coluna materializada.

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 canalizações contínuas, isto requer um reinício da canalização.

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