El equipo de DuckDB publicó el 21 de octubre la versión 2.0, una versión de soporte extendido (LTS) que añade un modo servidor, triggers, un nuevo analizador SQL y un modo pensado para agentes de IA que trabajan desde la terminal. La base de datos analítica embebida, conocida por consultar ficheros Parquet o CSV con SQL sin montar un servidor, llega a la 2.0 tras cerca de 20.000 commits desde la 1.5. Tiene un cambio importante para quien la usa en producción: las bases de datos creadas con la 2.0 no se pueden abrir con versiones anteriores.
Las claves de DuckDB 2.0 en 20 segundos
- DuckDB 2.0 es una versión LTS con soporte hasta al menos octubre de 2027 y llega tras unos 20.000 commits.
- Estrena modo servidor, triggers, E/S asíncrona y un modo para agentes de IA en la CLI.
- Las bases creadas con la 2.0 no son legibles por versiones anteriores, así que conviene probarla antes.
El propio equipo la define sobre todo como una versión de funcionalidades, a diferencia de la 1.0, que se centró en la estabilidad y la compatibilidad. Por eso recomienda probarla primero en un sistema de pruebas y, para cargas críticas, plantearse esperar a la primera versión de parches, prevista para noviembre. La línea de comandos (CLI) y el cliente de Python ya están disponibles, mientras que otros clientes, como R o Rust, y algunas extensiones pueden tardar unos días más.
DuckDB se convierte también en servidor
La novedad más relevante para un administrador de sistemas es el protocolo Quack, que permite usar DuckDB como servidor al que se conectan otros procesos. Un servidor se arranca con la función quack_serve() o con el parámetro -serve de la CLI, y los clientes se conectan con ATTACH 'quack:...' y un token, o con -connect. Por defecto el servidor solo escucha en localhost. Existe una opción para aceptar otros nombres de host, pero el equipo la reserva para pruebas y recomienda que el acceso remoto pase por un proxy inverso que termine TLS.
La nueva sentencia CONNECT adjunta una base de datos remota y cambia a ella en un solo paso, y funciona también con PostgreSQL y MySQL. Además, un optimizador envía las consultas a esos servidores remotos en lugar de traer las tablas completas por la red. La entrada y salida asíncrona completa el paquete: las lecturas de Parquet, CSV y del formato propio de DuckDB mantienen varias peticiones en vuelo a la vez, algo pensado para leer desde almacenamiento de objetos como S3. El anuncio muestra una gráfica de mejora en el rendimiento de red, pero no da cifras concretas.
Triggers, VARIANT y un modo para agentes de IA
DuckDB 2.0 incorpora CREATE TRIGGER con variantes BEFORE y AFTER, por fila o por sentencia, y acceso a las tablas antiguas y nuevas, lo que permite, por ejemplo, mantener tablas de auditoría. Hay combinaciones que todavía no admite, como BEFORE ... FOR EACH ROW, y están documentadas. El tipo VARIANT queda integrado del todo: detecta la estructura común de los datos semiestructurados y la descompone para comprimirlos y consultarlos más rápido, también al leer y escribir Parquet. En SQL llegan además CTE que modifican datos, uniones NEAREST para búsquedas de similitud, esquemas anidados, funciones para modificar JSON y FETCH FIRST.
El llamado modo agente es la novedad más curiosa. La CLI detecta si la está usando un asistente de programación como Claude Code, Codex o Cursor y adapta la salida: tablas compactas en Markdown, avisos cuando un resultado se trunca, errores en JSON, freno temprano a consultas desbocadas y una estimación del coste antes de ejecutar. Según las pruebas del propio equipo con el banco de pruebas TPC-H, reduce un 59 % la salida que tiene que leer el modelo. Se puede forzar o desactivar con -agent y -no-agent. Para quien prefiera consultar bases de datos en la terminal sin agentes, sigue habiendo alternativas como sqlit, y para consultas desde el navegador hay proyectos como JSQLite.
Qué revisar antes de actualizar
El punto más delicado es el formato de almacenamiento. Las versiones anteriores a la 2.0 no pueden leer bases de datos creadas con ella, aunque la 2.0 sí lee y escribe los ficheros existentes, que siguen siendo legibles por versiones anteriores. En entornos con varias versiones mezcladas conviene actualizar primero a todos los clientes que vayan a abrir los mismos ficheros. El analizador SQL también cambia: el nuevo, basado en gramáticas PEG, sustituye al heredado de PostgreSQL, da errores con la posición exacta y es compatible salvo los cambios que recoge la guía de migración. El antiguo se puede recuperar con la extensión legacy_parser.
Hay más cambios que pueden romper scripts. La sintaxis de lambdas con una sola flecha (x -> x + 1) queda desactivada por defecto en favor de lambda x: x + 1, y desaparecerá en la 2.1. La librería ICU sale del núcleo y las zonas horarias, calendarios y colaciones pasan a la extensión icu. Compilar DuckDB exige ahora C++17, las compilaciones en un solo fichero (amalgamation) quedan obsoletas y macOS en Intel (osx_amd64) empieza a retirarse: las extensiones de la comunidad ya no se compilan para esa plataforma y la 2.1 dejará de darle soporte. En el ciclo de soporte, la 1.4 se mantiene hasta el 17 de noviembre de 2026 y la 1.5 amplía el suyo hasta marzo de 2027. Para entornos con más carga, esta guía de clustering, replicación y sharding ayuda a situar dónde encaja cada tipo de base de datos.
Preguntas frecuentes
¿Hasta cuándo tendrá soporte DuckDB 2.0?
Es una versión LTS con soporte hasta al menos octubre de 2027. La 1.5 se mantiene hasta marzo de 2027 y la 1.4, hasta el 17 de noviembre de 2026.
¿Puedo abrir una base de DuckDB 2.0 con la versión 1.5?
No si la base se creó con la 2.0. Los ficheros creados con versiones anteriores siguen siendo legibles por ellas aunque se usen desde la 2.0.
¿DuckDB 2.0 funciona como servidor?
Sí, con el protocolo Quack. Por defecto solo escucha en localhost, y el equipo recomienda exponerlo a través de un proxy inverso con TLS.
¿Conviene actualizar ya en producción?
El propio equipo aconseja probarla antes en un sistema de pruebas y, en cargas críticas, valorar esperar al primer parche, previsto para noviembre.
Fuentes:







