DuckDB es un sistema de gestión de datos analíticos que se ha destacado por su enfoque en la estabilidad y confiabilidad de los resultados de consultas.
Este DBMS desarrollado durante seis años, se presenta como una variante de SQLite orientada a consultas analíticas que combina la compacidad, la capacidad de conexión, el almacenamiento en un solo archivo y una interfaz CLI fácil de usar, características de SQLite, con herramientas y optimizaciones para ejecutar consultas analíticas que abarcan una parte significativa de los datos almacenados. Esto incluye la capacidad de agregar el contenido completo de tablas o fusionar varias tablas grandes.
Desde sus inicios en 2018, el proyecto ha crecido de forma constante, acumulando más de 300,000 líneas de código en C++, más de 42,000 confirmaciones en el repositorio y el cierre de casi 4,000 problemas. DuckDB ha ganado popularidad en GitHub y en plataformas de redes sociales, atrayendo miles de estrellas y seguidores. La cantidad de descargas mensuales supera los millones y el tráfico de descargas de extensiones alcanza hasta cuatro terabytes al día.+
Primera versión estable de DuckDB
La versión 1.0 es la primera versión estable del proyecto, enfocada en mejorar la estabilidad más que en añadir nuevas funcionalidades. La nueva versión también corrige el formato de almacenamiento de datos, manteniendo la compatibilidad con versiones anteriores.
Los desarrolladores planean ser más cuidadosos al agregar nuevas funciones en el futuro, preservando la compatibilidad entre versiones y estabilizando el dialecto SQL y la API C. Si se requieren cambios en la semántica de SQL, se publicarán advertencias anticipadas y soluciones para mantener la funcionalidad del código existente.
DuckDB soporta un dialecto extendido de SQL, con capacidades adicionales para procesar consultas complejas y que requieren mucho tiempo. Incluye tipos complejos (matrices, estructuras, uniones), subconsultas correlacionadas y anidadas, ejecución de múltiples consultas simultáneamente, y ejecución de consultas directamente desde archivos CSV y Parquet. También es posible importar datos desde PostgreSQL.
El proyecto utiliza, además del código de shell de SQLite, un analizador de PostgreSQL en una biblioteca separada, componentes de Date Math de MonetDB, su propia implementación de funciones de ventana basada en un algoritmo de agregación de árbol de segmentos, un procesador de expresiones regulares basado en la biblioteca RE2, su propio optimizador de consultas, y un mecanismo de control de concurrencia multiversión (MVCC) para la ejecución simultánea de tareas. También incluye un motor de ejecución de consultas vectorizadas basado en el algoritmo Hyper-Pipelining Query Execution, que permite procesar grandes conjuntos de valores de una vez en una sola operación.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace. El código del proyecto está escrito en C++ y se distribuye bajo la licencia MIT.
Discover more from Ready4Linux
Subscribe to get the latest posts to your email.