Athrun Data Intelligence


Vistas materializadas de Amazon Redshift le permite mejorar significativamente el rendimiento de consultas complejas. Las vistas materializadas almacenan resultados de consultas precomputadas que pueden utilizar futuras consultas similares, ofreciendo una opción poderosa para entornos de almacén de datos donde las aplicaciones a menudo necesitan ejecutar consultas intensivas en capital contra tablas grandes. Esta técnica de optimización mejoramiento la velocidad y la eficiencia de la consulta al permitir que se saltean muchos pasos de cálculo, con resultados precomputados devueltos directamente. Las vistas materializadas son particularmente bártulos para acelerar las consultas predecibles y repetidas, como las utilizadas para guatar los paneles o gestar informes. En oficio de realizar operaciones intensivas en capital repetidamente, las aplicaciones pueden consultar una instinto materializada y recuperar resultados precompensados, lo que lleva a ganancias de rendimiento significativas y una mejor experiencia del adjudicatario. Por otra parte, las vistas materializadas se pueden renovar incrementalmente, aplicando la razonamiento solo para cambiar los datos cuando los cambios de jerga de manipulación de datos (DML) se realizan a las tablas almohadilla subyacentes, optimizando aún más el rendimiento y el mantenimiento de la consistencia de los datos.

Esta publicación demuestra cómo maximizar su Amazon Redshift El rendimiento de la consulta implementando efectivamente vistas materializadas. Exploraremos la creación de vistas materializadas e implementando estrategias de aggiornamento anidada, donde se definen vistas materializadas en términos de otras opiniones materializadas para expandir sus capacidades. Este enfoque es particularmente poderoso para reutilizar las uniones precomputadas con diferentes opciones agregadas, reduciendo significativamente el tiempo de procesamiento para cargas de trabajo complejas ETL y BI. Exploremos cómo implementar esta poderosa característica en el entorno de su almacén de datos.

Comienzo a las opiniones materializadas anidadas

Las vistas materializadas anidadas en Amazon Redshift le permiten crear vistas materializadas basadas en otras vistas materializadas. Esta capacidad permite una estructura jerárquica de resultados precomputados, mejorando significativamente el rendimiento de la consulta y la eficiencia del procesamiento de datos. Con vistas materializadas anidadas, puede construir abstracciones de datos de varias capas, creando vistas cada vez más complejas y especializadas adaptadas a deposición comerciales específicas. Este enfoque en capas ofrece varias ventajas:

  • Rendimiento mejorado de consultas: Cada nivel de la orden de instinto materializada anidada sirve como un personalidad, lo que permite que las consultas accedan rápidamente a los datos precomputados sin la obligación de atravesar las tablas almohadilla subyacentes.
  • Carga computacional estrecha: Al descargar el trabajo computacional al proceso de aggiornamento de la instinto materializada, puede sujetar significativamente el tiempo de ejecución y la utilización de capital de sus consultas diarias.
  • Modelado de datos simplificado: Las vistas materializadas anidadas le permiten crear un maniquí de datos más modular y desplegable, donde cada capa representa un concepto comercial o caso de uso específico.
  • Actualizaciones incrementales: Las vistas materializadas de desplazamiento rojo admiten actualizaciones incrementales, lo que le permite renovar solo los datos cambiados adentro de la orden anidada, optimizando aún más el proceso de aggiornamento.
  • Vistas materializadas en cascada: Las vistas materializadas de desplazamiento al rojo admiten el manejo necesario de extracto, carga y transformación (ELT) cargas de trabajo de estilo, minimizando la obligación de la creación manual y la dirección de estos procesos.

Puede implementar vistas materializadas anidadas utilizando el Crear una instinto materializada Proclamación, que permite hacer relato a otras vistas materializadas en la definición. Los casos de uso comunes incluyen:

  • Tuberías de transformación de datos modulares
  • Agregaciones jerárquicas para el observación progresivo
  • Tuberías de acometividad de datos multinivel
  • Mandato de instantáneas de datos históricos
  • Informes de BI optimizados con resultados precomputados

Edificación

arquitectura

Diagrama arquitectónico que representa la estructura de instinto materializada anidada de Amazon RedShift. Muestra múltiples tablas almohadilla (naranja) que se conectan a vistas materializadas (rojo), con conexiones a una capa de instinto anidada y una tabla de intercambio de datos (verde). Incluye puntos de integración para usuarios y visualización de vía rápida.

  1. Mesa almohadilla (s): Estas son las tablas almohadilla subyacentes que contienen los datos sin procesar para su almacén de datos. Puede ser tablas locales o tablas de intercambio de datos.
  2. Vistas materializadas de almohadilla: Estas son las vistas materializadas de primer nivel que se crean directamente sobre las tablas almohadilla. Estas vistas encapsulan las transformaciones y agregaciones de datos comunes. Esto puede servir como almohadilla para la instinto materializada anidada y incluso puede ingresar directamente a los usuarios.
  3. Vistas materializadas anidadas: Estas son las vistas materializadas de segundo nivel (o más) que se crean en función de las vistas materializadas almohadilla. La instinto materializada anidada puede asociar, filtrar o modificar aún más los datos de las vistas materializadas almohadilla.
  4. Aplicación/Usuarios/Informes de BI: Las herramientas de aplicación o inteligencia empresarial (BI) interactúan con las vistas materializadas anidadas para gestar informes y paneles. Las vistas anidadas proporcionan una estructura de datos más optimizada y precomputada para consultas e informes eficientes.

