Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 17.3 e acima
Relata se a consulta para uma visualização materializada pode ser atualizada incrementalmente. Anteceda EXPLAIN uma CREATE MATERIALIZED VIEW declaração para verificar a elegibilidade da incrementalização antes de criar a visualização materializada ou executar uma atualização cara.
Para saber mais sobre a incrementalização de exibição materializada, consulte Atualização incremental para exibições materializadas.
Quais EXPLAIN relatos
EXPLAIN CREATE MATERIALIZED VIEW verifica se a consulta é estruturalmente elegível para atualização incremental. A Incremental Update Eligibility seção da saída apresenta um de dois resultados:
-
The Materialized View can be incrementally refreshed: O padrão de consulta suporta atualização incremental. -
The Materialized View cannot be incrementally refreshed: A consulta não é estruturalmente elegível para atualização incremental. Sob asAUTOpolíticas eFULLatualizar, a visualização materializada utiliza um recálculo completo. SobINCREMENTALouINCREMENTAL STRICT, falhaCREATEporque a atualização incremental não é possível. ADetailed Incrementalization Infoseção lista o que impede a incrementalização.
A elegibilidade estrutural não garante que uma atualização incremental ocorra. Sob a política padrão AUTO de atualização, o modelo de custo toma a decisão final em tempo de execução e ainda pode escolher um recálculo completo para uma visualização materializada elegível. Para detalhes, veja Elegibilidade e comportamento em tempo de execução.
Quando usar EXPLAIN
Executar EXPLAIN CREATE MATERIALIZED VIEW:
- Antes de implantar uma nova visualização materializada, verifique se o padrão de consulta suporta atualização incremental.
- Quando você depura atualizações lentas, para confirmar que a visualização materializada é elegível. Se não for, reescreva a consulta.
- Depois de reescrever uma consulta, para verificar se a nova versão é elegível.
- Quando você migra de dbt ou outra ferramenta, para validar que as consultas transformadas se beneficiam de uma atualização incremental.
Sintaxe
EXPLAIN [CREATE MATERIALIZED VIEW query]
Parâmetros
query
Uma consulta SQL que cria uma exibição materializada. Introduza
EXPLAINa consulta.Observação
CREATE MATERIALIZED VIEWas consultas dos pipelines do Lakeflow podem não funcionarEXPLAINsem atualização. Por exemplo:- As expectativas (
CONSTRAINT...EXPECTcláusulas) devem ser removidas da consulta. - Os conjuntos de dados de origem podem precisar ser qualificados com um catálogo, esquema ou outro caminho que não seja necessário quando executado no contexto de um pipeline.
- As expectativas (
Exemplos
Os exemplos a seguir mostram a saída de uma consulta elegível e de duas consultas que não podem ser atualizadas incrementalmente.
Elegível para atualização incremental
Uma consulta que aplica um filtro, projeção e agregação a uma tabela Delta Lake é elegível:
EXPLAIN CREATE MATERIALIZED VIEW sales_summary AS
SELECT region, SUM(revenue) AS total_revenue, COUNT(*) AS order_count
FROM catalog.schema.orders
WHERE order_date >= '2024-01-01'
GROUP BY region;
== Incremental Update Eligibility ==
The Materialized View can be incrementally refreshed.
== Detailed Incrementalization Info ==
No issues detected.
Não elegível: usos LIMIT
Uma consulta que usa LIMIT não é incrementalizável, porque operadores de limite não podem ser mantidos de forma incremental:
EXPLAIN CREATE MATERIALIZED VIEW top_customers AS
SELECT customer_id, total_spend
FROM catalog.schema.customer_summary
ORDER BY total_spend DESC
LIMIT 100;
== Incremental Update Eligibility ==
The Materialized View cannot be incrementally refreshed.
== Detailed Incrementalization Info ==
- OPERATOR_NOT_INCREMENTALIZABLE: Operators GlobalLimit, LocalLimit are not incrementalizable. Consider rewriting the query to avoid using them.
Não elegível: fonte não pertencente ao Delta Lake
Uma consulta que lê de uma fonte não Delta Lake, como arquivos CSV, não é incremental:
EXPLAIN CREATE MATERIALIZED VIEW external_data AS
SELECT * FROM csv.`/path/to/files/`;
== Incremental Update Eligibility ==
The Materialized View cannot be incrementally refreshed.
== Detailed Incrementalization Info ==
- INPUT_NOT_IN_DELTA: Tables are not in Delta format. Consider converting them to Delta tables.
Elegibilidade e comportamento durante a execução
EXPLAIN Informa se a estrutura da consulta suporta atualização incremental. Ele não prevê o que o otimizador faz em tempo de execução. Sob o padrão REFRESH POLICY AUTO, o modelo de custo toma a decisão final e pode escolher um recálculo completo mesmo para uma visualização materializada elegível, por exemplo, quando estima que o aninhamento do operador ou o volume atual de dados tornam um recálculo completo mais eficiente. Para a lista completa de políticas de atualização, veja Política de atualização.
Se uma visualização materializada elegível usa consistentemente o recálculo completo em AUTO, você pode:
- Configure
REFRESH POLICY INCREMENTALpara preferir atualização incremental em vez da escolha baseada em custo. Para sintaxe, vejaREFRESH cláusula POLICY. - Verifique o log de eventos do pipeline para
INCREMENTAL_PLAN_REJECTED_BY_COST_MODELentender por que o modelo de custo rejeitou o plano incremental. Para detalhes, veja o Registro de eventos do Pipeline e osCostModelRejectionSubTypevalores no esquema do Registro de eventos do Pipeline.
Razões comuns de rejeição do modelo de custo incluem:
-
EXCESSIVE_OPERATOR_NESTING: A definição da consulta é complexa e possui muitos níveis de aninhamento de operadores, que o modelo de custo considera arriscados para processamento incremental. -
CHANGESET_SIZE_THRESHOLD_EXCEEDEDeTABLE_SIZE_THRESHOLD_EXCEEDED: O modelo de custo estima que um recálculo completo é mais barato para o volume atual de dados.
Uma rejeição no modelo de custo não significa que a visão materializada não possa incrementalizar. Significa que o otimizador escolheu não fazer isso. O cenário REFRESH POLICY INCREMENTAL é uma forma suportada de superar essa escolha.