REFRESH MATERIALIZED VIEW - Amazon Redshift

REFRESH MATERIALIZED VIEW

Actualiza una vista materializada.

Cuando crea una vista materializada, su contenido refleja el estado de la tabla o tablas de bases de datos subyacentes en ese momento. Los datos en la vista materializada permanecen sin cambios, incluso cuando las aplicaciones realizan cambios en los datos de las tablas subyacentes. Para actualizar los datos en una vista materializada, puede utilizar la instrucción REFRESH MATERIALIZED VIEW en cualquier momento. Cuando se utiliza esta instrucción, Amazon Redshift identifica los cambios que han tenido lugar en la tabla o las tablas base, para luego aplicar esos cambios en la vista materializada.

Para obtener más información acerca de las vistas materializadas, consulte Creación de vistas materializadas en Amazon Redshift.

Sintaxis

REFRESH MATERIALIZED VIEW mv_name

Parámetros

mv_name

El nombre de la vista materializada que desea actualizar.

Notas de uso

Solo el propietario de una vista materializada puede realizar una operación REFRESH MATERIALIZED VIEW en esa vista. Además, el propietario debe tener el privilegio SELECT en las tablas base subyacentes para ejecutar correctamente REFRESH MATERIALIZED VIEW.

El comando REFRESH MATERIALIZED VIEW se ejecuta como una transacción propia. Se sigue la semántica de las transacciones de Amazon Redshift para determinar qué datos de las tablas base son visibles para el comando REFRESH o cuándo los cambios realizados por el comando REFRESH están visibles para otras transacciones que se ejecutan en Amazon Redshift.

  • En las vistas materializadas incrementales, REFRESH MATERIALIZED VIEW utiliza solo las filas de la tabla base que ya están confirmadas. Por lo tanto, si la operación de actualización se ejecuta después de una instrucción de lenguaje de manipulación de datos (DML) en la misma transacción, los cambios de esa instrucción DML no son visibles para actualizar.

  • Para la actualización completa de una vista materializada, REFRESH MATERIALIZED VIEW ve todas las filas de la tabla base visibles para la transacción de actualización, de acuerdo con la semántica de transacción habitual de Amazon Redshift.

  • Según el tipo de argumento de entrada, Amazon Redshift sigue admitiendo la actualización incremental para vistas materializadas de las siguientes funciones con tipos de argumentos de entrada específicos: DATE (marca temporal), DATE_PART (fecha, hora, intervalo, tiempo-tz), DATE_TRUNC (marca temporal, intervalo).

  • La actualización incremental es compatible con una vista materializada donde la tabla básica se encuentra en un recurso compartido de datos.

Algunas operaciones de Amazon Redshift interactúan con vistas materializadas. Algunas de estas operaciones pueden forzar que una operación REFRESH MATERIALIZED VIEW vuelva a calcular completamente la vista materializada aunque la consulta que define la vista materializada solo utilice las características SQL aptas para la actualización incremental. Por ejemplo:

  • Las operaciones de vacío en segundo plano pueden bloquearse si las vistas materializadas no se actualizan. Después de un periodo de umbral definido internamente, la operación de vacío puede funcionar. Cuando ocurre esta operación de vacío, cualquier vista materializada dependiente se marca para un nuevo cálculo en la siguiente actualización (incluso si es incremental). Para obtener información acerca de VACUUM, consulte VACUUM. Para obtener más información sobre eventos y cambios de estado, consulte STL_MV_STATE.

  • Algunas operaciones iniciadas por un usuario en tablas base fuerzan a la vista materializada a que se vuelva a calcular completamente la próxima vez que se ejecute una operación REFRESH. Ejemplos de tales operaciones son una operación VACUUM invocada manualmente, un cambio de tamaño clásico, una operación ALTER DISTKEY, una operación ALTER SORTKEY y una operación truncada. Para obtener más información sobre eventos y cambios de estado, consulte STL_MV_STATE.

Actualización incremental para obtener vistas materializadas en un recurso compartido de datos

Amazon Redshift admite la actualización automática e incremental de las vistas materializadas en un recurso compartido de datos de consumidores cuando se comparten las tablas base. La actualización incremental es una operación en la que Amazon Redshift identifica los cambios en la tabla o tablas base que se produjeron después de la actualización anterior y actualiza solo los registros correspondientes de la vista materializada. Para obtener más información sobre este comportamiento, consulte CREATE MATERIALIZED VIEW.

Limitaciones para la actualización incremental

En este momento, Amazon Redshift no es compatible con la actualización progresiva para vistas materializadas que se definen con una consulta a través de cualquiera de los siguientes elementos SQL:

  • OUTER JOIN (RIGHT, LEFT o FULL).

  • Establecer operaciones: UNION, INTERSECT, EXCEPT, MINUS.

  • UNION ALL cuando se produce en una subconsulta y una función de agrupación o una cláusula GROUP BY está presente en la consulta.

  • Las funciones de agrupación MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE y las funciones de agrupación de cada bit.

    nota

    ‎Se admiten las funciones de agregación COUNT, SUM, MIN, MAX y AVG.

  • Funciones de agregación DISTINCT, como DISTINCT COUNT, DISTINCT SUM, etc.

  • Funciones de ventana.

  • Una consulta que utiliza tablas temporales para la optimización de consultas, como la optimización de subexpresiones comunes.

  • subconsultas

  • Tablas externas que hacen referencia a los siguientes formatos de la consulta que definen la vista materializada.

    • Delta Lake

    • Hudi

    La actualización incremental es compatible con las vistas materializadas definidas con tablas externas que hacen referencia a otros formatos de la pista de vista preliminar. Para obtener más información sobre la configuración de clústeres de versión preliminar, consulte Crear un clúster de versión preliminar en la Guía de administración de Amazon Redshift. Para obtener información sobre la configuración de grupos de trabajo de versión preliminar, consulte Crear un grupo de trabajo de vista previa en la Guía de administración de Amazon Redshift.

  • Funciones mutables, como funciones de fecha y hora, funciones definidas por el usuario RANDOM y no STABLE.

  • Para conocer las limitaciones de la actualización incremental de las integraciones sin ETL, consulte Consideraciones al usar integraciones sin ETL con Amazon Redshift.

Para obtener más información sobre las limitaciones de la vista materializada, incluido el efecto de las operaciones en segundo plano, como VACUUM, en las operaciones de actualización de la vista materializada, consulte Notas de uso.

Ejemplos

El siguiente ejemplo actualiza la vista materializada de tickets_mv.

REFRESH MATERIALIZED VIEW tickets_mv;