¿Qué es DuckDB?
DuckDB es un DBMS relacional (orientado a tablas) que apoya la Lenguaje de consulta estructurado (SQL).
DuckDB está diseñado para soportar cargas de trabajo de consultas analíticastambién conocido como Procesamiento analítico en línea (OLAP). Estas cargas de trabajo se caracterizan por consultas complejas y de duración relativamente larga que procesan porciones importantes del conjunto de datos almacenado, por ejemplo, agregaciones de tablas enteras o uniones entre varias tablas grandes. También se espera que los cambios en los datos sean a gran escala, con la adición de varias filas o la modificación o adición de grandes porciones de tablas al mismo tiempo.
DuckDB tiene sin dependencias externas, ni para compilación ni durante el tiempo de ejecución. Para las versiones, todo el árbol fuente de DuckDB se compila en dos archivos, un encabezado y un archivo de implementación, lo que se denomina “fusión”. Esto simplifica enormemente la implementación y la integración en otros procesos de compilación. Para compilar, todo lo que se necesita para compilar DuckDB es un compilador de C++ 11 que funcione.
Para DuckDB, no hay ningún software de servidor DBMS que instalar, actualizar y mantener. DuckDB no se ejecuta como un proceso separado, sino completamente integrado dentro de un proceso anfitrión. Para los casos de uso analítico a los que se dirige DuckDB, esto tiene la ventaja adicional de transferencia de datos de alta velocidad hacia y desde la base de datos. En algunos casos, DuckDB puede procesar datos externos sin copiarlos. Por ejemplo, el paquete DuckDB Python puede ejecutar consultas directamente sobre los datos de Pandas sin importar ni copiar ningún dato.
Características
- De código abierto y gratuito
- Documentación fácil de usar para desarrolladores
- Transacciones, persistencia
- Amplio soporte SQL
- Consulta directa de Parquet y CSV
- En proceso, sin servidor
- C++ 11, sin dependencias, compilación de un solo archivo
- Rápido y extremadamente ligero
- Optimizado para análisis
- Procesar y almacenar conjuntos de datos tabulares, por ejemplo, desde archivos CSV o Parquet
- Análisis de datos interactivo, por ejemplo, unir y agregar varias tablas grandes.
- Grandes cambios simultáneos en varias tablas grandes, por ejemplo, agregar filas, agregar/eliminar/actualizar columnas
- Transferencia de un gran conjunto de resultados al cliente
- Procesamiento de consultas en paralelo
- API incorporada
- Varios clientes nativos para Python, Java, R, C++, C, Node.js, WASM y una aplicación CLI
- Optimizado en masa incorporado Control de concurrencia multiversión (MVCC).
- CPU optimizada
- Soporta consultas OLAP
¿Cuándo no utilizar DuckDB?
- Casos de uso transaccionales de gran volumen (por ejemplo, seguimiento de pedidos en una tienda web)
- Grandes instalaciones cliente/servidor para almacenamiento de datos empresariales centralizado
- Escribir en una única base de datos desde múltiples procesos simultáneos
Licencia
El proyecto se publica bajo la licencia MIT.
Recursos
Etiquetas
análisis de datos Fuente abierta Base de datos Big Data ciencia de datos ingeniería de datos Desarrollo autohospedado Basado en la web