DuckDB, una base de datos analítica en proceso, ha lanzado la versión 2.0.0 LTS, con el nombre en clave "Cinnamon Teal". Este lanzamiento marca un cambio significativo desde la serie 1.0, centrada en la estabilidad, hacia una iteración con muchas funciones. Las actualizaciones arquitectónicas clave incluyen la integración de un tipo VARIANT de primera clase, que permite a la base de datos almacenar y ejecutar datos semiestructurados como JSON con rendimiento columnar. A diferencia de los formatos JSON estándar, el tipo VARIANT se procesa como un tipo nativo, lo que permite a DuckDB detectar estructuras comunes y "desmenuzarlas" en columnas comprimidas de alto rendimiento.
Este diagrama explica el mecanismo del tipo VARIANT de primera clase introducido en el lanzamiento 2.0.0.
Una de las mejoras de rendimiento más impactantes en la versión 2.0.0 es la introducción de E/S asíncrona para leer archivos Parquet y CSV. Al desacoplar la capa de E/S de la capa de procesamiento de consultas, DuckDB ahora puede emitir múltiples lecturas en segundo plano simultáneamente. Esta arquitectura está diseñada específicamente para maximizar el rendimiento cuando se consultan datos de almacenamiento de objetos remotos, como Amazon S3, donde la latencia de red podría, de otro modo, obstaculizar la ejecución de las consultas. El equipo proporcionó comparativas que muestran que este cambio mejora significativamente la utilización de la red y reduce el tiempo total de ejecución para las búsquedas de datos remotos.
El gráfico ilustra cómo el desacoplamiento de la capa de E/S del procesamiento de consultas maximiza el rendimiento para el almacenamiento de objetos remotos.
El lanzamiento también introduce el "modo agente" en la CLI de DuckDB, diseñado específicamente para agentes de codificación de IA como Claude Code o Cursor. Cuando la CLI detecta que está siendo operada por un agente, cambia automáticamente a un modo que genera tablas en Markdown compactas, informa claramente sobre resultados truncados y proporciona errores en formato JSON. Esto reduce la cantidad de datos que el modelo debe analizar —hasta en un 59% en experimentos TPC-H— y permite a los agentes ver los costos de consulta esperados antes de la ejecución. Además, la actualización reemplaza el antiguo analizador derivado de PostgreSQL por un analizador moderno basado en PEG, que simplifica la adición de nueva sintaxis SQL sin riesgo de conflictos con las reglas existentes.
Aunque DuckDB sigue siendo una base de datos en proceso, la versión 2.0.0 pule el protocolo Quack, permitiendo una arquitectura cliente-servidor. Esto permite a los usuarios adjuntar y cambiar a bases de datos remotas utilizando una nueva sentencia CONNECT. El protocolo está diseñado para funcionar con otras bases de datos como PostgreSQL y MySQL, utilizando un optimizador de pushdown remoto que envía las consultas directamente al servidor remoto en lugar de extraer tablas completas a través de la red. El lanzamiento 2.0.0 es una versión de soporte a largo plazo (LTS), con el equipo proporcionando un período de transición para los usuarios que migran desde la serie 1.5.