📈
Analytics - Redshift, Athena, QuickSight
Kinesis, Athena, QuickSight y servicios de análisis
⏱️ Tiempo estimado de lectura: 20 minutos
Amazon Redshift - Data Warehouse
Amazon Redshift es un data warehouse totalmente gestionado y petabyte-scale basado en PostgreSQL, optimizado para OLAP (análisis).
Características:
- Almacenamiento columnar: Optimizado para queries analíticas
- Compresión masiva: Reduce almacenamiento y I/O
- MPP (Massively Parallel Processing): Distribuye queries en múltiples nodos
- 10x mejor rendimiento que data warehouses tradicionales
- Costo: $0.25/hora por TB/año (mucho más barato que databases OLTP)
Arquitectura:
- Leader Node: Planifica queries, coordina ejecución
- Compute Nodes: Ejecutan queries y almacenan datos
- Node Slices: Particiones de memoria y disco en compute node
Tipos de nodos:
- RA3 (recomendado): Cómputo y almacenamiento independientes, S3-backed
- DC2 (Dense Compute): SSD, mejor para performance
- DS2 (Dense Storage): HDD, más capacidad, más económico
Redshift Serverless:
- No provisionar clusters manualmente
- Auto-scaling automático
- Pago por RPU (Redshift Processing Units) usados
Características:
- Almacenamiento columnar: Optimizado para queries analíticas
- Compresión masiva: Reduce almacenamiento y I/O
- MPP (Massively Parallel Processing): Distribuye queries en múltiples nodos
- 10x mejor rendimiento que data warehouses tradicionales
- Costo: $0.25/hora por TB/año (mucho más barato que databases OLTP)
Arquitectura:
- Leader Node: Planifica queries, coordina ejecución
- Compute Nodes: Ejecutan queries y almacenan datos
- Node Slices: Particiones de memoria y disco en compute node
Tipos de nodos:
- RA3 (recomendado): Cómputo y almacenamiento independientes, S3-backed
- DC2 (Dense Compute): SSD, mejor para performance
- DS2 (Dense Storage): HDD, más capacidad, más económico
Redshift Serverless:
- No provisionar clusters manualmente
- Auto-scaling automático
- Pago por RPU (Redshift Processing Units) usados
Puntos Clave
- ✓ Redshift es OLAP (analytics), NO usar para OLTP (transaccional)
- ✓ Carga masiva de datos más eficiente que inserts individuales
- ✓ Snapshots son incrementales, pueden copiarse a otras regiones
- ✓ Enhanced VPC Routing fuerza tráfico por VPC (más seguro)
- ✓ Spectrum permite queries en S3 sin cargar a Redshift
💻 Operaciones en Redshift
-- Crear tabla con distribución KEY
CREATE TABLE ventas (
venta_id INT,
producto_id INT,
fecha DATE,
cantidad INT,
precio DECIMAL(10,2)
)
DISTSTYLE KEY
DISTKEY (producto_id)
SORTKEY (fecha);
-- Cargar datos desde S3
COPY ventas
FROM 's3://mi-bucket/ventas/'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftCopyRole'
FORMAT AS PARQUET;
-- Query con Redshift Spectrum (datos en S3)
SELECT producto_id, SUM(cantidad)
FROM spectrum.external_ventas
WHERE fecha >= '2024-01-01'
GROUP BY producto_id; Optimización de Rendimiento en Redshift
Redshift ofrece múltiples técnicas para optimizar queries y reducir costos.
Distribution Styles:
- AUTO: Redshift decide automáticamente
- EVEN: Distribución round-robin (default)
- KEY: Distribuye filas según valor de columna (co-location)
- ALL: Copia tabla completa a todos los nodos (tablas pequeñas)
Sort Keys:
- Compound: Orden multi-columna (ej: fecha, región)
- Interleaved: Optimiza filtros en cualquier columna del key
- Acelera queries con WHERE, JOIN, ORDER BY en columnas sorted
Compression:
- Encoding automático durante COPY
- Tipos: AZ64, LZO, Runlength, Delta, Mostly
- Analizar con ANALYZE COMPRESSION
Best Practices:
- Usar COPY en lugar de INSERT para carga masiva
- Ejecutar VACUUM para reorganizar datos
- ANALYZE actualiza estadísticas para query planner
- Workload Management (WLM) para priorizar queries
- Materialized views para queries frecuentes
Distribution Styles:
- AUTO: Redshift decide automáticamente
- EVEN: Distribución round-robin (default)
- KEY: Distribuye filas según valor de columna (co-location)
- ALL: Copia tabla completa a todos los nodos (tablas pequeñas)
Sort Keys:
- Compound: Orden multi-columna (ej: fecha, región)
- Interleaved: Optimiza filtros en cualquier columna del key
- Acelera queries con WHERE, JOIN, ORDER BY en columnas sorted
Compression:
- Encoding automático durante COPY
- Tipos: AZ64, LZO, Runlength, Delta, Mostly
- Analizar con ANALYZE COMPRESSION
Best Practices:
- Usar COPY en lugar de INSERT para carga masiva
- Ejecutar VACUUM para reorganizar datos
- ANALYZE actualiza estadísticas para query planner
- Workload Management (WLM) para priorizar queries
- Materialized views para queries frecuentes
Puntos Clave
- ✓ DISTKEY debería ser columna usada frecuentemente en JOINs
- ✓ SORTKEY debería ser columna en WHERE y ORDER BY
- ✓ VACUUM recupera espacio de filas borradas/actualizadas
- ✓ Deep Copy (CREATE TABLE AS) puede ser más rápido que VACUUM
- ✓ Concurrency Scaling auto-escala para picos de queries
Amazon Athena - Análisis Serverless
Amazon Athena es un servicio de queries interactivo serverless que permite analizar datos en S3 usando SQL estándar.
Características:
- Serverless: No infraestructura que provisionar
- SQL estándar: Basado en Presto, soporta SQL ANSI
- Pago por query: $5 por TB de datos escaneados
- Integración S3: Lee datos directamente de S3
- Múltiples formatos: CSV, JSON, Parquet, ORC, Avro
Casos de uso:
- Análisis ad-hoc de logs (VPC Flow Logs, CloudTrail, ALB logs)
- Business intelligence con QuickSight
- Análisis de data lakes en S3
- Queries sobre datos sin ETL previo
Optimización de costos:
- Usar formatos columnares: Parquet/ORC (80-90% menos scan)
- Comprimir datos: GZIP, SNAPPY reduce bytes escaneados
- Particionar datos: Por fecha, región, etc. (escanea solo particiones necesarias)
- Usar glue crawler para catalogar datos automáticamente
Federated Query:
- Query datos en bases relacionales, NoSQL, custom data sources
- Usa Lambda Data Source Connectors
- Join datos de S3 con RDS, DynamoDB, on-premises databases
Características:
- Serverless: No infraestructura que provisionar
- SQL estándar: Basado en Presto, soporta SQL ANSI
- Pago por query: $5 por TB de datos escaneados
- Integración S3: Lee datos directamente de S3
- Múltiples formatos: CSV, JSON, Parquet, ORC, Avro
Casos de uso:
- Análisis ad-hoc de logs (VPC Flow Logs, CloudTrail, ALB logs)
- Business intelligence con QuickSight
- Análisis de data lakes en S3
- Queries sobre datos sin ETL previo
Optimización de costos:
- Usar formatos columnares: Parquet/ORC (80-90% menos scan)
- Comprimir datos: GZIP, SNAPPY reduce bytes escaneados
- Particionar datos: Por fecha, región, etc. (escanea solo particiones necesarias)
- Usar glue crawler para catalogar datos automáticamente
Federated Query:
- Query datos en bases relacionales, NoSQL, custom data sources
- Usa Lambda Data Source Connectors
- Join datos de S3 con RDS, DynamoDB, on-premises databases
Puntos Clave
- ✓ Athena cobra por datos ESCANEADOS, no por datos devueltos
- ✓ Parquet/ORC reduce costos dramáticamente vs CSV/JSON
- ✓ Particionamiento es clave para queries eficientes
- ✓ Glue Data Catalog almacena metadata de tablas
- ✓ CTAS (Create Table As Select) crea nuevas tablas optimizadas
💻 Queries en Athena con particiones
-- Crear tabla externa apuntando a S3
CREATE EXTERNAL TABLE IF NOT EXISTS logs_alb (
timestamp string,
elb_name string,
client_ip string,
target_ip string,
request_processing_time double,
target_status_code int
)
PARTITIONED BY (year string, month string, day string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES ('input.regex' = '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)')
LOCATION 's3://mi-bucket/alb-logs/';
-- Agregar particiones
ALTER TABLE logs_alb ADD
PARTITION (year='2024', month='01', day='15')
LOCATION 's3://mi-bucket/alb-logs/2024/01/15/';
-- Query optimizada con particiones
SELECT client_ip, COUNT(*) as requests
FROM logs_alb
WHERE year='2024' AND month='01' AND target_status_code >= 500
GROUP BY client_ip
ORDER BY requests DESC
LIMIT 10; Amazon QuickSight - Business Intelligence
Amazon QuickSight es un servicio de business intelligence serverless para crear dashboards y visualizaciones interactivas.
Características:
- Serverless: Escalado automático, sin infraestructura
- Machine Learning: Detección de anomalías, forecasting
- Embedable: Integra dashboards en aplicaciones
- In-memory engine (SPICE): Consultas rápidas en cache
- Colaborativo: Compartir análisis y dashboards
Fuentes de datos:
- AWS: RDS, Aurora, Redshift, Athena, S3, OpenSearch
- SaaS: Salesforce, Jira, ServiceNow
- Databases: MySQL, PostgreSQL, SQL Server, Oracle (on-prem)
- Archivos: Excel, CSV, JSON
SPICE (Super-fast, Parallel, In-memory Calculation Engine):
- Importa datos a memoria in-memory engine
- Queries ultra-rápidas sin tocar source
- 10GB por usuario incluido
- Actualización automática programable
ML Insights:
- Anomaly detection: Detecta valores atípicos automáticamente
- Forecasting: Predicciones basadas en datos históricos
- Auto-narratives: Genera descripciones textuales de datos
Características:
- Serverless: Escalado automático, sin infraestructura
- Machine Learning: Detección de anomalías, forecasting
- Embedable: Integra dashboards en aplicaciones
- In-memory engine (SPICE): Consultas rápidas en cache
- Colaborativo: Compartir análisis y dashboards
Fuentes de datos:
- AWS: RDS, Aurora, Redshift, Athena, S3, OpenSearch
- SaaS: Salesforce, Jira, ServiceNow
- Databases: MySQL, PostgreSQL, SQL Server, Oracle (on-prem)
- Archivos: Excel, CSV, JSON
SPICE (Super-fast, Parallel, In-memory Calculation Engine):
- Importa datos a memoria in-memory engine
- Queries ultra-rápidas sin tocar source
- 10GB por usuario incluido
- Actualización automática programable
ML Insights:
- Anomaly detection: Detecta valores atípicos automáticamente
- Forecasting: Predicciones basadas en datos históricos
- Auto-narratives: Genera descripciones textuales de datos
Puntos Clave
- ✓ QuickSight es alternativa serverless a Tableau/Power BI
- ✓ Pricing por usuario/sesión, no por infraestructura
- ✓ SPICE acelera queries pero tiene límite de capacidad
- ✓ Row-Level Security (RLS) controla qué datos ve cada usuario
- ✓ Puede conectarse a VPC con ENI para datos privados
Redshift vs Athena - Cuándo usar cada uno
Ambos servicios analizan datos, pero tienen casos de uso diferentes:
Usar Redshift cuando:
- Queries complejas y frecuentes sobre mismos datos
- Necesitas JOINs complejos y sub-queries
- Workloads predecibles con uso constante
- Necesitas rendimiento consistente y bajo latencia
- Datos estructurados y bien definidos
- Cargas de trabajo OLAP tradicionales
Usar Athena cuando:
- Análisis ad-hoc e intermitente
- Datos ya están en S3 (logs, exports)
- No quieres gestionar infraestructura
- Queries simples a medianas
- Data lake explorations
- Costos variables y queries ocasionales
Comparación:
- Costo: Athena pay-per-query, Redshift pay-per-hour (cluster)
- Setup: Athena zero setup, Redshift requiere provisioning
- Performance: Redshift más rápido para queries repetitivas
- Escalado: Athena auto-scale infinito, Redshift manual resize
- Casos de uso: Redshift = DW tradicional, Athena = análisis flexible
Usar Redshift cuando:
- Queries complejas y frecuentes sobre mismos datos
- Necesitas JOINs complejos y sub-queries
- Workloads predecibles con uso constante
- Necesitas rendimiento consistente y bajo latencia
- Datos estructurados y bien definidos
- Cargas de trabajo OLAP tradicionales
Usar Athena cuando:
- Análisis ad-hoc e intermitente
- Datos ya están en S3 (logs, exports)
- No quieres gestionar infraestructura
- Queries simples a medianas
- Data lake explorations
- Costos variables y queries ocasionales
Comparación:
- Costo: Athena pay-per-query, Redshift pay-per-hour (cluster)
- Setup: Athena zero setup, Redshift requiere provisioning
- Performance: Redshift más rápido para queries repetitivas
- Escalado: Athena auto-scale infinito, Redshift manual resize
- Casos de uso: Redshift = DW tradicional, Athena = análisis flexible
Puntos Clave
- ✓ Athena mejor para exploración y análisis ocasional
- ✓ Redshift mejor para analytics predecible y constante
- ✓ Pueden usarse juntos: Athena para S3, Redshift para DW
- ✓ Redshift Spectrum permite query S3 desde Redshift
- ✓ QuickSight puede conectarse a ambos