Saltar al contenido

DuckDB 2.0 LTS añade modo servidor, disparadores y VARIANT

DuckDB 2.0.0, una versión de soporte a largo plazo publicada el 21 de octubre, añade un modo servidor, disparadores y VARIANT. Las versiones anteriores a la 2.0 no pueden leer sus archivos.

Por Tech AI Wire Team

4 min de lectura

XLinkedIn
La ilustración de DuckDB para la versión 2.0: un pato en vuelo dibujado con líneas de puntos sobre un fondo amarillo.
Foto: DuckDB

En cifras

commits since DuckDB 1.5, per the DuckDB team
~20,000
earliest end of support for DuckDB 2.0
Oct 2027
extended end of support for DuckDB 1.5
March 2027

DuckDB publicó la versión 2.0.0 el 21 de octubre de 2026. Es una versión de soporte a largo plazo (LTS) que el proyecto mantendrá al menos hasta octubre de 2027. Añade un modo servidor integrado, disparadores (triggers) SQL y un nuevo parser. También introduce un cambio sin vuelta atrás: ninguna versión anterior puede abrir los archivos de base de datos escritos por la 2.0, así que las actualizaciones necesitan un plan.

DuckDB es una base de datos SQL de código abierto para análisis. Como SQLite, se ejecuta dentro de tu programa en lugar de como un servidor aparte. A diferencia de SQLite, está pensada para grandes consultas analíticas sobre tablas grandes y archivos como Parquet y CSV.

Qué añade DuckDB 2.0

El anuncio de DuckDB califica la 2.0 como la mayor versión de funcionalidades del equipo hasta ahora, construida a partir de cerca de 20.000 commits desde la versión 1.5. "DuckDB 2.0 es, ante todo, una versión de funcionalidades", escribe el equipo de DuckDB. El nombre en clave de la versión es "Cinnamon Teal", por la especie de pato Spatula cyanoptera. La versión en GitHub usa el nombre "Cyanoptera".

FunciónQué hace
Modo servidor QuackEjecuta DuckDB como un servidor al que se conectan otros clientes
DisparadoresCREATE TRIGGER ejecuta SQL automáticamente, antes o después de un cambio en una tabla
Tipo VARIANTAlmacena datos semiestructurados, como JSON, y separa su estructura común para lograr mejor compresión y velocidad
E/S asíncronaLee archivos Parquet y CSV mientras se ejecutan las consultas, con varias peticiones en curso, sobre todo para acelerar el almacenamiento en la nube como Amazon S3
Nuevo parser SQLUn parser basado en PEG es ahora el predeterminado; las extensiones pueden añadir su propia sintaxis SQL y los errores muestran dónde está el problema
Zonas horarias nativasLas zonas horarias, los calendarios y las intercalaciones (collations) ya no necesitan la biblioteca ICU

Un disparador es una regla guardada en la base de datos: cuando cambia una fila, ejecuta también este SQL. DuckDB 2.0 admite disparadores BEFORE y AFTER, a nivel de fila o de sentencia. Algunas combinaciones aún no se admiten, como un disparador BEFORE ... FOR EACH ROW sobre UPDATE.

Quack convierte DuckDB en un servidor

Hasta ahora, DuckDB atendía a un solo programa a la vez. Con Quack, CALL quack_serve(...) inicia un servidor y un cliente se conecta con ATTACH 'quack:...'. Una nueva sentencia CONNECT cambia toda una sesión a una base de datos remota. La herramienta de línea de comandos gana las opciones correspondientes -serve y -connect.

Por defecto, el servidor solo escucha en la máquina local. Para el acceso remoto, el equipo de DuckDB recomienda colocarlo detrás de un proxy inverso que gestione el cifrado TLS. InfoWorld informó en agosto de que Quack también facilita consultar bases de datos PostgreSQL y MySQL de forma remota.

Cambios incompatibles que revisar antes de actualizar

Según el anuncio de la versión y las notas de la versión en GitHub, estos cambios pueden romper código o compilaciones existentes:

  • Los archivos van en un solo sentido. DuckDB 2.0 lee y escribe los archivos de base de datos existentes. "Las versiones de DuckDB anteriores a la 2.0 no pueden leer archivos de base de datos creados por DuckDB 2.0", advierte el equipo.
  • Nuevo parser por defecto. SET enable_legacy_parser = true; recupera el antiguo.
  • Las lambdas de flecha simple están desactivadas. Una sintaxis como x -> x + 1 queda desactivada. SET lambda_syntax = 'enable_single_arrow'; la vuelve a activar hasta que la versión 2.1 la elimine.
  • La división entera entre cero ahora genera un error en lugar de devolver NULL.
  • Las compilaciones requieren C++17, frente a C++11 antes, y las compilaciones de release usan ahora el compilador Clang. Las compilaciones por amalgamación quedan obsoletas.
  • Los Mac con Intel se retiran de forma gradual. Las extensiones de la comunidad ya no se compilan para macOS en x86_64, y DuckDB 2.1 deja de darles soporte.

Las fuentes discrepan en un detalle. El adelanto de InfoWorld describía una API de C estable para extensiones. El anuncio de la versión dice que la renovada C API v2 "aún no está marcada como estable", porque el equipo quiere probarla primero en uso real.

Periodos de soporte

VersiónSoporte hasta
DuckDB 2.0 (LTS)Al menos octubre de 2027
DuckDB 1.5Marzo de 2027 (ampliado)
DuckDB 1.4Finales de noviembre de 2026

Qué significa para los desarrolladores

Trátalo como una migración planificada, no como una actualización rutinaria.

  • Copia tus archivos de base de datos antes de abrirlos por primera vez. Una vez que DuckDB 2.0 escribe en un archivo, una herramienta más antigua o un compañero que siga en la 1.5 ya no puede leerlo. Actualiza a la vez todo lo que lea un archivo compartido.
  • Prueba con una copia de producción. El equipo de DuckDB recomienda empezar por un sistema en sombra. Para trabajos críticos, sugiere esperar a la primera versión de parche, prevista para noviembre.
  • Revisa tu cliente. La herramienta de línea de comandos y el cliente de Python ya están listos. Los clientes de Go, R y Java, y algunas extensiones, "pueden tardar unos días", dice el equipo.
  • Busca dos patrones en tu SQL. Localiza las lambdas de flecha simple y cualquier división entera que pueda acabar dividiendo entre cero. Ambas se comportan ahora de otra manera.
  • No expongas directamente un servidor Quack. Mantenlo en localhost o pon delante un proxy inverso con TLS, como aconseja el equipo.
  • Los equipos en la 1.4 deberían moverse primero. Su soporte termina a finales de noviembre de 2026, así que actualiza a la 2.0, o a la 1.5 para dar un paso más pequeño.

Fuentes

  1. Announcing DuckDB 2.0.0 - DuckDB
  2. DuckDB v2.0.0 release notes - GitHub
  3. DuckDB 2.0 coming this fall with client-server mode - InfoWorld

Artículos relacionados