Datos y hojas de cálculo

DuckDB 2.0 añade modo servidor, E/S asíncrona y soporte para el tipo variant

DuckDB 2.0.0 LTS introduce capacidades cliente-servidor mediante el protocolo Quack, E/S asíncrona para lecturas remotas más rápidas y un tipo VARIANT de primera clase para datos semiestructurados.

Un pato geométrico compuesto por racks de servidores nadando en código binario
Ilustración creada para este artículo

Traducido automáticamente del original en inglés.

El equipo de DuckDB ha lanzado la versión 2.0.0 LTS, con el nombre en clave “Cinnamon Teal”, lo que marca un cambio significativo desde la pura estabilidad hacia una gran expansión de funciones. Esta actualización, publicada el 21 de octubre de 2026, introduce capacidades nativas de servidor, operaciones de entrada/salida asíncronas y un manejo mejorado de datos semiestructurados. Representa el lanzamiento de funciones más grande en la historia del proyecto, construido sobre casi 20.000 commits desde la versión 1.5.

Qué ha ocurrido

DuckDB ha operado tradicionalmente como una base de datos in-process, lo que significa que se ejecuta dentro del mismo espacio de memoria que la aplicación que la utiliza. La versión 2.0 cambia esta arquitectura puliendo el protocolo Quack, que permite a DuckDB funcionar en una configuración tradicional cliente-servidor. La nueva sentencia CONNECT permite a los usuarios adjuntar y cambiar a bases de datos remotas en un solo comando, mejorando la ergonomía para flujos de trabajo distribuidos. Aunque el servidor escucha por defecto solo en localhost por seguridad, puede colocarse detrás de un proxy inverso con terminación TLS para aceptar conexiones externas de forma segura.

Las mejoras de rendimiento son centrales en este lanzamiento, particularmente a través de la introducción de la E/S asíncrona. Esta función permite que la capa de E/S escale independientemente del procesamiento de consultas, emitiendo lecturas en segundo plano y manteniendo múltiples solicitudes en vuelo. Este cambio aumenta significativamente el paralelismo para las lecturas remotas, resultando en consultas drásticamente más rápidas al acceder a servicios de almacenamiento de objetos como Amazon S3. Además, el tipo VARIANT, introducido en la versión 1.5, está ahora totalmente integrado como ciudadano de primera clase. Almacena datos sin esquema, como JSON, manteniendo el rendimiento de ejecución columnar, detectando automáticamente estructuras comunes para optimizar la compresión y la velocidad.

El lanzamiento también incluye actualizaciones sustanciales en extensibilidad y características SQL. Un nuevo parser basado en PEG reemplaza al antiguo parser derivado de PostgreSQL, permitiendo que las extensiones se integren en la propia gramática y proporcionando mensajes de error más precisos. Ahora se admiten disparadores (triggers), habilitando acciones automáticas como registro de auditoría o mantenimiento incremental de vistas materializadas. Además, los usuarios ahora pueden alojar sus propios repositorios de extensiones de confianza, permitiendo a las organizaciones firmar y distribuir extensiones personalizadas de forma segura dentro de su infraestructura.

Detalles clave

  • Soporte a largo plazo: DuckDB 2.0 es una versión LTS soportada hasta al menos octubre de 2027, mientras que el soporte para la versión 1.5 se ha extendido hasta marzo de 2027 para facilitar la migración.
  • Modo Agente: La CLI detecta agentes de codificación como Claude Code o Cursor y cambia a un modo de salida compacto, reduciendo el uso de tokens en un 59% en pruebas.
  • E/S Asíncrona: La lectura asíncrona para formatos Parquet, CSV y nativos mejora el rendimiento para fuentes de datos remotas desacoplando la E/S de la ejecución de consultas.
  • Tipo VARIANT: Soporte totalmente integrado para datos semiestructurados permite el almacenamiento y consulta eficiente de estructuras similares a JSON sin la sobrecarga del formato de texto.
  • Repositorios Personalizados: Las organizaciones pueden registrar y alojar sus propios repositorios de extensiones con paquetes firmados con RSA para una distribución interna segura.
  • Cambios Rompedores: Los archivos de base de datos creados por la versión 2.0 no pueden ser leídos por versiones anteriores, aunque la 2.0 aún puede leer archivos de lanzamientos previos.

