Compartir a través de


REFRESH Cláusula POLICY (canalizaciones)

Importante

Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administración de versiones preliminares de Azure Databricks.

Agrega una directiva de actualización a la vista materializada, controlando cuándo se va a incrementalizar la actualización. Se aplica a la CREATE MATERIALIZED VIEW instrucción (canalizaciones).

Para obtener información sobre la incrementalización, consulte Actualización incremental para vistas materializadas. Puede comprobar si una consulta SQL es incrementalizable con la EXPLAIN CREATE MATERIALIZED VIEW instrucción en Databricks SQL. Consulte EXPLAIN CREATE MATERIALIZED VIEW.

Syntax

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parámetros

  • refresh_policy

    Define una directiva de actualización para la vista materializada. REFRESH POLICY Si se omite , AUTO es la directiva predeterminada.

    La directiva de actualización define cómo una actualización controla la incrementalización de la vista materializada.

    • AUTO

      El sistema selecciona automáticamente la actualización incremental o completa, en función del modelo de costo.

      Estado Comportamiento
      El incremental está disponible para la actualización. Usa el modelo de costos para determinar cuál es más barato, incremental o completo.
      El incremental no está disponible para la actualización. Realiza una actualización completa.
      Se requiere crear o volver a inicializar (por ejemplo, en el cambio de esquema) Realiza una actualización completa.
    • INCREMENTAL

      El sistema usa actualizaciones incrementales siempre que sea posible. En CREATE, si la consulta no se puede incrementalizar, se produce un error en la instrucción create.

      Estado Comportamiento
      El incremental está disponible para la actualización. Realiza una actualización incremental.
      El incremental no está disponible para la actualización. Realiza una actualización completa.
      Se requiere crear o volver a inicializar, pero la incrementalización es posible para la consulta. Realiza una actualización completa.
      Se requiere crear o volver a inicializar y la incrementalización no es posible para la consulta. Se produce un error en la operación.
    • INCREMENTAL STRICT

      El sistema usa actualizaciones incrementales. En CREATE, si la consulta no se puede incrementalizar, se produce un error en la instrucción create.

      Estado Comportamiento
      El incremental está disponible para la actualización. Realiza una actualización incremental.
      El incremental no está disponible para la actualización. Se produce un error en la actualización.
      Se requiere crear o volver a inicializar, pero la incrementalización es posible para la consulta. Realiza una actualización completa.
      Se requiere crear o volver a inicializar y la incrementalización no es posible para la consulta. Se produce un error en la operación.
    • FULL

      El sistema siempre usa una actualización completa.

      Estado Comportamiento
      El incremental está disponible para la actualización. Realiza una actualización completa.
      El incremental no está disponible para la actualización. Realiza una actualización completa.
      Se requiere crear o volver a inicializar. Realiza una actualización completa.

Comportamiento en caso de error

Cuando se produce un error en una actualización porque no puede cumplir la directiva de actualización (para REFRESH POLICY INCREMENTAL (STRICT)), el sistema devuelve una clase de error de MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE con información detallada que describe el motivo de no ser incrementalizable:

  • AGGREGATE_NOT_TOP_NODE: GROUP BY con expresiones complejas anteriores no se admite.
  • EXPRESSION_NOT_DETERMINSTIC: se usa una función no determinista, como RAND, en la consulta.
  • INPUT_NOT_IN_DELTA: uno o varios conjuntos de datos de origen no son tablas Delta.
  • OPERATOR_NOT_INCREMENTALIZABLE: un operador, como una combinación compleja, impide la incrementalización.
  • ROW_TRACKING_NOT_ENABLED: las tablas de origen que requieren seguimiento de filas no tienen habilitado el seguimiento de filas.
  • SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLE: una o varias subconsultas de la consulta no son incrementales.
  • UDF_NOT_DETERMINISTIC: una o varias UDF usadas en la expresión no se marcan como deterministas.
  • WINDOW_WITHOUT_PARTITION_BY: las especificaciones de ventana sin PARTITION_BY no son incrementalizables.

Para comprender lo que hace que una consulta sea incrementalizable, consulte Actualización incremental para vistas materializadas.

Para comprobar si una consulta SQL es incrementalizable, use la EXPLAIN CREATE MATERIALIZED VIEW instrucción en Databricks SQL. Consulte EXPLAIN CREATE MATERIALIZED VIEW.

Examples

-- 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;