DuckDB es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto, orientado a columnas, diseñado para consultas analíticas de alto rendimiento en configuraciones integradas. Se dirige a cargas de trabajo de procesamiento analítico en línea (OLAP), como la combinación de tablas con cientos de columnas y miles de millones de filas, en lugar de aplicaciones transaccionales (OLTP). A diferencia de las bases de datos tradicionales cliente-servidor, DuckDB se ejecuta dentro de un proceso anfitrión, lo que lo hace adecuado para el análisis interactivo de datos, canalizaciones de scripts e integración con herramientas como Python. Según recuentos recientes, el proyecto reporta más de 6 millones de descargas al mes.
El sistema está construido alrededor de un motor de procesamiento de consultas vectorizado, sin dependencias externas más allá de un compilador C++17. El analizador SQL de DuckDB deriva de la biblioteca pg_query de Lukas Fittl, que a su vez es una versión reducida del analizador de PostgreSQL. Los datos pueden almacenarse en archivos Apache Parquet o en un formato de almacenamiento de archivo único, ambos optimizados para escaneos eficientes y operaciones masivas. DuckDB también se compila a WebAssembly mediante Emscripten, lo que permite la ejecución de SQL en herramientas de análisis basadas en navegador.
Historia
DuckDB fue desarrollado originalmente por Mark Raasveldt y Hannes Mühleisen en el Centrum Wiskunde & Informatica (CWI) en los Países Bajos. Los cofundadores buscaban crear una base de datos OLAP en proceso para consultas analíticas rápidas, llenando un vacío dejado por bases de datos integradas como SQLite que se centran en el procesamiento transaccional. La primera versión pública apareció en 2019, y la versión 1.0.0, con el nombre en clave SnowDuck, se lanzó el 3 de junio de 2024.
Arquitectura y Características
DuckDB utiliza un motor de procesamiento de consultas vectorizado, que opera sobre lotes de datos en lugar de filas individuales. Esta elección de diseño mejora significativamente el rendimiento para cargas de trabajo analíticas. El sistema puede colocar datos directamente en arreglos NumPy cuando se usa a través de su enlace de Python, y admite otros lenguajes mediante API adicionales. El formato de almacenamiento de DuckDB es un archivo único diseñado para escaneos eficientes y actualizaciones, adiciones y eliminaciones masivas. Su analizador, derivado del de PostgreSQL, conserva un alto grado de compatibilidad con SQL.
Comparación con Otros Sistemas
El nicho OLAP de DuckDB significa que no compite directamente con sistemas de gestión de bases de datos relacionales tradicionales como Microsoft SQL Server, PostgreSQL u Oracle database. Aunque usa SQL para consultas, DuckDB se dirige a aplicaciones sin servidor y proporciona respuestas extremadamente rápidas al leer archivos Apache Parquet o su propio formato de almacenamiento. Esto lo convierte en una opción popular para el análisis interactivo de grandes conjuntos de datos, donde puede superar a las bases de datos cliente-servidor convencionales para cargas de trabajo en proceso.
Adopción Comercial y Gobernanza
DuckDB se utiliza en empresas como Facebook, Google y Airbnb para tareas analíticas. El coautor Hannes Mühleisen dirige DuckLabs, una firma de soporte y consultoría anteriormente conocida como DuckDB Labs. DuckLabs ha evitado deliberadamente la financiación de capital de riesgo, con Mühleisen declarando: "Creemos que la inversión forzaría la dirección del proyecto hacia la monetización, y preferiríamos mantener DuckDB abierto y disponible para tantas personas como sea posible". En agosto de 2026, DuckLabs fue adquirida por Amazon, con sus empleados uniéndose a la subsidiaria Amazon Web Services. Por separado, MotherDuck, una empresa que construye una plataforma de datos sobre DuckDB, ha recaudado 100 millones de dólares en financiación, con inversores que incluyen a Andreessen Horowitz.
La Fundación DuckDB independiente sin fines de lucro posee gran parte de la propiedad intelectual del proyecto y salvaguarda su estado de código abierto. Financiada por donaciones caritativas, los estatutos de la fundación aseguran que DuckDB permanezca bajo la licencia MIT a perpetuidad.
Resumen Técnico
El motor vectorizado de DuckDB procesa datos en lotes, lo que permite un alto rendimiento para consultas analíticas. Admite una amplia gama de lenguajes de programación más allá de C y C++, incluidos Python, R, Java y otros, mediante enlaces nativos. La integración con Python puede colocar datos directamente en arreglos NumPy, facilitando flujos de trabajo en ciencia de datos y Machine learning. DuckDB también proporciona enlaces para interactuar con canalizaciones de Artificial intelligence, donde las consultas analíticas rápidas en proceso complementan las tareas de inferencia de modelos.
Su arquitectura admite extensiones, cargadas dinámicamente para agregar funcionalidad. Las extensiones principales mantenidas por el equipo de DuckDB incluyen httpfs para acceso remoto a archivos mediante HTTP, HTTPS y almacenamiento compatible con S3 (con soporte de escritura en Azure desde v1.5); spatial para funciones geoespaciales con un tipo GEOMETRY integrado desde v1.5; iceberg para lectura/escritura de tablas Apache Iceberg con soporte de catálogo REST; delta para integración con Delta Lake mediante el Delta Kernel; y ducklake, un formato de lakehouse con semántica ACID, viaje en el tiempo y evolución de esquemas. Más de 30 extensiones comunitarias cubren casos de uso desde consultas de grafos (SQL/PG) hasta integración con Kafka e inferencia de aprendizaje automático.
Comparación con Otras Bases de Datos
El enfoque OLAP de DuckDB lo distingue de los DBMS tradicionales como Microsoft SQL Server, PostgreSQL y Oracle Database. Aunque usa SQL para consultas, se dirige a aplicaciones sin servidor y proporciona respuestas rápidas al leer archivos Parquet o su propio formato de almacenamiento. Esto lo convierte en una opción popular para el análisis interactivo de grandes conjuntos de datos, especialmente en entornos de ciencia de datos y análisis donde complementa las pilas existentes de Machine learning. No está diseñado para reemplazar sistemas OLTP; en cambio, se sitúa junto a ellos para cargas de trabajo analíticas.
Adopción y Ecosistema Comercial
DuckDB se utiliza en Facebook, Google y Airbnb para el análisis de datos a gran escala. El coautor del proyecto Hannes Mühleisen dirige DuckLabs (anteriormente DuckDB Labs), una firma de soporte y consultoría. DuckLabs ha evitado deliberadamente la financiación de capital de riesgo, declarando que la inversión empujaría el proyecto hacia la monetización, prefiriendo mantener DuckDB abierto. En agosto de 2026, DuckLabs fue adquirida por Amazon; sus empleados se unieron a la subsidiaria Amazon Web Services. Por separado, MotherDuck recaudó 100 millones de dólares en financiación para una plataforma de datos basada en DuckDB, con inversores que incluyen a Andreessen Horowitz.
Fundación DuckDB
La Fundación DuckDB independiente sin fines de lucro salvaguarda el mantenimiento y desarrollo a largo plazo del proyecto. Posee gran parte de la propiedad intelectual y se financia mediante donaciones caritativas. Los estatutos de la fundación aseguran que DuckDB permanezca como código abierto bajo la licencia MIT a perpetuidad, protegiendo el proyecto de la captura comercial. Esta estructura de gobernanza, combinada con la decisión de DuckLabs de evitar el capital de riesgo, refleja un compromiso con mantener la tecnología ampliamente accesible.
Soporte de Lenguajes y Extensiones
DuckDB proporciona API nativas en C y C++, con enlaces adicionales para lenguajes como Python, R, Java, Julia y otros. La integración con Python permite la colocación directa de resultados de consultas en arreglos NumPy, facilitando flujos de trabajo fluidos en contextos de ciencia de datos y Machine learning. El sistema de extensiones admite módulos tanto internos como mantenidos por la comunidad, con la extensión httpfs que permite el acceso remoto a archivos mediante HTTP, HTTPS y almacenamiento de objetos compatible con S3, incluido el soporte de escritura en Azure desde la versión 1.5. La extensión spatial proporciona funciones geoespaciales en la familia ST_*, y GEOMETRY se convirtió en un tipo central integrado en v1.5. Para escenarios de lakehouse, DuckDB ofrece extensiones iceberg y delta para los formatos de tabla Apache Iceberg y Delta Lake, respectivamente.
Casos de Uso y Rendimiento
DuckDB se utiliza a menudo en flujos de trabajo de ciencia de datos donde los usuarios consultan grandes conjuntos de datos de forma interactiva desde un intérprete de Python o un cuaderno de Jupyter, colocando resultados directamente en arreglos NumPy. También se usa en herramientas de análisis que se ejecutan en el navegador mediante WebAssembly. Debido a que evita la sobrecarga de una capa de red cliente-servidor, DuckDB puede ofrecer respuestas en menos de un segundo sobre datos almacenados en Parquet o su propio formato columnar. Esto lo posiciona como una opción práctica para análisis integrados, procesamiento por lotes y tareas ligeras de transformación de datos, permitiendo a los usuarios manejar datos a gran escala sin desplegar un clúster de bases de datos dedicado.
Soporte de Lenguajes
Además de las API nativas en C y C++, DuckDB ofrece enlaces para Python, R, Java, Node.js y otros lenguajes, haciéndolo accesible en diversas pilas de desarrollo de Large language model y herramientas generales de datos. El paquete de Python se usa ampliamente para análisis interactivo y en canalizaciones de producción, a menudo como un reemplazo directo de dataframes en memoria cuando los conjuntos de datos exceden la RAM disponible.
Extensiones y Ecosistema
El sistema de extensiones permite la carga dinámica sin recompilar el motor central. Las extensiones comunitarias cubren diversos casos de uso, desde consultas de grafos hasta integración con Kafka e inferencia de ML. El equipo de DuckDB mantiene varias extensiones principales, con más de 30 adicionales mantenidas por la comunidad listadas en el registro oficial. Este ecosistema admite una amplia gama de escenarios analíticos, incluidos análisis geoespaciales, acceso remoto a datos e integración con formatos modernos de data lake.
Referencias
- Woodie, Alex. "DuckDB Walks to the Beat of Its Own Analytics Drum." 5 de marzo de 2024.