Creación y uso de vistas materializadas anidadas

Para demostrar cómo funcionan las vistas materializadas anidadas en Amazon Redshift, utilizaremos el conjunto de datos TPC-DS. Crearemos tres consultas utilizando las tablas Store, Store_Sales, Customer y Customer_Address para aparentar los informes de almacén de datos. Este ejemplo ilustrará cómo múltiples informes pueden compartir conjuntos de resultados y cómo las vistas materializadas pueden mejorar tanto la eficiencia de los capital como el rendimiento de la consulta. Considere las siguientes consultas como consultas del tablero:

SELECT cust.c_customer_id,
cust.c_first_name, 
cust.c_last_name, 
sales.ss_item_sk, 
sales.ss_quantity, 
cust.c_current_addr_sk 
FROM store_sales sales INNER JOIN customer cust
ON sales.ss_customer_sk = cust.c_customer_sk;

SELECT cust.c_customer_id,
cust.c_first_name, 
cust.c_last_name, 
sales.ss_item_sk, 
sales.ss_quantity, 
cust.c_current_addr_sk, 
store.s_store_name
FROM store_sales sales INNER JOIN customer cust
ON sales.ss_customer_sk = cust.c_customer_sk
INNER JOIN store store
ON sales.ss_store_sk = store.s_store_sk;

SELECT cust.c_customer_id, 
cust.c_first_name, cust.c_last_name, 
sales.ss_item_sk, 
sales.ss_quantity, 
addr.ca_state
FROM store_sales sales INNER JOIN customer cust
ON sales.ss_customer_sk = cust.c_customer_sk
INNER JOIN store store
ON sales.ss_store_sk = store.s_store_sk
INNER JOIN customer_address addr
ON cust.c_current_addr_sk = addr.ca_address_sk;

Observe que la unión entre store_sales y tablas de clientes está presente en las 3 consultas (paneles).

La segunda consulta agrega una unión con la tabla de la tienda y la tercera consulta es la segunda con una unión adicional con la tabla Customer_Address. Este patrón es global en los escenarios de inteligencia empresarial. Como se mencionó anteriormente, el uso de una instinto materializada puede acelerar las consultas porque el conjunto de resultados se almacena y está astuto para ser entregado al adjudicatario, evitando el reprocesamiento de los mismos datos. En casos como este, podemos usar vistas materializadas anidadas para reutilizar datos ya procesados. Cuando modificar nuestras consultas en un conjunto de vistas materializadas anidadas, el resultado sería el subsiguiente:

CREATE MATERIALIZED VIEW StoreSalesCust as
SELECT cust.c_customer_id, 
cust.c_first_name, 
cust.c_last_name, 
sales.ss_item_sk, 
sales.ss_store_sk, 
sales.ss_quantity, 
cust.c_current_addr_sk
FROM store_sales sales INNER JOIN customer cust
ON sales.ss_customer_sk = cust.c_customer_sk;

CREATE MATERIALIZED VIEW StoreSalesCustStore as
SELECT storesalescust.c_customer_id, 
storesalescust.c_first_name, 
storesalescust.c_last_name, 
storesalescust.ss_item_sk, 
storesalescust.ss_quantity, 
storesalescust.c_current_addr_sk, 
store.s_store_name
FROM StoreSalesCust storesalescust INNER JOIN store store
ON storesalescust.ss_store_sk = store.s_store_sk;

CREATE MATERIALIZED VIEW StoreSalesCustAddress as
SELECT storesalescuststore.c_customer_id, 
storesalescuststore.c_first_name, 
storesalescuststore.c_last_name, 
storesalescuststore.ss_item_sk, 
storesalescuststore.ss_quantity, 
addr.ca_state
FROM StoreSalesCustStore storesalescuststore INNER JOIN customer_address addr
ON storesalescuststore.c_current_addr_sk = addr.ca_address_sk;

Las vistas materializadas anidadas pueden mejorar el rendimiento y la eficiencia de los capital al reutilizar los resultados de la instinto original, minimizar las uniones redundantes y trabajar con conjuntos de resultados más pequeños. Esto crea una estructura jerárquica donde las vistas materializadas dependen entre sí. Oportuno a estas dependencias, debe renovar las vistas en un orden específico.

mensaje

Resultado de la consulta SQL que indica un problema de dependencia para renovar la instinto materializada de almacenamiento de almacenes.

