Sistema de Catálogo de Datos

Resuma Glue Data Catalog, rastreadores, Hive metastore, sincronización de particiones.

A medida que los volúmenes de datos crecen, la pregunta "¿dónde están estos datos y qué estructura tienen?" surge constantemente. Cuando decenas de miles de archivos están dispersos por S3, abrir cada uno manualmente es imposible. AWS Glue Data Catalog resuelve este problema: es un almacén central de metadatos que mantiene un mapa de todos sus datos sin copiarlos realmente. Las preguntas del examen DEA-C01 sobre este tema preguntan cómo encontrar y gestionar datos a escala.

 

Qué es Glue Data Catalog

Imagine una biblioteca con decenas de miles de libros. Sin un sistema de tarjetas índice, encontrar cualquier cosa llevaría una eternidad. Con tarjetas índice, sabes instantáneamente en qué estante está cada libro. Glue Data Catalog es ese sistema de tarjetas índice para sus datos.

Glue Data Catalog no mueve ni copia sus archivos de datos reales. En su lugar, registra:

Dónde viven los datos (ruta S3, endpoint de RDS, etc.) En qué formato están (CSV, Parquet, JSON, etc.) Qué columnas existen y qué tipo tiene cada columna Cómo están particionados los datos

Esta información se llama metadatos. El catálogo almacena solo metadatos: sus archivos de datos reales permanecen exactamente donde están.

 

Bases de datos y tablas dentro del catálogo

La estructura dentro de Glue Data Catalog resulta familiar si ha trabajado con cualquier base de datos relacional.

Una base de datos es una agrupación lógica de tablas relacionadas. Por ejemplo, una base de datos llamada "sales_db" podría contener tablas llamadas "orders", "customers" y "products".

Una tabla define el esquema (estructura) y la ubicación de los datos reales. Cada definición de tabla incluye:

| Campo | Ejemplo | Propósito | |-------|---------|----------| | Ubicación | s3://my-bucket/orders/ | Dónde están los archivos de datos | | Formato | Parquet | Tipo de archivo | | Columnas | order_id (int), amount (double) | Nombres y tipos de columnas | | Claves de partición | year, month | Cómo se dividen los datos |

Estas son tablas virtuales: no almacenan filas. Son documentos de definición que le dicen a los motores de consulta dónde buscar y cómo leer los datos.

 

Integración con Athena, Redshift Spectrum y EMR

La mayor fortaleza de Glue Data Catalog es que múltiples servicios comparten los mismos metadatos. Registre una tabla una vez y cada servicio puede usarla sin configuración adicional.

Imagine que tiene datos de pedidos almacenados en S3 y quiere analizarlos:

Athena: Ejecuta consultas SQL directamente contra S3 — serverless, sin configuración extra Redshift Spectrum: Consulta datos de S3 como tabla externa desde dentro de Redshift EMR: Procesa los datos a escala masiva usando Spark o Hive

Los tres servicios miran la misma definición de tabla en Glue Data Catalog. No es necesario registrar el mismo conjunto de datos tres veces en tres lugares diferentes.

 

Glue Crawlers — Descubrimiento automático de esquemas

Introducir metadatos manualmente en el catálogo es tedioso, especialmente cuando se añaden archivos diariamente o los esquemas cambian con frecuencia. Los Glue Crawlers automatizan este trabajo.

Un crawler es como un detective automatizado. Usted lo apunta hacia una fuente de datos (un bucket de S3, una base de datos RDS, una tabla DynamoDB) y él entra, descubre la estructura y registra todo en el catálogo.

Capacidades clave del crawler:

Ejecuciones programadas: Programe crawlers para ejecutarse cada hora, día o semana. Los nuevos datos y cambios de esquema se detectan automáticamente. Clasificadores: El crawler examina cada archivo y determina automáticamente su formato (CSV, JSON, Parquet, ORC y más) sin que usted deba indicarlo. Para formatos inusuales, puede escribir un clasificador personalizado. Detección de particiones: Si sus carpetas S3 siguen un patrón como year=2026/month=03/day=15, el crawler reconoce esto como particionamiento y registra todas las particiones en el catálogo.

