Hace unas semanas me enfrenté a una tarea recurrente: cada semana llegaba un lote de archivos TSV que había que procesar y volcar en una base de datos RDS. Mantener una instancia de base de datos siempre en marcha para una operación semanal parecía excesivo y el proceso consumía tiempo. Fue la oportunidad perfecta para probar DuckDB, una base de datos analítica en proceso conocida por su eficiencia y simplicidad. La idea fue procesar los TSV directamente en un entorno serverless, transformarlos con consultas SQL y almacenar los resultados sin ejecutar una base de datos persistente.

Qué es DuckDB DuckDB es una base de datos analítica open source que a menudo se describe como la SQLite de la analítica. Está optimizada para consultas analíticas y puede leer formatos columnarios como Parquet y también CSV o TSV directamente desde archivos locales, buckets S3 o endpoints HTTP. DuckDB realiza escaneos y agregaciones sobre la marcha sin cargar conjuntos de datos completos en memoria, lo que es ideal para entornos serverless donde memoria y CPU impactan el coste.

Combinado con AWS Lambda, DuckDB permite ejecutar cargas analíticas bajo demanda dentro de una función Lambda, pagando solo por el tiempo de ejecución. Servicios tradicionales como Athena o RDS también resuelven necesidades similares, pero tienen modelos de escalado y precios distintos. Athena cobra por bytes escaneados y puede introducir latencia de consulta, mientras que RDS obliga a mantener una base de datos siempre activa.

El reto de DuckDB en Lambda El principal problema técnico es que DuckDB incluye componentes compilados. No basta con pip install de forma local y subir el paquete: si el binario no fue compilado para el runtime de Lambda la importación fallará. Los problemas de ABI y diferencias entre sistemas operativos hacen que simplemente comprimir el código no funcione. La solución tradicional implica construir en Docker para la arquitectura objetivo, copiar el binario y empaquetarlo, pero esto añade complejidad cuando lo que se quiere es desplegar rápido.

La solución con Layers Para evitar este baile de compilación, creé capas Lambda precompiladas para cada arquitectura, versión de Python y versión de DuckDB, y las publiqué públicamente. Una Lambda layer es una forma cómoda de empaquetar y compartir dependencias entre funciones Lambda sin incluirlas en cada paquete de despliegue. Esto elimina la necesidad de builds locales y permite a cualquiera usar DuckDB sin repetir la configuración.

Estas capas están precompiladas para los runtimes de Python soportados por Lambda, soportan tanto arquitecturas x86_64 como arm64 y están disponibles en todas las regiones. Añadir DuckDB a una función Lambda se reduce a adjuntar la layer correspondiente con su ARN mediante aws lambda update-function-configuration --function-name nombre-de-tu-funcion --layers ARN_DE_LA_LAYER. Una vez adjunta, DuckDB está disponible inmediatamente en la función y no es necesario compilar desde fuente ni preocuparse por incompatibilidades.

Flujo de trabajo práctico Volviendo al problema inicial, la operación semanal quedó muy simplificada. En la función Lambda se descargan los archivos TSV al directorio temporal, DuckDB los lee directamente y, si se necesita, se utilizan extensiones o conectores para volcar datos a una base MySQL remota o a otro destino. El resultado fue reemplazar una solución que dependía de RDS y pipelines complejos por una ejecución serverless ligera y económica.

Para empresas que buscan soluciones a medida, esta aproximación encaja con proyectos de software a medida y automatización. En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida, inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos arquitecturas serverless, despliegues en AWS y Azure y asesoramiento para integrar herramientas como DuckDB en flujos ETL ligeros.

Si tu organización necesita optimizar costes y simplificar pipelines de datos, podemos ayudar a diseñar funciones Lambda que integren DuckDB, exporten resultados a data warehouses o sistemas transaccionales y se integren con soluciones de servicios cloud AWS y Azure. Además, nuestros servicios cubren inteligencia artificial para empresas, agentes IA y soluciones de inteligencia de negocio con Power BI, así como prácticas de ciberseguridad y pentesting para proteger los entornos de datos.

Conclusión Trabajar con DuckDB dentro de Lambda exige solucionar el tema del binario compilado, pero las capas precompiladas eliminan esa barrera y permiten centrarse en la lógica de negocio. Para equipos que necesitan agilidad, ahorro de costes y escalabilidad serverless, este enfoque resulta muy atractivo. Si quieres explorar una prueba de concepto o integrar estas prácticas en tu arquitectura, en Q2BSTUDIO te acompañamos desde el diseño hasta la entrega, con experiencia en aplicaciones a medida, inteligencia artificial, agentes IA y Power BI para obtener valor real de los datos.