Pular para o conteúdo principal

Cláusula de POLÍTICAREFRESH (pipeline)

Adiciona uma política refresh à view materializada, controlando quando incrementar a refresh. Aplica-se à instrução CREATE MATERIALIZED VIEW (pipeline) .

Para saber mais sobre incrementalização, consulte refresh incremental para visualização materializada. Você pode verificar se uma consulta SQL é incrementalizável com a instrução EXPLAIN MATERIALIZED VIEW no Databricks SQL. Consulte EXPLICAR MATERIALIZED VIEW.

Sintaxe

SQL
REFRESH POLICY refresh_policy

refresh_policy:
AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parâmetros

  • política_de_atualização

    Define uma política refresh para a view materializada. Se o REFRESH POLICY for omitido, AUTO será a política default .

    A política refresh define como uma refresh lida com a incrementalização da view materializada.

    • AUTO

      O sistema seleciona automaticamente refresh incremental ou completa, com base no modelo de custo.

Status

Comportamento

O modo incremental está disponível para a refresh.

Utiliza o modelo de custos para determinar qual opção é mais barata: a incremental ou a completa.

O modo incremental não está disponível para refresh.

Executa uma refresh completa.

É necessário criar ou reinicializar (por exemplo, em caso de alteração de esquema).

Executa uma refresh completa.

  • INCREMENTAL

    O sistema utiliza atualização incremental sempre que possível. Em CREATE, se a consulta não puder ser incrementalizada, a instrução de criação falhará.

Status

Comportamento

O modo incremental está disponível para a refresh.

Executa uma refresh incremental.

O modo incremental não está disponível para a refresh.

Executa uma refresh completa.

É necessário criar ou reinicializar a consulta, mas é possível realizar incrementos.

Executa uma refresh completa.

É necessário criar ou reinicializar a consulta, e a incrementalização não é possível.

A operação falha.

  • INCREMENTAL STRICT

    O sistema utiliza atualização incremental. Em CREATE, se a consulta não puder ser incrementalizada, a instrução de criação falhará.

Status

Comportamento

O modo incremental está disponível para a refresh.

Executa uma refresh incremental.

O modo incremental não está disponível para a refresh.

A refresh falha.

É necessário criar ou reinicializar a consulta, mas é possível realizar incrementos.

Executa uma refresh completa.

É necessário criar ou reinicializar a consulta, e a incrementalização não é possível.

A operação falha.

  • FULL

    O sistema sempre utiliza uma refresh completa.

Status

Comportamento

O modo incremental está disponível para a refresh.

Executa uma refresh completa.

O modo incremental não está disponível para a refresh.

Executa uma refresh completa.

É necessário criar ou reinicializar o sistema.

Executa uma refresh completa.

Comportamento diante da falha

Quando uma refresh falha porque não consegue cumprir a política refresh (para REFRESH POLICY INCREMENTAL (STRICT)), o sistema retorna uma classe de erro de MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE com informações detalhadas que descrevem o motivo de não ser incrementalizável. Por exemplo:

  • OPERATOR_NOT_SUPPORTEDUm operador, como uma join complexa, impede a incrementalização.
  • EXPRESSION_NOT_DETERMINSTICUma função não determinística, como RAND, é usada na consulta.

Para entender o que torna uma consulta incrementalizável, consulte refresh incremental para visualização materializada.

Para verificar se uma consulta SQL é incrementalizável, use a instrução EXPLAIN MATERIALIZED VIEW no Databricks SQL. Consulte EXPLICAR MATERIALIZED VIEW.

Exemplos

SQL
-- Create a materialized view with an incremental policy
CREATE OR REFRESH MATERIALIZED VIEW my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;