Optimización de Bases de Datos en Modelos Dimensionales

Clase 20 de 33Curso de AWS Redshift para Manejo de Big Data

Resumen

¿Cómo optimizar bases de datos para grandes volúmenes de datos?

La optimización de bases de datos es crucial en el mundo del Big Data y Business Intelligence, donde trabajamos con grandes volúmenes de información. En este curso de Repsheet, abordamos un modelo dimensional con una tabla de hechos que contiene aproximadamente seiscientos millones de registros. Aquí aprenderás a optimizar una base de datos cruda mediante compresión, distribución de datos y claves de ordenamiento.

¿Qué pasos seguir para crear y poblar las tablas?

Para trabajar con este reto, utilizaremos scripts de un repositorio en GitHub. Primero, creamos las tablas sin configuración de distribución, compresión u ordenamiento. Luego, con el uso del comando COPY, populamos las tablas con datos de ejemplo desde un bucket de Amazon.

COPY customer
FROM 'aws_sample_bucket'
CREDENTIALS 'aws_credentials'

Este comando nos permite cargar datos comprimidos sin la necesidad de subirlos a nuestro bucket, gracias a la estructura de directorios de AWS.

¿Cómo aplicar compresión y distribución de datos?

Una vez pobladas, analizamos la compresión de datos para optimizar el almacenamiento y rendimiento. El comando ANALYZE COMPRESSION sugiere el mejor método de compresión para cada columna.

ANALYZE COMPRESSION customer;

Ejemplo de ajustes propuestos:

  • AZ64 para claves primarias.
  • Compresión estándar para nombres.
  • Diccionario de datos para ciudades y regiones frecuentes.

Estas configuraciones se aplican al crear una nueva tabla, asegurando optimización desde el inicio.

¿Cómo probar la optimización en modelos dimensionales?

Al crear una nueva tabla optimizada, como customer_pro, aplicamos claves de distribución y compresión recomendadas:

CREATE TABLE customer_pro (
    ...
    ENCODE AZ64,
    ...
) DISTKEY (coskey);

Al insertarse con INSERT INTO, se validan las mejoras analizando el rendimiento de queries para comparar entre tablas crudas y optimizadas.

¿Cómo enfrentar retos similares en la industria?

Este reto no solamente optimiza tablas de dimensiones, sino también implica mejorar las tablas de hechos. Al ejecutar queries de prueba disponibles en GitHub, se comparan los tiempos de ejecución entre tablas antes y después de aplicar optimizaciones.

Con este enfoque, podrás enfrentar grandes datos de manera más eficiente, asegurando que cada query se ejecute de manera óptima en este entorno de alto volumen. Practica estos pasos y comparte tus resultados, aplicando tus conocimientos en optimización de bases de datos para mejorar significativamente el rendimiento en escenarios del mundo real. ¡Adelante y aprovéchalo!