← Volver al catálogo

Amazon Athena

En una frase: Consulta con SQL estándar los ficheros de S3 sin cargarlos ni levantar servidores
Categoría: Análisis (Analytics)
Certificaciones: SAA-C03 SAP-C02 CLF-C02 DVA-C02
Documentación oficial: Documentación de Amazon Athena ↗

Qué es

Amazon Athena permite consultar con SQL (Structured Query Language: lenguaje de consultas de bases de datos relacionales) datos que están en S3 (Simple Storage Service) (CSV (Comma-Separated Values: texto con valores separados por comas), JSON (JavaScript Object Notation: formato de datos en texto), Parquet, ORC (Optimized Row Columnar: formato de fichero por columnas), Avro, tablas Iceberg) sin cargarlos en ninguna base de datos y sin servidores que gestionar. Defines una tabla que describe dónde están los ficheros y su estructura, lanzas la consulta y pagas por los datos que lee. Está basado en los motores de código abierto Trino y Presto, y también ejecuta Apache Spark.

Conceptos clave

  • Catálogo de datos de Glue: guarda las definiciones de tablas (esquema y ubicación en S3); los crawlers de Glue pueden crearlas automáticamente.
  • Pago por datos analizados: reducir lo que se lee reduce el coste y el tiempo: formatos de columnas (Parquet, ORC), compresión, particiones (por fecha, por ejemplo) y leer solo las columnas necesarias.
  • Grupos de trabajo (workgroups): separan equipos, fijan dónde se guardan los resultados y ponen límites de datos analizados por consulta.
  • CTAS (CREATE TABLE AS SELECT: crear una tabla a partir de una consulta): crear una tabla nueva, por ejemplo en Parquet y particionada, a partir de una consulta.
  • Consultas federadas: con conectores Lambda, consultar también DynamoDB, RDS (Relational Database Service), CloudWatch Logs u otras fuentes.
  • Tablas Iceberg: admiten inserciones, actualizaciones, borrados y "viaje en el tiempo" sobre el lago de datos.
  • Capacidad aprovisionada: opción de pagar por capacidad dedicada para cargas constantes.

Casos de uso típicos

Cuándo NO usarlo

  • Consultas complejas, muy frecuentes y con muchos usuarios concurrentes: Redshift.
  • Transacciones de una aplicación: RDS, Aurora o DynamoDB.
  • Búsqueda de texto o paneles en tiempo real: OpenSearch.

Modelo de precios

Se paga por TB de datos analizados por cada consulta (con un mínimo por consulta), o por capacidad aprovisionada si se elige. Aparte, el almacenamiento en S3 de datos y resultados y las llamadas a Glue. Particionar, comprimir y usar formatos de columnas puede reducir el coste en un orden de magnitud.

Seguridad y alta disponibilidad

  • Sin servidores y redundante en varias zonas.
  • Acceso con IAM (Identity and Access Management) y permisos detallados por tabla o columna con Lake Formation.
  • Resultados cifrados en S3 con SSE-S3 (Server-Side Encryption with S3 managed keys: cifrado en el servidor con claves que gestiona S3) o SSE-KMS (Server-Side Encryption with KMS keys: cifrado en el servidor con claves de KMS).
  • Endpoint de VPC para consultar sin salir a internet.

Trampas de examen

  • "SQL sobre datos en S3 sin infraestructura" o "consultas puntuales": Athena.
  • "Analizar los registros de CloudTrail o VPC Flow Logs": Athena sobre S3.
  • "Consultas lentas y caras": Parquet u ORC, compresión y particiones.
  • "Limitar el gasto de un equipo en consultas": límites en su grupo de trabajo.
  • "Crear las tablas automáticamente": crawler de Glue y su catálogo.
  • "Data warehouse con muchos usuarios y cargas constantes": Redshift, no Athena.

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes