Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime 17.3 y versiones posteriores
Informa si la consulta para una vista materializada puede actualizarse incrementalmente. Adelántate EXPLAIN a una CREATE MATERIALIZED VIEW declaración para comprobar la elegibilidad para incrementalización antes de crear la vista materializada o hacer una actualización costosa.
Para obtener información sobre la incrementalización de vistas materializadas, consulte Actualización incremental para vistas materializadas.
Qué EXPLAIN informes
EXPLAIN CREATE MATERIALIZED VIEW comprueba si la consulta es estructuralmente elegible para una actualización incremental. La Incremental Update Eligibility sección de la salida informa de uno de dos resultados:
-
The Materialized View can be incrementally refreshed: El patrón de consulta soporta actualización incremental. -
The Materialized View cannot be incrementally refreshed: La consulta no es estructuralmente elegible para una actualización incremental. Bajo lasAUTOpolíticas yFULLrefresh, la vista materializada utiliza un recálculo completo. BajoINCREMENTALoINCREMENTAL STRICT, fallaCREATEporque no es posible refrescar incrementalmente. LaDetailed Incrementalization Infosección enumera qué impide la incrementalización.
La elegibilidad estructural no garantiza que se realice una actualización incremental. Bajo la política de actualización por defecto AUTO , el modelo de costes toma la decisión final en tiempo de ejecución y aún puede elegir un recálculo completo para una vista materializada elegible. Para más detalles, véase Elegibilidad y comportamiento en tiempo de ejecución.
Cuándo debe usarse EXPLAIN
Ejecuta EXPLAIN CREATE MATERIALIZED VIEW:
- Antes de desplegar una nueva vista materializada, verifica que el patrón de consulta soporte refresco incremental.
- Cuando depuras actualizaciones lentas para confirmar que la vista materializada es elegible. Si no lo es, reescribe la consulta.
- Después de reescribir una consulta, para verificar que la nueva versión es elegible.
- Cuando migras desde dbt u otra herramienta, para validar que las consultas transformadas se benefician de una actualización incremental.
Syntax
EXPLAIN [CREATE MATERIALIZED VIEW query]
Parámetros
consulta
Una consulta SQL que crea una vista materializada. Antes
EXPLAINde la consulta.Nota:
CREATE MATERIALIZED VIEWEs posible que las consultas de canalizaciones de Lakeflow no funcionen sinEXPLAINactualizar. Por ejemplo:- Las expectativas (
CONSTRAINT...EXPECTcláusulas) deben quitarse de la consulta. - Es posible que los conjuntos de datos de origen deba calificarse con un catálogo, un esquema u otra ruta de acceso que no sea necesaria cuando se ejecute en el contexto de una canalización.
- Las expectativas (
Examples
Los siguientes ejemplos muestran la salida de una consulta elegible y de dos consultas que no pueden actualizarse incrementalmente.
Elegible para una renovación incremental
Una consulta que aplique un filtro, proyección y agregación a una tabla Delta Lake es elegible:
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.
No elegible: usos LIMIT
Una consulta que use LIMIT no es incremental, porque los operadores límite no pueden mantenerse 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.
No elegible: fuente no Delta Lake
Una consulta que lee desde una fuente no Delta Lake, como archivos CSV, no es 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.
Elegibilidad y comportamiento en tiempo de ejecución
EXPLAIN informa si la estructura de consulta soporta actualización incremental. No predice lo que hace el optimizador en tiempo de ejecución. Bajo el valor por defecto REFRESH POLICY AUTO, el modelo de costes toma la decisión final y puede elegir un recálculo completo incluso para una vista materializada elegible, por ejemplo cuando estima que el anidamiento de operadores o el volumen de datos actual hacen que un recálculo completo sea más eficiente. Para la lista completa de políticas de actualización, consulte Política de actualización.
Si una vista materializada elegible utiliza consistentemente el recálculo completo bajo AUTO, puedes:
- Configura
REFRESH POLICY INCREMENTALpara preferir la actualización incremental en lugar de la opción basada en costes. Para la sintaxis, véaseREFRESH la cláusula POLICY. - Consulta el registro de eventos de la tubería para ver
INCREMENTAL_PLAN_REJECTED_BY_COST_MODELsi hay eventos y así entender por qué el modelo de costes rechazó el plan incremental. Para más detalles, consulte Registro de eventos de la tubería y losCostModelRejectionSubTypevalores en el esquema del registro de eventos de la Canalización.
Las razones comunes de rechazo del modelo de costes incluyen:
-
EXCESSIVE_OPERATOR_NESTING: La definición de la consulta es compleja y tiene muchos niveles de anidamiento de operadores, que el modelo de costes considera arriesgados para el procesamiento incremental. -
CHANGESET_SIZE_THRESHOLD_EXCEEDEDyTABLE_SIZE_THRESHOLD_EXCEEDED: El modelo de costes estima que un recálculo completo es más barato para el volumen de datos actual.
Un rechazo basado en el modelo de costes no significa que la visión materializada no pueda incrementalizarse. Significa que el optimizador decidió no hacerlo. El escenario REFRESH POLICY INCREMENTAL es una forma apoyada de anular esa elección.