¿Qué es una vista materializada?
Una vista materializada es una tabla de datos duplicada que se crea mediante la combinación de datos de varias tablas existentes para una recuperación de datos más rápida. Por ejemplo, considere una aplicación de venta minorista con dos tablas base para los datos de clientes y productos. La tabla de clientes contiene información como el nombre y los detalles de contacto del cliente, mientras que la tabla de productos contiene información sobre los detalles y el costo del producto. La tabla de clientes solo almacena los ID de producto de los artículos que compra un cliente individual. Es necesario cruzar ambas tablas para obtener los detalles de los productos comprados por clientes específicos. En su lugar, puede crear una vista materializada que almacene los nombres de los clientes y los detalles del producto asociados en una única tabla temporal. Puede crear estructuras de índices en la vista materializada para mejorar el rendimiento de lectura de datos.
¿Cuáles son los beneficios de las vistas materializadas?
Las vistas materializadas son un método rápido y eficaz para acceder a los datos relevantes. Ayudan a optimizar las consultas en las aplicaciones con uso intensivo de datos. A continuación, analizaremos algunos de los beneficios principales.
Velocidad
Las consultas de lectura escanean diferentes tablas y filas de datos para recopilar la información necesaria. Con las vistas materializadas, puede consultar los datos directamente desde la nueva vista en lugar de tener que calcular la información nueva todas las veces. Cuanto más compleja sea la consulta, más tiempo ahorrará utilizando una vista materializada.
Simplicidad del almacenamiento de datos
Las vistas materializadas le permiten consolidar la lógica de las consultas complejas en una tabla. Esto facilita las transformaciones de los datos y el mantenimiento del código para los desarrolladores. Además, puede ayudar a que las consultas complejas sean más manejables. Usted también puede usar la subconfiguración de los datos para reducir la cantidad de datos que debe replicar en la vista.
Consistencia
Las vistas materializadas proporcionan una visión consistente de los datos registrados en un momento específico. Puede configurar la consistencia de lectura en las vistas materializadas y hacer que los datos sean accesibles incluso en entornos con varios usuarios en los que el control de la simultaneidad es fundamental.
Las vistas materializadas también proporcionan acceso a los datos aunque los datos de origen cambien o se eliminen. Con el tiempo, esto significa que puede utilizar vistas materializadas para elaborar informes sobre instantáneas de datos basadas en el tiempo. El nivel de aislamiento de las tablas de origen garantiza un mayor grado de consistencia en los datos.
Control de acceso mejorado
Puede utilizar una vista materializada para controlar quién tiene acceso a datos específicos. Puede filtrar la información para los usuarios sin tener que darles acceso a las tablas de origen. Este enfoque es práctico si desea controlar quién tiene acceso a qué datos, cuáles de esos datos puede ver y con cuáles puede interactuar.
¿Cuáles son los casos de uso de las vistas materializadas?
Puede beneficiarse de las vistas materializadas en muchos escenarios diferentes.
Distribución de datos filtrados
Si necesita distribuir datos recientes entre muchas ubicaciones, por ejemplo, para personal remoto, las vistas materializadas pueden ayudarlo. Los datos se replican y distribuyen en muchos sitios mediante las vistas materializadas. Las personas que deben acceder a los datos interactúan con el almacén de datos replicados más cercano a ellos geográficamente.
Este sistema permite la simultaneidad y reduce la carga de la red. Es un enfoque eficaz con bases de datos de solo lectura.
Análisis de datos de series temporales
Las vistas materializadas proporcionan instantáneas con marcas de tiempo de los conjuntos de datos para que usted pueda modelar los cambios de la información a lo largo del tiempo. Puede almacenar agregaciones de datos precalculadas, como resúmenes mensuales o semanales. Estos usos son útiles para las plataformas de informes y de inteligencia empresarial.
Interacción remota de datos
En los sistemas de bases de datos distribuidas, puede utilizar vistas materializadas para optimizar las consultas que involucran datos de servidores remotos. En lugar de obtener los datos repetidamente de una fuente remota, puede obtener y almacenar los datos en una vista materializada local. Esto reduce la necesidad de comunicación de red y mejora el rendimiento.
Por ejemplo, si recibe datos de una base de datos externa o a través de una API, una vista materializada los consolida y ayuda a procesarlos.
Procesamiento periódico por lotes
Las vistas materializadas son útiles para situaciones en las que se requiere un procesamiento por lotes periódico. Por ejemplo, una institución financiera puede usar vistas materializadas para almacenar los saldos del final del día y los cálculos de intereses. O pueden almacenar resúmenes del rendimiento de la cartera, que pueden actualizarse al final de cada día hábil.
¿Cómo funcionan las vistas materializadas?
Las vistas materializadas funcionan precalculando y almacenando los resultados de una consulta específica como una tabla física en la base de datos. La base de datos realiza el cálculo previo en intervalos regulares o los usuarios pueden activarlo mediante eventos específicos. Los administradores supervisan el rendimiento y la utilización de los recursos de las vistas materializadas para asegurarse de que sigan cumpliendo el propósito previsto.
A continuación, se presenta una descripción general de la forma en que funcionan las vistas materializadas.
Cree una vista materializada
Usted define una consulta que recupere los datos deseados de una o más tablas de origen para crear vistas materializadas. Esta consulta puede incluir filtros, agregaciones, uniones y otras operaciones según sea necesario.
La base de datos completa inicialmente la vista materializada ejecutando la consulta definida en relación con los datos de origen. El resultado de la consulta se almacena como una tabla física en la base de datos, y esta tabla representa la vista materializada.
Actualice la vista materializada
Los datos de una vista materializada deben actualizarse periódicamente para reflejar los cambios en los datos subyacentes de las tablas de origen. La frecuencia de actualización de los datos depende del caso de uso y de los requisitos.
A continuación, explicamos algunos enfoques comunes para la actualización de datos.
Actualización completa
La vista materializada se vuelve a calcular por completo y se sobrescribe con los resultados de la última consulta. Es el enfoque más simple, pero puede consumir muchos recursos, especialmente si se trata de vistas materializadas de gran tamaño.
Actualización incremental
Solo los cambios en los datos subyacentes se aplican a la vista materializada. Puede ser más eficaz que una actualización completa cuando se trata de grandes conjuntos de datos y actualizaciones frecuentes.
Actualización bajo demanda
Algunos sistemas permiten que las vistas materializadas se actualicen bajo demanda, lo que se puede activar por eventos específicos o solicitudes de los usuarios. Esto proporciona un mayor control sobre cuándo se actualizan los datos, pero requiere una administración cuidadosa para garantizar que la vista materializada permanezca actualizada.
Variaciones técnicas en diferentes sistemas
Cada sistema de administración de bases de datos tiene métodos distintos para crear una vista materializada.
Sistema de administración de bases de datos |
Cómo funcionan las vistas materializadas |
PostgreSQL |
Con PostgreSQL, se debe actualizar manualmente la vista materializada y volver a calcular la vista completa. La vista materializada se completa con datos en el momento exacto en que se crea. |
MySQL |
MySQL no admite las vistas materializadas. |
Oracle |
Oracle actualiza automáticamente las vistas materializadas, pero también ofrece la opción de actualizarlas a pedido. También puede escribir una instrucción SQL que solicite que las vistas se actualicen antes de generar resultados. |
SQL Server |
SQL Server usa el nombre “vistas indexadas”, ya que la materialización es un paso para crear un índice de una vista normal. Solo puede realizar consultas SQL básicas con las vistas indexadas. Se actualizan automáticamente para el usuario. |
MongoDB |
MongoDB usa funciones de agregación para ofrecer una función similar a las vistas materializadas, pero para un entorno NoSQL. |
¿Cuál es la diferencia entre las vistas y las vistas materializadas?
En las bases de datos relacionales, una vista es una tabla temporal que se crea cuando se transforman y combinan los datos en varias tablas base. Es una tabla virtual que no almacena ningún dato por sí misma. En cambio, se define mediante una consulta en una o más tablas de origen.
Cada vez que un usuario consulta la vista, el motor de base de datos calcula dinámicamente los resultados ejecutando la consulta subyacente en las tablas de origen. Los datos de una vista están siempre actualizados porque se derivan directamente de las tablas de origen cada vez que se accede a ellos.
Una vista materializada, por otro lado, almacena los resultados de una consulta específica como una tabla física en la base de datos. Los datos de la vista materializada se calculan con anterioridad y se almacenan, lo que significa que los resultados ya están disponibles sin necesidad de volver a calcular la consulta cada vez que se accede a la vista.
Sin embargo, los datos de las vistas materializadas no siempre están actualizados. Se debe configurar la frecuencia de la actualización para equilibrar la actualización de los datos y el rendimiento de las consultas.
¿Cuáles son los desafíos de las vistas materializadas?
Como las vistas materializadas son otro componente de la base de datos a tener en cuenta, se agrega otro nivel de complejidad en términos de mantenimiento. Debe equilibrar los beneficios de las consultas y la eficiencia con los posibles costos de almacenamiento y los problemas de coherencia de datos.
Debe crear reglas efectivas que activen las actualizaciones para garantizar que las vistas materializadas sigan siendo beneficiosas. La actualización frecuente de las vistas materializadas puede afectar el rendimiento del sistema, especialmente si ya se encuentra en un periodo de máxima actividad. Además, las vistas materializadas también ocupan una cantidad significativa de espacio a medida que replican los datos. Si tiene una base de datos grande que se actualiza constantemente, es probable que las necesidades de almacenamiento de las vistas materializadas sean importantes.
Si va a utilizar una vista materializada, debe establecer reglas y programas de actualización claros. También debe entender cómo tratar las incoherencias de los datos, los errores de actualización y la sobrecarga de almacenamiento adicional.
¿Cómo puede ayudarle AWS con sus requisitos de vista materializada?
Las vistas materializadas son una herramienta eficaz para mejorar el rendimiento de las consultas en Amazon Redshift.
Amazon Redshift monitorea continuamente la carga de trabajo mediante el machine learning y crea nuevas vistas materializadas cuando resultan beneficiosas. Esta característica de vistas materializadas automáticas (AutoMV) de Redshift proporciona los mismos beneficios de rendimiento que las vistas materializadas creadas por el usuario.
La característica AutoMV puede beneficiarle de muchas maneras:
- Equilibre los costos de crear y mantener las vistas materializadas actualizadas con los beneficios esperados de la latencia de las consultas
- Monitoree las AutoMVs creadas anteriormente y elimínelas cuando ya no sean beneficiosas
- Actualice de forma automática e incremental, utilizando los mismos criterios y restricciones que las vistas materializadas creadas por el usuario
Además, los desarrolladores no necesitan revisar las consultas para aprovechar AutoMV. La reescritura automática de consultas para usar vistas materializadas identifica las consultas que pueden beneficiarse de las AutoMVs creadas por el sistema. Reescribe automáticamente esas consultas para usar AutoMVs, lo que mejora la eficiencia de las consultas.
Para comenzar a utilizar vistas materializadas en AWS, cree una cuenta hoy mismo.
Siguientes pasos en AWS
Obtenga acceso instantáneo al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.