Articulo de referencia

DuckDB

[[RDBMS]]"},"license":{"wt":"[[MIT License]]"}},"i":0}}]}"> DuckDB es un sistema de gestión de bases de datos relacionales (RDBMS) orientado a columnas de código abierto . [ 1 ]...

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

  1. "Documentación de DuckDB: Introducción a SQL" . Consultado el 20 de noviembre de 2024 .
  2. 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 . 
  3. ^ 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.
  4. "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 .
  5. "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 .
  6. 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 .
  7. 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 .
  8. 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 .
  9. Raasveldt, Mark; Mühleisen, Hannes (3 de junio de 2024). "Anuncio de DuckDB 1.0.0" . Recuperado el 12 de noviembre de 2024 .
  10. "Instrucciones de construcción de DuckDB" . Consultado el 16 de agosto de 2024 .
  11. 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 .
  12. 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.
  13. "Introducción a SQL universal" . Consultado el 17 de enero de 2025 .
  14. "Cómo evolucionamos nuestra arquitectura de consultas con DuckDB" . Consultado el 17 de enero de 2025 .
  15. 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 .
  16. 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 .
  17. 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 .
  18. DuckLabs. "DuckDB Labs se convierte en DuckLabs" .
  19. "Fundación DuckDB" . Consultado el 9 de noviembre de 2024 .
  20. "Preguntas frecuentes del proyecto DuckDB" . Consultado el 9 de noviembre de 2024 .
  21. "Código fuente de Java JNI" . www.github.com . Consultado el 7 de septiembre de 2024 .
  22. "Código fuente de DuckDB Java Arrow" . www.github.com . Consultado el 7 de septiembre de 2024 .
  23. "Código fuente Java de DuckDB" . www.github.com . Consultado el 7 de septiembre de 2024 .
  24. "DuckDB Pandas Source" . www.github.com . Consultado el 7 de septiembre de 2024 .
  25. "Código fuente de DuckDB PyArrow" . www.github.com . Consultado el 7 de septiembre de 2024 .
  26. "Código fuente de DuckDB en Python" . www.github.com . Consultado el 7 de septiembre de 2024 .
  27. "Código fuente de DuckDB en Rust" . www.github.com . Consultado el 7 de septiembre de 2024 .
  28. "Código fuente del nodo DuckDB" . www.github.com . Consultado el 19 de septiembre de 2025 .
  29. "Código fuente de DuckDB R" . www.github.com . Consultado el 7 de septiembre de 2024 .
  30. "Código fuente de DuckDB Jullia" . www.github.com . Consultado el 7 de septiembre de 2024 .
  31. "Código fuente de DuckDB Swift" . www.github.com . Consultado el 7 de septiembre de 2024 .
  32. "Código fuente de DuckDB Swift" . www.github.com . Consultado el 17 de enero de 2025 .
  33. "Código fuente de DuckDB Go" . www.github.com . Consultado el 19 de septiembre de 2025 .
  34. "Descripción general de las extensiones de DuckDB" . www.duckdb.org . Consultado el 17 de enero de 2025 .
  35. "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 .
  36. "Lista de extensiones de la comunidad" . www.duckdb.org . Consultado el 17 de enero de 2025 .
  37. "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 .
  • Sitio web oficialEdita esto en Wikidata
  • DuckDB en GitHub