ETL ligero con enrutamiento dinámico: Lambda, DuckDB y PyIceberg

ETL ligero con enrutamiento dinámico en AWS Lambda: configura destinos y SQL por fuente usando DynamoDB, DuckDB, PyArrow y PyIceberg para data lakes.

2 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Articulo original en japones: AWS Lambda DuckDB PyIceberg ETL con enrutamiento dinamico

Introduccion

Soy Aki AWS Community Builder. En los ultimos años los data pipelines tienden a consolidar datos de multiples fuentes en un data lake. Sin embargo cuando cada origen requiere un procesado distinto o escribe en tablas objetivo diferentes el ETL tradicional pierde flexibilidad y encarece el mantenimiento. Incluso con ETL ligeros basados en AWS Lambda es habitual crear una funcion por fuente o por tabla lo que complica las actualizaciones de tiempo de ejecucion y versiones de librerias. En este articulo presento un ETL con enrutamiento dinamico que resuelve ese problema almacenando la configuracion en DynamoDB para que Lambda decida automaticamente la tabla de destino y el SQL a ejecutar.

Concepto de enrutamiento dinamico

En ETL tradicionales se codifican en el propio codigo las tablas destino y las consultas para cada origen lo que obliga a modificar el codigo al añadir nuevas fuentes. Con enrutamiento dinamico Lambda puede cambiar la tabla Iceberg objetivo y ejecutar SQL diferentes por fuente sin tocar el codigo. Basta con actualizar la configuracion.

Arquitecturas usadas

Enrutamiento por bucket: se decide el destino a partir del nombre del bucket de entrada util cuando llegan datos de sistemas distintos.

Enrutamiento por carpeta: se usa la ruta del objeto en S3 por ejemplo el primer segmento del key util cuando un mismo sistema tiene multiples tablas origen y se distinguen por subcarpetas.

Flujo de proceso

1 Se sube un archivo a S3 y se dispara Lambda. 2 Lambda extrae una clave de enrutamiento desde el bucket o desde la ruta. 3 Lambda consulta en DynamoDB la tabla destino y el SQL asociado. 4 Se carga el Parquet en DuckDB y se ejecuta el SQL. 5 El resultado se inserta por append en una tabla Iceberg a traves de PyIceberg.

Librerias clave

DuckDB motor SQL embebido muy rapido ideal para analitica en memoria y ETL por lotes. PyArrow formato de columnas de alto rendimiento para mover datos eficientemente entre sistemas. PyIceberg implementacion Python de Apache Iceberg para leer escribir y gestionar tablas en data lakes usando por ejemplo AWS Glue Catalog.

Sobre las librerias

DuckDB es un motor OLAP embebido ligero que funciona muy bien en entornos restringidos como Lambda y se adapta de forma excelente a cargas de analitica por lotes y ETL. Sitio oficial: duckdb.org

PyArrow expone en Python Apache Arrow un formato de memoria columnar optimizado para analitica y computacion distribuida que permite transferencias rapidas y de bajo overhead entre procesos y lenguajes. Sitio oficial: arrow.apache.org

PyIceberg es la implementacion Python del formato de tablas Apache Iceberg pensado para grandes data lakes en la nube. Permite a aplicaciones Python leer escribir y administrar tablas Iceberg de forma transparente con catálogos como AWS Glue. Sitio oficial: py.iceberg.apache.org

Codigo de ejemplo explicado

La funcion Lambda obtiene del evento S3 el bucket y el object key y construye la ruta s3. La clave de enrutamiento puede ser el nombre del bucket para enrutamiento por bucket o el primer segmento del object key para enrutamiento por carpeta segun la estructura de S3. Con esa clave consulta en DynamoDB la entrada que contiene dos valores principales target_table y query_sql. El SQL de consulta se formatea con la ruta s3 de entrada y se ejecuta en DuckDB cargando los datos desde Parquet mediante el conector httpfs. El resultado se recupera como tabla Arrow. Para escribir en Iceberg se usa PyIceberg con AWS Glue Catalog realizando append sobre la tabla objetivo e incorporando una logica de reintentos exponenciales para gestionar conflictos de commit y cambios concurrentes en la rama principal. Las variables de entorno permiten definir nombre del catalogo region tabla de enrutamiento y es recomendable parametrizar los limites y tiempos de los reintentos.

Tabla de enrutamiento en DynamoDB

La tabla de configuracion utiliza una particion identificada por PartitionKey que representa la clave de enrutamiento por ejemplo nombre de bucket o carpeta. Cada item almacena al menos target_table la tabla Iceberg completa con su namespace y query_sql el SQL parametrizado que usa el marcador s3_input_path. Añadiendo o modificando items se pueden habilitar nuevas rutas sin desplegar codigo.

Resultados de ejecucion

Al subir un archivo a un primer bucket se resolvio el enrutamiento y se insertaron filas en la tabla Iceberg objetivo correctamente. Al repetir la prueba con un segundo bucket se escribio sin errores confirmando que Lambda cambia de destino segun la configuracion de DynamoDB.

Ventajas

Agregar nuevas fuentes o destinos solo requiere ajustar triggers de S3 y entradas en DynamoDB. El codigo de Lambda se mantiene simple y unico evitando multiples funciones por ruta y facilitando upgrades de runtime o librerias.

Limitaciones

DynamoDB puede convertirse en un unico punto de fallo si no se planifica alta disponibilidad y monitorizacion. El tamaño de memoria de Lambda limita el volumen por lote y el tiempo maximo de ejecucion es 15 minutos. La logica compleja mas alla de SQL es dificil por lo que encaja especialmente en pasos de aterrizaje y bronce.

Alternativas de enrutamiento

Enrutamiento basado en metadatos del propio Parquet o en columnas internas. Es flexible e independiente de los nombres y rutas aunque requiere que dichos metadatos esten presentes y estandarizados.

Conclusion

Implementamos un ETL ligero con enrutamiento dinamico sobre AWS Lambda combinando DuckDB PyArrow y PyIceberg que centraliza la logica dispersa reduce el coste de mantenimiento y permite añadir rutas con rapidez. Este ejemplo es conceptual y debe adaptarse a los requisitos especificos evaluando ventajas e inconvenientes antes de su uso en produccion. Esperamos que sirva como referencia para equipos que exploran ETL ligeros y escalables en la nube.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.