Back to all tools
DuckDB logo

DuckDB

In-process OLAP SQL — run analytical queries on Parquet, CSV, and JSON without a server.

0Open Source
Data Warehouse
Share:XLinkedInWhatsApp

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

  1. 1pip install duckdb
  2. 2Run duckdb.sql("SELECT * FROM 'data/*.parquet' WHERE ...") in Python
  3. 3Use window functions and aggregations on billions of rows locally
  4. 4Export results to CSV or feed into pandas/Polars for visualization

Lightweight local data warehouse with dbt

  1. 1Install dbt-duckdb adapter and configure a DuckDB profile
  2. 2Run dbt models — DuckDB persists results in a local .duckdb file
  3. 3Query the results with any SQL client or directly in Python
  4. 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.