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
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 POLICYfor omitido,AUTOserá a política default .A política refresh define como uma refresh lida com a incrementalização da view materializada.
-
AUTOO 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. |
-
INCREMENTALO 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 STRICTO 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. |
-
FULLO 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, comoRAND, é 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
-- 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;