Contexto

Para equipos no familiarizados con el cambio, pasar de una base de datos in-process a un modelo cliente-servidor implica separar el motor de la base de datos de la lógica de la aplicación. En una configuración in-process, la biblioteca de la base de datos se ejecuta directamente dentro de la memoria de la aplicación, lo que simplifica el despliegue pero limita el acceso concurrente. El nuevo protocolo Quack permite a DuckDB escuchar conexiones a través de una red, permitiendo que múltiples clientes consulten los mismos datos simultáneamente. Esto refleja la arquitectura de sistemas tradicionales como PostgreSQL pero retiene las características de rendimiento analítico de DuckDB.

La E/S asíncrona es una técnica donde las operaciones de lectura de datos no bloquean el hilo de procesamiento principal. En su lugar, el sistema emite solicitudes de lectura y continúa con otros trabajos mientras espera que lleguen los datos desde el disco o el almacenamiento de red. Esto es particularmente crítico para entornos cloud-native donde los datos a menudo residen en almacenamiento de objetos en lugar de discos locales. Al mantener múltiples solicitudes de lectura en vuelo, la base de datos puede utilizar el ancho de banda disponible de manera más efectiva, reduciendo el tiempo de espera para la recuperación de datos durante consultas analíticas complejas.

Por qué importa

Para equipos de ingeniería que ejecutan plataformas de análisis autoalojadas, la capacidad de desplegar DuckDB como servidor abre nuevas posibilidades arquitectónicas. Permite servir datos centralizados sin migrar a sistemas de bases de datos más pesados y complejos. La ergonomía mejorada de la sentencia CONNECT simplifica la gestión de fuentes de datos remotas, facilitando la construcción de sistemas de consultas federadas que extraen datos de PostgreSQL, MySQL u otras instancias de DuckDB. Esto reduce la necesidad de pipelines ETL complejos cuando se requiere acceso en tiempo real a datos distribuidos.

Las ganancias de rendimiento de la E/S asíncrona impactan directamente en el costo y la eficiencia para empresas que almacenan grandes conjuntos de datos en almacenamiento de objetos en la nube. Tiempos de consulta más rápidos significan menos tiempo de cómputo consumido por análisis, lo que puede llevar a ahorros significativos en las facturas de infraestructura en la nube. Además, el soporte de primera clase para el tipo VARIANT aborda un punto de dolor común en la ingeniería de datos moderna: manejar datos de registro semiestructurados o respuestas de API. Al tratar estos datos eficientemente dentro del almacén columnar, los equipos pueden evitar la penalización de rendimiento de analizar cadenas JSON en tiempo de consulta.

La seguridad y control operativo se ven reforzados por la capacidad de alojar repositorios de extensiones privados. Las organizaciones que desarrollan herramientas internas personalizadas o conectores de datos sensibles ahora pueden distribuirlos con la misma facilidad y seguridad que las extensiones oficiales. Esto asegura que solo código verificado se ejecute en entornos de producción, mitigando riesgos de cadena de suministro asociados con plugins de terceros. El cronograma de soporte extendido para la versión 1.5 también proporciona una ventana segura para que los equipos prueben y validen sus migraciones sin presión inmediata.

Qué puedes hacer

  • Prueba la nueva versión en un sistema sombra antes de actualizar entornos de producción para identificar cualquier problema de compatibilidad con archivos de base de datos existentes.
  • Evalúa el protocolo Quack para casos de uso que requieran acceso concurrente a datos de DuckDB desde múltiples aplicaciones o servicios.
  • Realiza pruebas de referencia (benchmark) del rendimiento de consultas en almacenamiento de objetos remoto para medir el impacto de la E/S asíncrona en tus cargas de trabajo específicas.
  • Refactoriza la lógica de manejo de JSON para aprovechar el tipo VARIANT para mejorar la compresión y la velocidad de consulta en datos semiestructurados.
  • Configura un repositorio de extensiones privado si tu equipo mantiene extensiones personalizadas de DuckDB, asegurando que estén firmadas y verificadas.
  • Revisa la guía de migración para cambios rompedores, particularmente respecto a la compatibilidad del formato de almacenamiento y las diferencias de comportamiento del parser.

Más noticias

Todas las noticias