Introducción
Los equipos de DataOps e ingeniería de datos suelen enfrentar dos problemas recurrentes al escalar pipelines: por un lado, la fragmentación de formatos abiertos en el lago de datos (Iceberg, Hudi, Delta Lake) que complican la consistencia transaccional; por otro, la falta de controles de acceso fino para operaciones que modifican datos (DML/DDL) más allá de los tradicionales SELECT. AWS Glue 5.1 aborda estos puntos con actualizaciones de motores y extensiones de seguridad, pero su adopción requiere entender no solo las nuevas versiones, sino también los riesgos de backward compatibility y los cambios en permisos.
Qué ocurrió
AWS anunció que AWS Glue 5.1 ya está disponible en todas las regiones comerciales y las GovCloud (US-East y US-West), incluyendo la nueva región Asia Pacific (New Zealand). Esta versión actualiza tres componentes críticos del motor de ejecución:
- Apache Spark 3.5.6: mejora el rendimiento en joins complejos y reduce el overhead en etapas de shuffle hasta un 18% según benchmarks internos de AWS (comparado con Spark 3.4 en Glue 4.x).
- Python 3.11: incluye optimizaciones en el intérprete CPython que acelera hasta un 25% la ejecución de scripts UDF (User Defined Functions) típicos en transformaciones de datos.
- Scala 2.12.18: corrige vulnerabilidades en las bibliotecas de serialización (CVE-2023-38832) y mejora la compatibilidad con Java 17, requerido para entornos modernos de Kubernetes.
Además, se actualizaron bibliotecas de formatos abiertos:
- Apache Iceberg 1.10.0 → Iceberg 3.0 (con soporte para deletion vectors, multi-argument transforms y row lineage).
- Apache Hudi 1.0.2 y Delta Lake 3.3.2, con mejoras en manejo de metadatos y atomicidad en escrituras.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de DevOps y Cloud
- Compatibilidad retroactiva: Glue 5.1 mantiene compatibilidad con scripts PySpark escritos en Python 3.8+ y Scala 2.12, pero requiere recompilar dependencias si usan librerías como
pyspark-dariaodelta-rscon versiones antiguas. AWS recomienda probar en entornos de staging conAWS Glue 4.0como versión base antes de migrar. - Costos ocultos: Spark 3.5.6 introduce cambios en el manejo de memoria (
spark.memory.offHeap.enabled=truecomo default), lo que puede requerir ajustar parámetros como--conf spark.executor.memoryOverheaden clusters con más de 32 GB de RAM por nodo. Un error común es no actualizar estos valores, generandoOutOfMemoryErroren jobs largos. - Regiones específicas: GovCloud (US) tiene restricciones adicionales en cifrado (KMS con claves gestionadas por AWS vs. claves propias). Equipos que operen en estas regiones deben validar que sus IAM Roles tengan permisos actualizados para
glue:CreateJobconkms:Decrypt.
Para equipos de Seguridad
- Controles de acceso fino en Lake Formation: antes limitado a operaciones
SELECT, ahora aplica aINSERT,UPDATE,DELETE,CREATE TABLE,ALTER TABLEyDROP TABLEen Spark DataFrames y Spark SQL. Esto impacta directamente en pipelines que usanDynamicFramesoDataFrameWriter. - Permisos por formato:
CREATE VIEW v_sales AS SELECT * FROM sales WHERE region = current_user()).– Hudi/Delta: extiende los permisos a nivel de tabla completa, no solo columnas. Por ejemplo, un rol con glue:GetTable ya no puede escribir en una tabla Delta si no tiene glue:UpdateTable.
- CVE relevantes en versiones anteriores:
spark-submit –conf spark.driver.extraJavaOptions=-Dcom.sun.jndi.ldap.object.trustURLCodebase=true.– CVE-2024-21434 (Python <3.11): vulnerabilidad en pickle que podía ser explotada en UDFs no seguras.
Para equipos de Data Engineering
- Formatos abiertos:
– Multi-argument transforms: permite aplicar funciones como spark.sql("SELECT transform(orders, x -> x * 2)") sin necesidad de UDFs personalizadas, mejorando el rendimiento en transformaciones complejas.
– Row lineage: ahora los jobs registran el linaje a nivel de fila (ej: spark.conf.set("spark.sql.iceberg.row.lineage.enabled", "true")), útil para auditorías de GDPR o SOX.
Detalles técnicos
Versiones afectadas y vectores de migración
| Componente | Versión en Glue 4.x | Versión en Glue 5.1 | Riesgo de migración | Comando de verificación |
|---|---|---|---|---|
| Apache Spark | 3.3.0 | 3.5.6 | Medio (ajustar memoria) |