📱 Tutorial
DuckDB v2.0: La base de datos analytics que reemplaza a SQLite para datos masivos
Si trabajas con datos en Python, sabes el dolor de hacer queries SQL en conjuntos de datos grandes. SQLite se queda corto cuando los datos crecen, y PostgreSQL puede ser overhead innecesario para scripts locales.
Entra DuckDB — la base de datos analytics embebida que está revolucionando el procesamiento de datos locales. A diferencia de SQLite, que es una base de datos general-purpose, DuckDB está optimizado específicamente para cargas de trabajo analíticas.
¿Por qué DuckDB vs SQLite?
SQLite destaca en transacciones breves y writes ocasionales. Pero cuando ejecutas queries analíticas — aggregations, joins en miles de rows — su performance colapsa. DuckDB usa columnar storage y vectorized execution, lo que significa queries que tardaban minutos ahora tapan segundos.
Empezando con DuckDB v2.0
pip install duckdb
La instalación es tan simple como cualquier paquete Python. Una vez instalado, puedes empezar a query datos inmediatamente:
import duckdb
# Conectar a un archivo existente o crear uno nuevo
con = duckdb.connect('mi_datos.duckdb')
# Cargar datos desde CSV
con.execute("COPY (SELECT * FROM read_csv('datos.csv')) TO 'resultados.parquet'")
# Queries analytics potentísimas
result = con.execute("""SELECT fecha, SUM(ventas) as total_ventas, COUNT(DISTINCT cliente) as clientes_unicos
FROM ventas
GROUP BY fecha
ORDER BY total_ventas DESC
LIMIT 10""").fetchall()
print(result)
Featureas clave de v2.0
- Performance 5x faster — Vectorized execution sobre datos columnar
- Soporte nativo para Parquet — Read/write sin configuración adicional
- SQL optimizado para analytics — Funciones window functions, time series automáticas
- Embedded zero-config — No requiere servidor, no hay setup
Cuándo usarlo vs cuándo usar PostgreSQL
Si tus datos caben en memoria RAM (hasta ~100M rows), DuckDB es la elección obvia — zero setup, queries más simples, performance superior. Usa PostgreSQL cuando necesites concurrencia multi-user, persistencia a largo plazo, o datasets que excedan memoria disponible.
Ejemplo del mundo real
Un análisis de logs de servidor web de 50MB: con SQLite tomó 47 segundos para el query de aggregación. Con DuckDB v2.0: 8.2 segundos. Eso es un 82% de improvement — y sin configurar nada más que pip install.
Conclusión
DuckDB v2.0 elimina la complejidad de las bases de datos tradicionales para trabajos analytics locales. Si haces datos en Python y necesitas queries SQL, es la herramienta que deberías tener en tu caja de herramientas — hoy mismo.
¿Ya usaste DuckDB en algún proyecto? Cuéntame en los comentarios tu experiencia y qué tipo de queries analytics te gustaría hacer con la nueva versión.