Cláusula de POLÍTICAREFRESH (pipeline)
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
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 CREATE MATERIALIZED VIEW no Databricks SQL. Consulte EXPLAIN CREATE 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 MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE com informações detalhadas que descrevem o motivo da não incrementalização:
AGGREGATE_NOT_TOP_NODE:GROUP BYcom expressões complexas acima não é suportado.EXPRESSION_NOT_DETERMINSTICUma função não determinística, comoRAND, é usada na consulta.INPUT_NOT_IN_DELTAUm ou mais conjuntos de dados de origem não são tabelas Delta .OPERATOR_NOT_INCREMENTALIZABLEUm operador, como uma join complexa, impede a incrementalização.ROW_TRACKING_NOT_ENABLEDTabelas de origem que exigem acompanhamento de linhas não têm o acompanhamento de linhas ativado.SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLEUma ou mais subconsultas em sua consulta não são incrementalizáveis.UDF_NOT_DETERMINISTICUma ou mais UDFs usadas na expressão não estão marcadas como determinísticas.WINDOW_WITHOUT_PARTITION_BYEspecificações de janela semPARTITION_BYnão são incrementais.
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 CREATE MATERIALIZED VIEW no Databricks SQL. Consulte EXPLAIN CREATE 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;