Back to all tools

DuckDB
In-process OLAP SQL — run analytical queries on Parquet, CSV, and JSON without a server.
0Open Source
Data Warehouse
Overview
DuckDB is an in-process OLAP SQL database designed for analytical workloads, running directly in Python, R, or as a standalone CLI with no server required — ideal for local data analysis, notebook-based EDA, and embedded analytics.
Key Features
- In-process OLAP — no server, no setup, runs inside your Python process
- Columnar vectorized execution for fast analytical queries
- Direct querying of Parquet, CSV, JSON, and Arrow without loading
- Full SQL support including window functions, CTEs, and PIVOT
- Extensions for spatial data (duckdb_spatial), Postgres scanner, and Arrow
- MotherDuck for managed DuckDB cloud with shared data
Real-World Workflows
Analyze a large Parquet dataset without Spark
- 1pip install duckdb
- 2Run duckdb.sql("SELECT * FROM 'data/*.parquet' WHERE ...") in Python
- 3Use window functions and aggregations on billions of rows locally
- 4Export results to CSV or feed into pandas/Polars for visualization
Lightweight local data warehouse with dbt
- 1Install dbt-duckdb adapter and configure a DuckDB profile
- 2Run dbt models — DuckDB persists results in a local .duckdb file
- 3Query the results with any SQL client or directly in Python
- 4Use MotherDuck to share the DuckDB file in the cloud
Getting Started
# Install DuckDB Python package
pip install duckdb
import duckdb
# Query a remote Parquet file directly
duckdb.sql("""
SELECT year, COUNT(*) as cnt
FROM 'https://datasets.example.com/events.parquet'
GROUP BY year
ORDER BY cnt DESC
""").show()Compare Alternatives
See how DuckDB stacks up against similar tools.