Con la nueva opción «Clarividencia materializada de aggiornamento mv_name Cascade ”, podrá renovar toda la sujeción de dependencias para las vistas materializadas que tiene. Tenga en cuenta que en este ejemplo estamos utilizando la tercera instinto materializada, StoresalScustaddress, y esto actualizará las 3 vistas materializadas porque dependen unos de otros.

mensaje

Consulta SQL que muestra una exitosa aggiornamento en cascada de la instinto materializada de almacenes en Amazon Redshift.

Si usamos la segunda instinto materializada con la opción Cascade, actualizaremos solo la primera y la segunda vistas materializadas, dejando la tercera sin cambios. Esto puede ser útil cuando necesitamos sostener algunas vistas materializadas con menos datos actuales que otros.

El Svl_mv_refresh_status La instinto del sistema revela la secuencia de aggiornamento de vistas materializadas. Al activar una aggiornamento en cascada en los almacenes de almacenamiento, el sistema sigue la sujeción de dependencia que establecimos: las actualizaciones de almacenamiento se actualizan primero, seguido de Storesalescuststore, y finalmente almacenamiento de almacenes. Esto demuestra cómo la operación de aggiornamento respeta la estructura jerárquica de nuestras vistas materializadas.

resultado

Resultado de la consulta SQL de svl_mv_refresh_status que muestra una recomputación exitosa de tres vistas materializadas.

Consideraciones

Considere una sujeción de dependencia donde los almacenes (a) → almacenes de almacenamiento (b) → acumular la cantidad de almacenamiento (c).

  • El comportamiento de aggiornamento de cascada funciona de la subsiguiente modo:
    • Al renovar C con Cascade: A, B y C se actualizarán.
    • Al renovar B con Cascade: solo A y B se actualizarán.
    • Al refrescar A con Cascade: solo se actualizará.
    • Si específicamente necesita renovar A y C, pero no B, debe realizar operaciones de aggiornamento separadas sin usar Cascade; primero actualiza A, luego actualice C directamente.

Las mejores prácticas para la instinto materializada

  • Mejore la consulta de origen: comience con una revelación selecta acertadamente optimizada para su instinto materializada. Esto es especialmente importante para las vistas que necesitan reconstrucciones completas durante cada aggiornamento.
  • Plan de aggiornamento Estrategias: al crear vistas materializadas que dependen de otras vistas materializadas, no puede usar aggiornamento cibernética sí. En su oficio, implementa mecanismos de aggiornamento orquestados utilizando la API de datos de desplazamiento rojo con Amazon Eventbridge para la programación y las funciones de AWS Step para la dirección del flujo de trabajo.
  • Distribución de apalancamiento y claves de clasificación: Configure correctamente las teclas de distribución y ordene en vistas materializadas en función de sus patrones de consulta para optimizar el rendimiento. Las teclas acertadamente elegidas mejoran la velocidad de consulta y reducen las operaciones de E/S.
  • Considere la capacidad de aggiornamento incremental: cuando sea posible, el diseño materializó vistas para albergar la aggiornamento incremental, que solo las actualizaciones cambiaron los datos en oficio de recobrar la instinto completa, mejorando en gran medida el rendimiento de la aggiornamento.
  • Para obtener más información sobre la función Automated Materialized View (Utilitario-MV) para aumentar el rendimiento de su carga de trabajo, este sistema inteligente monitorea su carga de trabajo y crea automáticamente vistas materializadas para mejorar el rendimiento universal. Para obtener información más detallada sobre esta función, consulte Vistas materializadas automatizadas.

Lustrar

Complete los siguientes pasos para apañar sus capital:

  • Eliminar el clúster de réplica aprovisionado por el desplazamiento rojo o los puntos finales sin servidor de cambio rojo creados para este control

o

  • Soltee solo la instinto materializada que ha creado para probar

Conclusión

Esta publicación mostró cómo crear vistas materializadas de desplazamiento rojo de Amazon anidado y renovar las vistas materializadas para niños utilizando la nueva opción de aggiornamento de aggiornamento. Puede construir y sostener rápidamente las tuberías de procesamiento de datos eficientes y extender sin problemas los beneficios de ejecución de consultas de pérdida latencia de las vistas materializadas al observación de datos.


Sobre los autores

Ritesh Kumar Sinha es un arquitecto de soluciones especialistas en observación con sede en San Francisco. Ha ayudado a los clientes a desarrollar soluciones de almacenamiento de datos escalables y big data durante más de 16 abriles. Le encanta diseñar y construir soluciones eficientes de extremo a extremo en AWS. En su tiempo vacante, le encanta descifrar, caminar y hacer yoga.

Raza Hafeez es regente de productos senior en Amazon Redshift. Tiene más de 13 abriles de experiencia profesional construyendo y optimización de almacenes de datos empresariales y le apasiona permitir que los clientes realicen el poder de sus datos. Se especializa en portar almacenes de datos empresariales a la bloque de datos moderna de AWS.

Ricardo Serafim es un arquitecto de soluciones especialistas en observación de observación en AWS. Ha estado ayudando a empresas con soluciones de almacén de datos desde 2007.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *