DuckDB es un sistema de gestión de bases de datos relacionales (RDBMS) orientado a columnas de código abierto . [ 1 ] Está diseñado para proporcionar un alto rendimiento en consultas complejas sobre grandes bases de datos en configuración integrada, [ 2 ] como la combinación de tablas con cientos de columnas y miles de millones de filas. A diferencia de otras bases de datos integradas (por ejemplo, SQLite ), DuckDB no se centra en aplicaciones transaccionales ( OLTP ) y, en cambio, está especializado en cargas de trabajo de procesamiento analítico en línea (OLAP). [ 3 ] El proyecto tiene más de 6 millones de descargas al mes. [ 4 ] [ 5 ] [ 6 ]
Historia
DuckDB fue desarrollado originalmente por Mark Raasveldt y Hannes Mühleisen en el Centrum Wiskunde & Informatica (CWI) en los Países Bajos . [ 2 ] Los cofundadores del proyecto diseñaron DuckDB para abordar la necesidad de una solución de base de datos OLAP en proceso. [ 7 ] DuckDB se lanzó por primera vez en 2019. [ 8 ] La versión 1.0.0 de DuckDB se lanzó el 3 de junio de 2024, bajo el nombre en clave SnowDuck. [ 9 ]
Características
DuckDB utiliza un motor de procesamiento de consultas vectorizado . [ 3 ] DuckDB es especial entre los sistemas de gestión de bases de datos porque no tiene dependencias externas y puede construirse con solo un compilador C++17. [ 10 ] DuckDB también se desvía del modelo tradicional cliente-servidor al ejecutarse dentro de un proceso anfitrión (tiene enlaces, por ejemplo, para un intérprete de Python con la capacidad de colocar datos directamente en matrices NumPy [ 2 ] ). El analizador SQL de DuckDB deriva de la biblioteca pg_query desarrollada por Lukas Fittl, que a su vez deriva del analizador SQL de PostgreSQL que se ha simplificado al máximo. [ 3 ] [ 11 ] DuckDB utiliza un formato de almacenamiento de archivo único para almacenar datos en disco, diseñado para admitir escaneos eficientes y actualizaciones, adiciones y eliminaciones masivas. [ 12 ] DuckDB también se compila a WebAssembly usando emscripten, lo que permite que DuckDB ejecute SQL en herramientas de análisis basadas en navegador. [ 13 ] [ 14 ]
Comparación
En su nicho OLAP, DuckDB no compite con los sistemas de gestión de bases de datos tradicionales como MSSQL , PostgreSQL y Oracle . Si bien utiliza SQL para las consultas, DuckDB está orientado a aplicaciones sin servidor y proporciona respuestas extremadamente rápidas mediante archivos Apache Parquet o su propio formato de almacenamiento. Estas características lo convierten en una opción popular para el análisis de grandes conjuntos de datos en modo interactivo. [ 15 ]
Uso comercial
DuckDB se utiliza en Facebook , Google y Airbnb . [ 16 ]
Mühleisen, coautor de DuckDB, también dirige una empresa de soporte y consultoría para el software, DuckLabs. [ 8 ] La empresa ha optado por no aceptar financiación de capital riesgo, declarando: «Creemos que la inversión forzaría la dirección del proyecto hacia la monetización, y preferimos mantener DuckDB abierto y disponible para la mayor cantidad de personas posible». [ 6 ] Otra empresa, MotherDuck , ha recibido 100 millones de dólares de financiación para su plataforma de datos basada en DuckDB, con inversores como Andreessen Horowitz . [ 17 ]
La empresa DuckLabs era conocida anteriormente como DuckDB Labs. [ 18 ]
Fundación DuckDB
La Fundación DuckDB, una organización independiente sin ánimo de lucro, garantiza el mantenimiento y desarrollo a largo plazo de DuckDB. La fundación posee gran parte de la propiedad intelectual del proyecto y se financia mediante donaciones benéficas. [ 19 ] Los estatutos de la Fundación DuckDB aseguran que DuckDB siga siendo de código abierto bajo la licencia MIT a perpetuidad. [ 20 ]
Soporte de idiomas
Además de las API nativas de C y C++ , DuckDB admite una variedad de lenguajes de programación.
Extensiones
La arquitectura de DuckDB admite extensiones, lo que permite agregar funcionalidad adicional de forma dinámica. [ 34 ] Muchas extensiones populares son mantenidas por el equipo principal de DuckDB, y existen más de 30 extensiones de la comunidad mantenidas por terceros. [ 35 ] [ 36 ] [ 37 ]
La arquitectura de DuckDB admite extensiones de carga dinámica. Las extensiones principales mantenidas por el equipo de DuckDB incluyen:
- httpfs : acceso remoto a archivos mediante HTTP, HTTPS y almacenamiento de objetos compatible con S3 (incluida la compatibilidad con escritura en Azure desde la versión 1.5).
- espacial — funciones geoespaciales (familia ST_*); GEOMETRY se convirtió en un tipo básico integrado en la versión 1.5.
- iceberg : lectura/escritura de tablas de Apache Iceberg, incluyendo compatibilidad con catálogos REST.
- delta — Lectura/escritura de tablas de Delta Lake a través del núcleo Delta
- ducklake : formato lakehouse que almacena todos los metadatos en una base de datos SQL con semántica ACID; admite viajes en el tiempo, evolución de esquemas y transacciones de varias tablas.
Además, existen más de 30 extensiones comunitarias mantenidas por terceros, que abarcan casos de uso desde consultas de grafos (SQL/PGQ) hasta la integración con Kafka y la inferencia de aprendizaje automático. La lista completa está disponible en el registro de extensiones comunitarias de DuckDB .
Referencias
- ↑ "Documentación de DuckDB: Introducción a SQL" . Consultado el 20 de noviembre de 2024 .
- 1 2 3 Kamphuis, Chris (2020). "Bases de datos gráficas para la recuperación de información". Avances en la recuperación de información . Notas de clase en ciencias de la computación. Vol. 12036. Cham: Springer International Publishing. págs. 608–612 . doi : 10.1007/978-3-030-45442-5_79 . ISBN 978-3-030-45441-8. PMC 7148032 .
- ^ Raasveldt , Mark ; Mühleisen, Hannes (25 de junio de 2019). DuckDB: una base de datos analítica integrable . ACM. págs. 1981-1984 . doi : 10.1145/3299869.3320212 . ISBN 978-1-4503-5643-5.
- ↑ "Estadísticas de descarga de PyPi" . www.pypistats.org . Archivado del original el 13 de agosto de 2024. Consultado el 13 de agosto de 2024 .
- ↑ "Panel de descargas de Python de DuckDB" . duckdbstats.com . Archivado del original el 13 de agosto de 2024. Consultado el 13 de agosto de 2024 .
- 1 2 Clark, Lindsay. "DuckDB Labs pone límite al soporte gratuito y descarta la financiación de capital riesgo" . www.theregister.com . Archivado del original el 23 de marzo de 2024. Consultado el 23 de marzo de 2024 .
- ↑ van der Ent, Leendert (abril de 2023). "DuckDB: Introducción a una nueva clase de sistemas de gestión de datos" (PDF) . Revista I/O . Plataforma de Investigación TIC de los Países Bajos . Consultado el 12 de noviembre de 2024 .
- 1 2 Clark, Lindsay. "DuckDB alcanza la versión 0.5.0" . www.theregister.com . Archivado del original el 7 de marzo de 2024. Consultado el 23 de marzo de 2024 .
- ↑ Raasveldt, Mark; Mühleisen, Hannes (3 de junio de 2024). "Anuncio de DuckDB 1.0.0" . Recuperado el 12 de noviembre de 2024 .
- ↑ "Instrucciones de construcción de DuckDB" . Consultado el 16 de agosto de 2024 .
- ↑ Slot, Marco (24 de mayo de 2024). "Cómo fusionamos DuckDB con Postgres usando Crunchy Bridge para análisis" . Recuperado el 12 de noviembre de 2024 .
- ↑ Raasveldt, Mark; Mühleisen, Hannes (2020). Gestión de datos para la ciencia de datos hacia el análisis integrado (PDF) . Conferencia sobre investigación en sistemas de datos innovadores.
- ↑ "Introducción a SQL universal" . Consultado el 17 de enero de 2025 .
- ↑ "Cómo evolucionamos nuestra arquitectura de consultas con DuckDB" . Consultado el 17 de enero de 2025 .
- ↑ Bannert, M. (2024). Ingeniería de software para la investigación: una guía para el ecosistema de código abierto . Chapman & Hall/CRC Data Science Series. CRC Press. pág. 25. ISBN 978-1-04-000513-2Archivado del original el 23/03/2024 . Consultado el 23/03/2024 .
- ↑ Clark, Lindsay. "MotherDuck, la empresa de gestión de bases de datos a gran escala, recauda 47,5 millones de dólares" . www.theregister.com . Archivado del original el 23 de marzo de 2024. Consultado el 23 de marzo de 2024 .
- ↑ Clark, Lindsay. "La plataforma analítica sin servidor MotherDuck obtiene una financiación de 52,5 millones de dólares" . www.theregister.com . Archivado del original el 23 de marzo de 2024. Consultado el 23 de marzo de 2024 .
- ↑ DuckLabs. "DuckDB Labs se convierte en DuckLabs" .
- ↑ "Fundación DuckDB" . Consultado el 9 de noviembre de 2024 .
- ↑ "Preguntas frecuentes del proyecto DuckDB" . Consultado el 9 de noviembre de 2024 .
- ↑ "Código fuente de Java JNI" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB Java Arrow" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente Java de DuckDB" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "DuckDB Pandas Source" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB PyArrow" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB en Python" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB en Rust" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente del nodo DuckDB" . www.github.com . Consultado el 19 de septiembre de 2025 .
- ↑ "Código fuente de DuckDB R" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB Jullia" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB Swift" . www.github.com . Consultado el 7 de septiembre de 2024 .
- ↑ "Código fuente de DuckDB Swift" . www.github.com . Consultado el 17 de enero de 2025 .
- ↑ "Código fuente de DuckDB Go" . www.github.com . Consultado el 19 de septiembre de 2025 .
- ↑ "Descripción general de las extensiones de DuckDB" . www.duckdb.org . Consultado el 17 de enero de 2025 .
- ↑ "Extensiones principales" . duckdb.org . 12 de marzo de 2025. Archivado del original el 12 de marzo de 2025. Consultado el 29 de octubre de 2025 .
- ↑ "Lista de extensiones de la comunidad" . www.duckdb.org . Consultado el 17 de enero de 2025 .
- ↑ "DuckDB Extension Radar" . www.github.com . Consultado el 17 de enero de 2025 .
Lecturas adicionales
- Woodie, Alex (5 de marzo de 2024). "DuckDB sigue su propio ritmo en cuanto a análisis" . Datanami .
Enlaces externos
- Sitio web oficial

- DuckDB en GitHub
- Productos de big data
- Software de gestión de bases de datos orientado a columnas para Linux
- Software libre multiplataforma
- Software multiplataforma
- Productos de almacenamiento de datos
- Motores de bases de datos
- Bases de datos integradas
- Sistemas de gestión de bases de datos gratuitos
- Software libre programado en C++
- Sistemas de gestión de bases de datos relacionales
- Software que utiliza la licencia MIT.
- Almacenamiento estructurado