DuckDB, una DB open source utilizada por Google, Facebook y Airbnb
Hace poco se dio a conocer el lanzamiento de la nueva versión de DuckDB 0.5.0, el cual es un sistema de gestión de bases de datos analíticas (DBMS) en desarrollo utilizado por Google, Facebook y Airbnb.
DuckDB es un sistema de base de datos analítico de alto rendimiento. Está diseñado para ser rápido, fiable y fácil de usar. DuckDB proporciona un rico dialecto de SQL, con soporte mucho más allá del SQL básico. DuckDB admite subconsultas correlacionadas arbitrarias y anidadas, funciones de ventana, intercalaciones, tipos complejos (matrices, estructuras) y más.
Entre sus principales características se destacan las siguientes:
- Instalación simple
- Integrado: sin gestión de servidor
- Formato de almacenamiento de un solo archivo
- Procesamiento analítico rápido
- Transferencia rápida entre R/Python y RDBMS
- No depende de ningún estado externo. Por ejemplo, archivos de configuración separados, variable de entorno.
- Formato de almacenamiento de un solo archivo
- Interfaz componible. API programática fluida de SQL
- Totalmente ACID a través de MVCC
Sobre DuckDB 0.5.0
Entre las novedades se encuentra «out of core», que pretende solucionar los problemas que pueden surgir cuando los datos que se procesan son más grandes que la memoria proponiendo resultados intermedios.
La nueva versión utiliza índices Adaptive Radix Tree (ART) para aplicar restricciones y acelerar los filtros de consulta. Hasta ahora, los índices no eran persistentes, lo que generaba problemas como la pérdida de información de indexación y tiempos de recarga elevados para tablas con restricciones de datos.
ART es, en esencia, un intento que aplican compresión vertical y horizontal para crear estructuras de índice compactas. Los intentos son estructuras de datos en forma de árbol, donde cada nivel del árbol contiene información sobre alguna parte del conjunto de datos. Por lo general, se ilustran mediante cadenas de caracteres.
El proyecto también agregó la optimización del orden de unión, un problema común en las bases de datos analíticas. Hyoun Park, CEO y analista jefe de Amalgam Insights, dijo que la diferenciación de DuckDB proviene del hecho de que es una aplicación pequeña que funciona dentro de flujos de trabajo basados en código para escanear rápidamente grandes almacenes de datos.
“DuckDB a menudo puede ejecutar consultas directamente en los datos sin procesamiento intermedio, lo que mejora el procesamiento. Desde un punto de vista puramente tecnológico, es algo similar a Actian Vector, que también adopta un enfoque de consulta OLAP vectorizado en columnas, aunque Actian está diseñado para traer datos en lugar de trabajar en un proceso o cargar un trabajo específico. »
DuckDB Labs brinda asesoramiento y soporte. El cofundador y director ejecutivo Hannes Mühleisen, quien también coescribió el código y mantiene el proyecto, dijo que se inspiró en SQLite, el motor de base de datos OLTP sin servidor, donde vio la oportunidad de un enfoque similar, pero para análisis.
DuckDB también se usa a menudo como parte de una pila de análisis o administración de datos más grande. Por ejemplo, si alguien construye una aplicación personalizada que recopila datos y luego quiere crear una interfaz SQL, primero tuvo que copiar los datos y moverlos a otro sistema, lo que podría causar problemas de sincronización, explicó él.
Descargar y obtener
Es importante mencionar que la página de inicio establece claramente que no debe usarse para «grandes instalaciones de cliente/servidor para almacenamiento de datos empresarial centralizado».
El proyecto está trabajando en el lanzamiento de la versión 1.0, después de lo cual ya no será posible realizar modificaciones. Los trabajos de los académicos del Centro de Matemáticas y Ciencias de la Computación Teórica Centrum Wiskunde & Informatica de Ámsterdam, DuckDB está integrado en un proceso de host, cabe destacar que no hay software de servidor DBMS para instalar, actualizar o mantener.
Por ejemplo, el paquete Python de DuckDB puede ejecutar consultas directamente en datos de la biblioteca de software de Python, sin importar ni copiar datos. DuckDB está escrito en C++, es gratuito y de código abierto bajo la licencia MIT.
Puedes conocer más al respecto asi como consultar el manual de instalación, en el siguiente enlace.