DuckDB is an in-process
SQL OLAP database management system
Why DuckDB?
Simple and portable
- In-process, serverless
- C++11, no dependencies, single-file build
- APIs for Python, R, Java, Julia, Swift, …
- Runs on Windows, Linux, macOS, OpenBSD, …
Feature-rich
- Transactions, persistence
- Extensive SQL support
- Direct Parquet, CSV, and JSON querying
- Joins, aggregates, window functions
Fast
- Optimized for analytics
- Vectorized and parallel engine
- Larger than memory processing
- Parallel Parquet, CSV, and NDJSON loaders
All the benefits of a database, none of the hassle.
Installation
Choose your environment to use for DuckDB
- Command Line
- Python
- R
- Java
- Node.js
- ODBC
Latest release: DuckDB 0.9.0 System detected: Other Installations
pip install duckdb==0.9.0
install.packages("duckdb")
<dependency>
<groupId>org.duckdb</groupId>
<artifactId>duckdb_jdbc</artifactId>
<version>0.9.0</version>
</dependency>
More Options
npm install duckdb
brew install duckdb
---
Direct download: https://github.com
https://github.com
https://github.com
https://github.com/
https://github.com/
Not available
When to use DuckDB
- Processing and storing tabular datasets, e.g., from CSV or Parquet files
- Interactive data analysis, e.g., join & aggregate multiple large tables
- Concurrent large changes, to multiple large tables, e.g., appending rows, adding/removing/updating columns
- Large result set transfer to client
When to not use DuckDB
- High-volume transactional use cases (e.g., tracking orders in a webshop)
- Large client/server installations for centralized enterprise data warehousing
- Writing to a single database from multiple concurrent processes
- Multiple concurrent processes reading from a single writable database
Blog
ArchiveAnnouncing DuckDB 0.9.0
The DuckDB team is happy to announce the latest DuckDB release (0.9.0). This release is named Undulata after the Yellow-billed duck native to Africa. To install the new version, please visit the installation guide. The full release notes can be found here. What’s new in 0.9.0 There have been too […]
continue readingDuckDB's AsOf Joins: Fuzzy Temporal Lookups
TLDR: DuckDB supports AsOf Joins – a way to match nearby values. They are especially useful for searching event tables for temporal analytics. Do you have time series data that you want to join, but the timestamps don’t quite match? Or do you want to look up a value that […]
continue readingEven Friendlier SQL with DuckDB
TLDR; DuckDB continues to push the boundaries of SQL syntax to both simplify queries and make more advanced analyses possible. Highlights include dynamic column selection, queries that start with the FROM clause, function chaining, and list comprehensions. We boldly go where no SQL engine has gone before! Who says that […]
continue reading