AWS Glue: ETL y catálogo de datos
Ejecute trabajos de ETL sin servidor con AWS Glue, registre esquemas de tablas en Glue Data Catalogue y rastree automáticamente los datos nuevos
AWS Glue: ETL y catálogo de datos es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué es AWS Glue?
AWS Glue es un servicio ETL (Extract, Transform, Load) sin servidor y totalmente administrado. No tiene que aprovisionar ni administrar servidores: Glue asigna automáticamente trabajadores de Spark o Python cuando se ejecuta un trabajo. Glue consta de dos componentes principales: el motor ETL para los trabajos de transformación de datos y el Data Catalogue para almacenar metadatos sobre los orígenes y destinos de datos.
Explicación de Glue Data Catalogue
Glue Data Catalogue es un repositorio centralizado de metadatos compatible con Apache Hive Metastore. Almacena bases de datos, tablas, definiciones de columnas, tipos de datos e información de particiones. Servicios como Athena, Redshift Spectrum y EMR utilizan el mismo Data Catalogue, lo que lo convierte en una única fuente de verdad sobre los datos existentes y su ubicación en S3.
# List databases in the Glue Data Catalogue
aws glue get-databases --query 'DatabaseList[*].Name'
# List tables in a database
aws glue get-tables --database-name my_db --query 'TableList[*].Name'Glue Crawlers: descubrimiento automático del esquema
Un Glue Crawler se conecta a un almacén de datos (S3, JDBC o DynamoDB), obtiene muestras de los datos e infiere automáticamente el esquema y la estructura de particiones. A continuación, escribe o actualiza las definiciones de las tablas en Data Catalogue. Los crawlers pueden ejecutarse según una programación o activarse bajo demanda. Admiten el crawling incremental, por lo que en las ejecuciones posteriores solo procesan las particiones nuevas.
# Create and start a Glue Crawler via CLI
aws glue create-crawler \
--name sales-crawler \
--role arn:aws:iam::123456789012:role/GlueRole \
--database-name my_db \
--targets '{"S3Targets": [{"Path": "s3://my-data-lake-123/landing/sales/"}]}'
aws glue start-crawler --name sales-crawlerEscritura de un trabajo ETL de Glue
Un trabajo ETL de Glue es un script de PySpark o Scala Spark que lee de un origen, aplica transformaciones mediante la API DynamicFrame y escribe en un destino. Los DynamicFrames amplían los Spark DataFrames con flexibilidad de esquema: gestionan automáticamente los tipos de datos incoherentes y el JSON anidado. Puede generar un script de trabajo básico desde el editor visual de Glue Studio.
# Minimal Glue PySpark ETL job
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext
sc = SparkContext()
glueContext = GlueContext(sc)
# Read from Data Catalogue table
source = glueContext.create_dynamic_frame.from_catalog(
database='my_db', table_name='raw_sales')
# Drop null order_id rows
cleaned = Filter.apply(frame=source, f=lambda r: r['order_id'] is not None)
# Write Parquet to curated zone
glueContext.write_dynamic_frame.from_options(
frame=cleaned,
connection_type='s3',
connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
format='parquet')Trabajadores de Glue y DPU
Glue asigna capacidad en Data Processing Units (DPU). Una DPU equivale a 4 vCPU y 16 GB de memoria. Debe elegir un tipo de trabajador (G.1X, G.2X o G.025X para flex/spark streaming) y un número de trabajadores. Para trabajos pequeños, utilice el tipo de trabajo G.025X Python Shell, que usa un cuarto de DPU y resulta muy rentable para transformaciones sencillas.
# Create a Glue job with G.1X workers
aws glue create-job \
--name clean-sales \
--role arn:aws:iam::123456789012:role/GlueRole \
--command '{"Name": "glueetl", "ScriptLocation": "s3://scripts/clean_sales.py", "PythonVersion": "3"}' \
--worker-type G.1X \
--number-of-workers 5 \
--glue-version '4.0'Flujos de trabajo y activadores de Glue
Un Glue Workflow encadena crawlers y trabajos en un grafo de dependencias. Un crawler descubre datos nuevos y, al completarse, activa un trabajo; después, otro trabajo, y así sucesivamente. Los Triggers pueden ser programados (cron), basados en eventos (bajo demanda) o condicionales (se activan cuando un trabajo se completa correctamente o falla). Los flujos de trabajo proporcionan un DAG visual para su canalización ETL sin necesidad de un servicio de orquestación independiente.
# Create a schedule trigger that starts a job every night at 2 AM UTC
aws glue create-trigger \
--name nightly-clean \
--type SCHEDULED \
--schedule 'cron(0 2 * * ? *)' \
--actions '[{"JobName": "clean-sales"}]' \
--start-on-creationGlue Studio: creador visual de ETL
Glue Studio proporciona una interfaz de arrastrar y soltar para diseñar gráficamente trabajos ETL sin escribir manualmente código PySpark. Puede conectar nodos de origen (S3, tablas de Catalogue y JDBC) mediante nodos de transformación (filtrado, unión, agregación y Python personalizado) con nodos de destino. Glue Studio genera automáticamente el script de Spark. También proporciona un panel de ejecución de trabajos para supervisar el estado de ejecución y las métricas de calidad de los datos.
Calidad de datos de Glue
AWS Glue Data Quality (DQDL — Data Quality Definition Language) permite escribir reglas para validar los datos a medida que avanzan por un trabajo ETL. Las reglas pueden comprobar las tasas de valores nulos, los rangos de valores, la integridad referencial y la unicidad. Si los datos no cumplen las reglas de calidad, Glue puede detener el trabajo o dirigir los registros incorrectos a una ruta de cuarentena en S3 para su revisión manual, en lugar de transferir silenciosamente datos dañados a la zona depurada.
# DQDL rule example for Glue Data Quality
# Reject rows where order_total is negative or null
Rules = [
IsComplete 'order_total',
ColumnValues 'order_total' >= 0
]Glue frente a otras opciones de ETL
Para el examen SAA-C03, debe saber cuándo recomendar Glue frente a las alternativas. Utilice Glue para ETL de Spark sin servidor e integración con Data Catalogue. Utilice AWS Data Pipeline para orquestar tareas antiguas de movimiento de datos (principalmente heredadas). Utilice Amazon EMR cuando necesite una configuración personalizada de clústeres Hadoop/Spark o cargas de trabajo de larga duración. Utilice Lambda para microtransformaciones ligeras y basadas en eventos sobre cargas útiles pequeñas.
JDBC y orígenes de datos que no son S3
Glue puede conectarse a bases de datos relacionales mediante conexiones JDBC: RDS, Aurora, Redshift o bases de datos locales a través de una Glue VPC Connection. Defina una conexión con una URL JDBC, credenciales de Secrets Manager y un grupo de seguridad de VPC. Glue utiliza entonces una interfaz de red dedicada, ubicada dentro de la subred de su VPC, para acceder a los endpoints privados de la base de datos sin atravesar la Internet pública.
# Create a Glue JDBC connection to RDS Aurora
aws glue create-connection \
--connection-input '{
"Name": "aurora-prod",
"ConnectionType": "JDBC",
"ConnectionProperties": {
"JDBC_CONNECTION_URL": "jdbc:mysql://aurora-cluster.cluster-xyz.us-east-1.rds.amazonaws.com:3306/sales",
"SECRET_ID": "arn:aws:secretsmanager:us-east-1:123:secret:rds-creds"
},
"PhysicalConnectionRequirements": {
"SubnetId": "subnet-abc123",
"SecurityGroupIdList": ["sg-xyz456"],
"AvailabilityZone": "us-east-1a"
}
}'Bookmarks: procesamiento incremental
De forma predeterminada, un trabajo de Glue volvería a procesar todos los registros en cada ejecución. Glue Job Bookmarks realiza un seguimiento de los archivos de entrada que ya se han procesado, de modo que las ejecuciones posteriores solo incorporan los datos nuevos. Los bookmarks son esenciales para los orígenes de S3 de solo anexado, en los que se reciben archivos nuevos a diario en el mismo prefijo. Habilite los bookmarks en los parámetros del trabajo con --job-bookmark-option job-bookmark-enable.
# Start Glue job with bookmark enabled
aws glue start-job-run \
--job-name clean-sales \
--arguments '{"--job-bookmark-option": "job-bookmark-enable"}'Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido que: AWS Glue proporciona ETL sin servidor mediante PySpark y la API DynamicFrame, Glue Crawlers detecta esquemas automáticamente y rellena el Glue Data Catalogue, y Glue Bookmarks permite el procesamiento incremental de datos nuevos de S3. A continuación, exploraremos Amazon Athena para realizar consultas SQL sin servidor directamente sobre S3.
Preguntas frecuentes
¿La lección «AWS Glue: ETL y catálogo de datos» es gratis?
Sí — el texto completo de «AWS Glue: ETL y catálogo de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «AWS Glue: ETL y catálogo de datos»?
Ejecute trabajos de ETL sin servidor con AWS Glue, registre esquemas de tablas en Glue Data Catalogue y rastree automáticamente los datos nuevos Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «AWS Glue: ETL y catálogo de datos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Creación de un lago de datos en S3
- AWS Glue: ETL y catálogo de datos
- Amazon Athena: SQL sin servidor en S3
- Kinesis Streams, Firehose y análisis en tiempo real