Desplazamiento al rojo del Amazonas es un almacén de datos en la nube rápido y totalmente administrado que hace que sea rentable analizar sus datos utilizando SQL estándar y herramientas de inteligencia empresarial. Puede utilizar Amazon Redshift para analizar datos estructurados y semiestructurados y consultar sin problemas lagos de datos y bases de datos operativas, utilizando {hardware} diseñado por AWS y ajustes automatizados basados en aprendizaje automático (ML) para ofrecer un rendimiento de precios de primer nivel a escala.
Amazon Redshift cumple Rendimiento de precio desde el primer momento. Sin embargo, también ofrece optimizaciones adicionales que puede utilizar para mejorar aún más este rendimiento y lograr tiempos de respuesta de consultas aún más rápidos desde su almacén de datos.
Una de esas optimizaciones para reducir el tiempo de ejecución de la consulta es precalcular los resultados de la consulta en forma de vista materializada. Las vistas materializadas en Redshift aceleran la ejecución de consultas en tablas grandes. Esto es útil para consultas que involucran agregaciones y uniones de varias tablas. Las vistas materializadas almacenan un conjunto de resultados precalculados de estas consultas y también admiten la capacidad de actualización incremental para tablas locales.
Los clientes utilizan tablas de lagos de datos para lograr un almacenamiento rentable y la interoperabilidad con otras herramientas. Con formatos de tabla abierta (OTF), como Apache Iceberg, los datos se agregan y actualizan continuamente.
Amazon Redshift ahora ofrece la capacidad de actualizar de forma incremental sus vistas materializadas en tablas del lago de datos, incluidos formatos de tablas y archivos abiertos, como Apache Iceberg.
En esta publicación, le mostraremos paso a paso qué operaciones se admiten tanto en formatos de archivos abiertos como en tablas de lagos de datos transaccionales para permitir la actualización incremental de la vista materializada.
Requisitos previos
Para ver los ejemplos de esta publicación, necesita los siguientes requisitos previos:
- Puede probar la actualización incremental de vistas materializadas en tablas de lago de datos estándar en su cuenta utilizando un almacén de datos y un lago de datos de Redshift existentes. Sin embargo, si desea probar los ejemplos utilizando datos de muestra, descargar los datos de muestra. Los archivos de muestra son ‘|’ archivos de texto delimitados.
- Un Gestión de acceso e identidad de AWS (IAM) función asignada a Amazon Redshift para otorgar la permisos mínimos requerido para usar Espectro de desplazamiento al rojo con Servicio de almacenamiento easy de Amazon (Amazon S3) y Pegamento AWS.
- Establecer la función de IAM como predeterminada papel en Amazon Redshift.
Actualización incremental de vistas materializadas en tablas de lago de datos estándar
En esta sección, aprenderá cómo crear y actualizar de forma incremental vistas materializadas en Amazon Redshift en archivos de texto estándar en Amazon S3, manteniendo la actualización de los datos con un enfoque rentable.
- Subir el primer archivo,
buyer.tbl.1
descargado del Requisitos previos sección en el depósito S3 que desee con el prefijobuyer
. - Conéctese a su grupo de trabajo sin servidor de Amazon Redshift o al clúster aprovisionado de Redshift mediante Editor de consultas v2.
- Crea un esquema externo.
- Crea una tabla externa llamada
buyer
en el esquema externodatalake_mv_demo
creado en el paso anterior. - Validar los datos de muestra en el cliente externo.
- Cree una vista materializada en la tabla externa.
- Validar los datos en la vista materializada.
- Sube un nuevo archivo
buyer.tbl.2
en el mismo depósito S3 ybuyer
ubicación del prefijo. Este archivo contiene un registro adicional. - Usando Editor de consultas v2 actualiza la vista materializada
customer_mv
. - Valide la actualización incremental de la vista materializada cuando se agregue el nuevo archivo.
- Recuperar el número precise de filas presentes en la vista materializada
customer_mv
. - Borrar el archivo existente
buyer.tbl.1
del mismo depósito S3 y prefijobuyer
. Sólo deberías tenerbuyer.tbl.2
en elbuyer
prefijo de su depósito S3. - Usando Editor de consultas v2actualiza la vista materializada
customer_mv
de nuevo. - Verifique que la vista materializada se actualice de forma incremental cuando se elimine el archivo existente.
- Recuperar el recuento de filas precise en la vista materializada
customer_mv
. Ahora debería tener un registro como presente en elbuyer.tbl.2
archivo. - Modificar el contenido del descargado previamente
buyer.tbl.2
archivo modificando la clave de cliente de999999999
a111111111
. - Guarde el archivo modificado y cárguelo nuevamente en el mismo depósito de S3, sobrescribiendo el archivo existente dentro del
buyer
prefijo. - Usando Editor de consultas v2actualiza la vista materializada
customer_mv
- Valide que la vista materializada se actualizó incrementalmente después de que se modificaron los datos en el archivo.
- Valide que los datos en la vista materializada reflejen sus cambios de datos anteriores desde
999999999
a111111111
.
Actualización incremental de la vista materializada en las tablas del lago de datos Apache Iceberg
Iceberg apache es un formato de tabla abierta de lago de datos que se está convirtiendo rápidamente en un estándar de la industria para la gestión de datos en lagos de datos. Iceberg presenta nuevas capacidades que permiten que múltiples aplicaciones trabajen juntas con los mismos datos de manera transaccionalmente consistente.
En esta sección exploraremos cómo Desplazamiento al rojo del Amazonas Puede integrarse perfectamente con Apache Iceberg. Puede utilizar esta integración para crear vistas materializadas y actualizarlas gradualmente utilizando un enfoque rentable, manteniendo la actualización de los datos almacenados.
- Inicie sesión en el Consola de administración de AWSir a Atenea amazónicay ejecute el siguiente SQL para crear una base de datos en un catálogo de AWS Glue.
- Crear una nueva tabla Iceberg
- Agregue algunos datos de muestra a
iceberg_mv_demo.class
. - Validar los datos de muestra en
iceberg_mv_demo.class
. - Conéctese a su grupo de trabajo sin servidor de Amazon Redshift o al clúster aprovisionado de Redshift mediante Editor de consultas v2.
- Crear un esquema externo
- Consulta los datos de la tabla Iceberg de Amazon Redshift.
- Cree una vista materializada utilizando el esquema externo.
- Validar los datos en la vista materializada.
- Usando Atenea amazónicamodificar la tabla Iceberg
iceberg_mv_demo.class
e insertar datos de muestra. - Usando Editor de consultas v2actualiza la vista materializada
mv_category
. - Valide la actualización incremental de la vista materializada después de que se completaron los datos adicionales en la tabla Iceberg.
- Usando Atenea amazónicamodificar la tabla Iceberg
iceberg_mv_demo.class
eliminando y actualizando registros. - Validar los datos de muestra en
iceberg_mv_demo.class
para confirmar quecatid=4
ha sido actualizado ycatid=3
ha sido eliminado de la tabla. - Usando Editor de consultas v2Actualizar la vista materializada
mv_category
. - Valide la actualización incremental de la vista materializada después de que se actualizó una fila y se eliminó otra.
Mejoras de rendimiento
Para comprender las mejoras de rendimiento de la actualización incremental en comparación con el recálculo completo, utilizamos el estándar de la industria Prueba comparativa TPC-DS utilizando conjuntos de datos de 3 TB para tablas Iceberg configuradas en copia en escritura. En nuestro punto de referencia, las tablas de hechos se almacenan en Amazon S3, mientras que las tablas de dimensiones están en Redshift. Nosotros creamos 34 vistas materializadas que representa diferentes casos de uso de clientes en un clúster aprovisionado por Redshift de tamaño ra3.4xl con 4 nodos. aplicamos 1% inserciones y eliminaciones en tablas de hechos, es decir, tablas store_sales
, catalog_sales
y web_sales
. Ejecutamos las inserciones y eliminaciones con Spark SQL en EMR sin servidor. Actualizamos las 34 vistas materializadas mediante actualización incremental y medimos latencias de actualización. Repetimos el experimento utilizando un nuevo cálculo completo.
Nuestros experimentos muestran que la actualización incremental proporciona mejoras sustanciales en el rendimiento con respecto al recálculo completo. Después de las inserciones, se realizó una actualización incremental. 13,5 veces más rápido en promedio que el recálculo completo (máximo 43,8 veces, mínimo 1,8 veces). Después de las eliminaciones, se realizó una actualización incremental. 15 veces más rápido en promedio (máximo 47X, mínimo 1,2X). Los siguientes gráficos ilustran la latencia de actualización.
Inserciones
Elimina
Limpiar
Cuando haya terminado, elimine los recursos que ya no necesite para evitar cargos continuos.
- Ejecute el siguiente script para limpiar los objetos de Amazon Redshift.
- Ejecute el siguiente script para limpiar las tablas de Apache Iceberg usando Atenea amazónica.
Conclusión
Las vistas materializadas en Amazon Redshift pueden ser una poderosa herramienta de optimización. Con la actualización incremental de las vistas materializadas en las tablas del lago de datos, puede almacenar los resultados calculados previamente de sus consultas en una o más tablas base, lo que proporciona un enfoque rentable para mantener datos actualizados. Le recomendamos que actualice las cargas de trabajo de su lago de datos y utilice la función de vista materializada incremental. Si es nuevo en Amazon Redshift, pruebe la Tutorial de introducción y usar el prueba gratuita para crear y aprovisionar su primer clúster y experimentar con la función.
Ver Vistas materializadas en tablas de lagos de datos externos en Amazon Redshift Spectrum para consideraciones y mejores prácticas.
Sobre los autores
Raks Khare es un arquitecto senior de soluciones especializado en análisis en AWS con sede en Pensilvania. Ayuda a clientes de diversas industrias y regiones a diseñar soluciones de análisis de datos a escala en la plataforma AWS. Fuera del trabajo, le gusta explorar nuevos destinos de viajes y gastronomía y pasar tiempo de calidad con su familia.
Tahir Aziz es arquitecto de soluciones de análisis en AWS. Ha trabajado en la construcción de almacenes de datos y soluciones de large knowledge durante más de 15 años. Le encanta ayudar a los clientes a diseñar soluciones de análisis de un extremo a otro en AWS. Fuera del trabajo, le gusta viajar y cocinar.
Raza Hafeez es gerente senior de productos en Amazon Redshift. Tiene más de 13 años de experiencia profesional en la creación y optimización de almacenes de datos empresariales y le apasiona permitir que los clientes se den cuenta del poder de sus datos. Se especializa en migrar almacenes de datos empresariales a AWS Trendy Information Structure.
Enrico Siragusa es ingeniero sénior de desarrollo de software program en Amazon Redshift. Contribuyó al procesamiento de consultas y vistas materializadas. Enrico tiene un M.Sc. en Ciencias de la Computación de la Universidad de Paris-Est y un Ph.D. en Bioinformática de la Escuela Internacional de Investigación Max Planck en Biología Computacional y Computación Científica en Berlín.