30 puntos por xguru 2024-06-13 | 5 comentarios | Compartir por WhatsApp
  • 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:
    1. Experiencia para desarrolladores
    2. Capacidad de manejar conjuntos de datos más grandes que la memoria
    3. 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

 
cometkim 2024-06-13

ParadeDB agregó recientemente una buena alternativa. https://blog.paradedb.com/pages/introducing_lakehouse

 
silveris23 2024-06-13

No es solo que DuckDB sea rápido.

Especialmente es muy bueno para crear dashboards interactivos simples con herramientas como Streamlit.

 
brainer 2024-06-13

¿Será una alternativa viable para migrar desde Huggingface Datasets?

 
hackerwins 2024-06-13

Estoy experimentando con la creación de una hoja de cálculo basada en DuckDB. Tengo muchas expectativas puestas en DuckDB.