El flujo de trabajo del crawler paso a paso:

Escanear la ruta S3 especificada (u otra fuente) Identificar formatos de archivo y estructura usando clasificadores Comparar con las tablas existentes en el catálogo Crear nuevas tablas o actualizar esquemas existentes con cambios detectados Añadir nuevas particiones descubiertas al catálogo

 

Sincronización de particiones — Tres métodos

El particionamiento significa almacenar datos divididos en carpetas por un atributo específico. Por ejemplo, almacenar datos de registro en carpetas diarias para poder leer solo los datos de un rango de fechas específico.

El problema: cuando aparece una nueva carpeta de partición en S3, el catálogo no lo sabe automáticamente. Alguien o algo tiene que decirle al catálogo que existe una nueva carpeta. Esto es la sincronización de particiones.

Método 1 — Volver a ejecutar el Crawler: El enfoque más simple. Ejecute el crawler de nuevo y detecta nuevas particiones, luego las añade al catálogo. La desventaja es que el crawler vuelve a escanear toda la fuente, lo que lleva tiempo. Mejor cuando las nuevas particiones se añaden con poca frecuencia.

Método 2 — MSCK REPAIR TABLE: Un comando SQL que ejecuta desde Athena:

Esto funciona cuando sus carpetas S3 siguen la nomenclatura compatible con Hive (formato key=value). Un solo comando sincroniza todas las nuevas particiones en el catálogo. Más rápido que volver a ejecutar un crawler, pero solo funciona con estructuras de carpetas en formato Hive.

Método 3 — BatchCreatePartition API: Llamar directamente a la API de Glue en código, especificando exactamente qué particiones añadir. Este es el método más rápido y gestiona miles de nuevas particiones a la vez. Ideal para entornos de alta frecuencia donde aparecen nuevas particiones cada hora. Fácilmente automatizable dentro de una función Lambda o un trabajo de Glue.

| Método | Velocidad | Mejor para | |--------|-----------|------------| | Volver a ejecutar el Crawler | Lento | Adición infrecuente de particiones | | MSCK REPAIR TABLE | Medio | Formato Hive, sincronización manual | | BatchCreatePartition API | Rápido | Particionamiento a gran escala y alta frecuencia |

 

Reemplazar Hive Metastore con Glue Catalog

EMR (Elastic MapReduce) es el servicio gestionado de big data de AWS basado en Hadoop y Spark de código abierto. Tradicionalmente, los clústeres EMR usaban su propio Hive Metastore integrado para rastrear información de esquemas. El problema: cuando termina el clúster, ese metastore desaparece con él.

Al reemplazar el Hive Metastore con Glue Data Catalog, se obtiene:

Los metadatos persisten incluso después de apagar el clúster EMR, Athena y Redshift Spectrum comparten los mismos metadatos No es necesario registrar tablas por separado en cada servicio

Para habilitarlo, simplemente active la opción "Usar Glue Data Catalog como metastore" al crear un clúster EMR. Después, cualquier tabla que cree en Hive o Spark SQL se registra automáticamente en el catálogo de Glue.

 

Puntos clave del examen

"Almacén central de metadatos" → Glue Data Catalog "Descubrir y registrar automáticamente esquemas de datos" → Glue Crawlers "Añadir muchas particiones S3 nuevas rápidamente en código" → BatchCreatePartition API "Sincronizar particiones manualmente desde Athena" → MSCK REPAIR TABLE "EMR y Athena comparten los mismos metadatos" → Glue Data Catalog reemplazando Hive Metastore "Detectar automáticamente formatos de archivo" → Clasificadores de Crawler El catálogo almacena solo metadatos, no los archivos de datos reales

Volver a la lista del blog