Open-source column-oriented database management system for generating analytical data reports in real time.
duckdb/duckdb
DuckDB is an in-process analytical SQL database that runs inside your application with no separate server to manage.
- Stars
- 42,359
- Forks
- 4,007
- Open issues
- 936
- Last commit
- 9 hours ago
What is it?
DuckDB is a high-performance analytical database system designed to be fast, reliable, portable, and easy to use. It runs in-process inside your application, so there is no separate server to manage and no external dependencies. It can also read remote files, query other databases, and connect to other DuckDB instances.
The SQL dialect goes well beyond basic SQL, with arbitrary and nested correlated subqueries, window functions, collations, and complex types such as arrays, structs, and maps. It also includes friendly SQL extensions that make queries shorter. DuckDB ships as a standalone CLI and has clients for Python, R, Java, Rust, Go, Wasm, and more, with integrations such as pandas.
DuckDB can query CSV, Parquet, JSON, and Excel files directly from local disk or from S3, HTTP(S), Azure, and Google Cloud Storage, and it works with Apache Iceberg, Delta Lake, and DuckLake tables. It can also attach to PostgreSQL, MySQL, and SQLite databases and query them in place.
Key features
- 01Runs in-process with no separate server or external dependencies.
- 02Queries CSV, Parquet, JSON, and Excel files directly in FROM clauses.
- 03Reads from local disk and cloud storage such as S3, Azure, and Google Cloud Storage.
- 04Supports nested correlated subqueries, window functions, and complex types.
- 05Attaches to PostgreSQL, MySQL, and SQLite databases for in-place queries.
- 06Works with Apache Iceberg, Delta Lake, and DuckLake table formats.
Use cases
- Running ad hoc analytical SQL over local CSV or Parquet files.
- Embedding an analytics engine in a Python or R data workflow.
- Joining data across PostgreSQL, MySQL, and files without a separate ETL step.
- Querying lakehouse tables stored in S3 or other cloud object storage.
Quick start
- 1
Follow the installation instructions on the DuckDB installation page
- 2
Query a CSV file directly from SQL
SELECT * FROM 'myfile.csv';
Topics
FAQ
- What is duckdb?
- DuckDB is an in-process analytical SQL database that runs inside your application with no separate server to manage. DuckDB is a high-performance analytical database system designed to be fast, reliable, portable, and easy to use. It runs in-process inside your application, so there is no separate server to manage and no external dependencies. It can also read remote files, query other databases, and connect to other DuckDB instances.
- Is duckdb free to use? What license does it have?
- duckdb is open source under the MIT license. Check the license terms before using it in commercial products.
- Is duckdb still maintained?
- Actively maintained. The last commit to duckdb was on Oct 21, 2026.
- What can I use duckdb for?
- Running ad hoc analytical SQL over local CSV or Parquet files. Embedding an analytics engine in a Python or R data workflow. Joining data across PostgreSQL, MySQL, and files without a separate ETL step. Querying lakehouse tables stored in S3 or other cloud object storage.
- How do I install duckdb?
- Follow the installation instructions on the DuckDB installation page Query a CSV file directly from SQL: SELECT * FROM 'myfile.csv';
- Where can I get duckdb?
- The source code and installation instructions are on GitHub: https://github.com/duckdb/duckdb
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An in-process SQL database written in Rust, compatible with SQLite's dialect, file format and C API, with an experimental Postgres frontend.
A PostgreSQL extension for high-performance real-time analytics on time-series and event data.
Apache Druid is a high-performance real-time analytics database for fast queries and ingestion, often used as an open-source alternative to data warehouses.
A distributed SQL database for storing and analyzing large volumes of data in near real-time, PostgreSQL-compatible and built on Lucene.
An open-source MPP database for data warehousing and large-scale analytics, built on a newer PostgreSQL kernel as a successor to Greenplum.