- DuckDB es una base de datos SQL de archivo único, especializada en análisis de datos
- La mayoría de las evaluaciones de DuckDB tienden a centrarse en análisis cuantitativos
- Especialmente en velocidad, DuckDB suele mostrar un buen rendimiento
- Pero desde la perspectiva del usuario, una vez que el rendimiento alcanza un nivel satisfactorio, más velocidad deja de tener gran importancia
- En cambio, la facilidad de uso se vuelve más importante, y DuckDB tiene ventajas en ese aspecto
- Ventajas de facilidad de uso de DuckDB:
- Experiencia para desarrolladores
- Capacidad de manejar conjuntos de datos más grandes que la memoria
- Facilidad de instalación y ejecución
Ergonomía
- DuckDB está diseñado para resolver tareas comunes de forma sencilla
- Por ejemplo, puede crear tablas directamente desde archivos de entrada e inferir el esquema
- En el caso de archivos Parquet, incluso puede leer archivos en la web
- Se pueden consultar datos sin crear previamente una tabla
- La función
read_parquet devuelve una relation, por lo que puede usarse como subconsulta
- DuckDB soporta la mayoría de las funciones SQL usadas en Postgres
- Por ejemplo, las funciones de ventana están totalmente soportadas
Manejo de conjuntos de datos más grandes que la memoria
- Muchas herramientas de datos no funcionan bien cuando el conjunto de datos supera la memoria de la computadora
- Esto puede ser una fuente de dolor subestimada
- En cambio, DuckDB sí soporta completamente conjuntos de datos más grandes que la memoria
- En el caso de Pandas, pueden surgir problemas cuando un dataframe supera el 50% de la memoria del sistema
Instalación y ejecución sencillas
- DuckDB se compila como un único ejecutable:
duckdb
- A través de WASM, es posible probar DuckDB directamente en el navegador (shell.duckdb.org)
- Como está basado en WASM, todo se ejecuta en el navegador y no en un servidor
- Usar DuckDB como si fuera una biblioteca de dataframes
- DuckDB se integra muy bien con Python
- Se pueden ejecutar consultas dentro de Python y usar los valores devueltos
- Esto permite construir operaciones de datos más grandes paso a paso
- Se obtienen tanto las ventajas de SQL como las de los dataframes
Almacenamiento de datos mediante csvbase
- La biblioteca cliente de csvbase puede integrarse con varios sistemas a través de la API de fsspec
- Del mismo modo, DuckDB también puede usarse junto con csvbase
Escalabilidad
- DuckDB no escala a miles de máquinas
- En cambio, Apache Spark sí puede hacerlo, pero conlleva una complejidad considerable
- La escalabilidad hacia abajo también es importante
- DuckDB funciona a nivel de usuario individual y no requiere mucho
Resumen
- DuckDB puede ser una opción atractiva para analistas de datos que ya conocen SQL
- Puede manejar datos más grandes que la memoria, es fácil de instalar y, en muchos casos, puede ser una buena alternativa a Spark
5 comentarios
ParadeDB agregó recientemente una buena alternativa. https://blog.paradedb.com/pages/introducing_lakehouse
No es solo que DuckDB sea rápido.
Especialmente es muy bueno para crear dashboards interactivos simples con herramientas como Streamlit.
¿Será una alternativa viable para migrar desde Huggingface Datasets?
Estoy experimentando con la creación de una hoja de cálculo basada en DuckDB. Tengo muchas expectativas puestas en DuckDB.
DuckDB - código abierto de una base de datos OLAP embebida
DuckDB, una base de datos incluso sin datos
DuckDB como el nuevo jq
Lanzamiento de DuckDB 1.0.0