Engineering Blog

2026-08-05

Thank You for 40 000 Stars on GitHub

DuckDB just reached 40 000 stars on GitHub! Here's what happened since the last 10 000-star milestone.

2026-07-31

Asynchronous I/O in DuckDB: Work, Thread, Work

Starting with v2.0, scheduled for fall 2026, DuckDB will support asynchronous reads of Parquet and CSV files. This can significantly speed up queries when synchronous I/O does not saturate the available bandwidth, as is typical in EC2/S3 compute-storage setups.

2026-07-22

Announcing DuckDB 1.5.5

Today we are releasing DuckDB 1.5.5 with bugfixes and performance improvements.

2026-06-17

Announcing DuckDB 1.4.5 LTS (Andium)

Today we are releasing DuckDB 1.4.5 LTS with bugfixes and performance improvements.

2026-06-17

Announcing DuckDB 1.5.4 (Variegata)

Today we are releasing DuckDB 1.5.4 (Variegata) with bugfixes and performance improvements.

2026-05-29

New DuckDB-Iceberg Features in v1.5.3

DuckDB-Iceberg now has a number of new features supporting Iceberg Tables and Iceberg REST Catalogs: `MERGE INTO`, `ALTER TABLE`, partition transforms, V3 support, and others!

2026-05-21

Test-Driving the Lance Lakehouse Format in DuckDB

Lance is an open lakehouse format with a design geared toward AI workloads. LanceDB and DuckLabs have partnered to bring you fast vector and hybrid search directly from DuckDB SQL, without leaving your analytical workflow. In this post, we explain what Lance is, how to use it in DuckDB, and, of course, show some benchmark results.

2026-05-20

DuckDB 1.5.3: Not an Ordinary Patch Release

We are releasing DuckDB version v1.5.3. While updates in DuckDB itself are limited bugfixes, the upgraded extensions shipped with v1.5.3 bring a ton of new features. These include the Quack client-server protocol, which is now available as a core extension, support for Quack in DuckLake, and several new features for Iceberg, AWS and HTTPS.

2026-05-12

Quack: The DuckDB Client-Server Protocol

DuckDB instances can now talk to each other using the Quack remote protocol. This lets you run DuckDB in a client-server setup with multiple concurrent writers. In DuckDB's spirit, Quack is simple to set up and builds on proven technologies such as HTTP. It's also fast, which allows it to support workloads ranging from bulk operations to small transactions.

2026-05-08

Announcing the Program of DuckCon #7 Amsterdam

We are hosting DuckCon #7 in Amsterdam on June 24, 2026. Join us at the Royal Tropical Institute for talks, lightning sessions, and a borrel.

2026-05-07

Delta Grows Up: Writes, Unity Catalog and Time Travel

DuckDB's Delta and Unity Catalog extensions shed their experimental tags — now with writes, Unity Catalog and time travel support.

2026-05-04

The DuckLake Spec Is so Simple, Even a Clanker Can Build One for Dataframes

We are showcasing the simplicity of DuckLake's v1.0 specification by developing a dataframe reader/writer with AI.

2026-04-13

Announcing DuckDB 1.5.2

We are releasing DuckDB version v1.5.2, a patch release with bugfixes and performance improvements, and support for the DuckLake v1.0 lakehouse format.

2026-04-13

DuckLake v1.0: The Lakehouse Format Built on SQL Reaches Production-Readiness

We released the DuckLake v1.0 standard!

2026-04-02

Data Inlining in DuckLake: Unlocking Streaming for Data Lakes

DuckLake’s data inlining stores small updates directly in the catalog, eliminating the “small files problem” and making continuous streaming into data lakes practical. Our benchmark shows 926× faster queries and 105× faster ingestion when compared to Iceberg.

2026-04-01

DuckDB Now Speaks Dutch!

DuckDB now speaks Dutch! Load the EendDB community extension and start writing your queries in het Nederlands.

2026-03-23

Announcing DuckDB 1.5.1

We are releasing DuckDB version 1.5.1, a patch release with bugfixes, performance improvements and support for the Lance lakehouse format.

2026-03-20

DuckDB.ExtensionKit: Building DuckDB Extensions in C#

DuckDB.ExtensionKit brings DuckDB extension development to the .NET ecosystem. By building on DuckDB's stable C Extension API and leveraging .NET Native AOT compilation, it lets C# developers define scalar and table functions, which can be shipped as native DuckDB extensions.

2026-03-11

Big Data on the Cheapest MacBook

How does the latest entry-level MacBook perform on database workloads? We benchmarked it using ClickBench and TPC-DS SF300. We found that it could complete both workloads, sometimes with surprisingly good results.

2026-03-09

Announcing DuckDB 1.5.0

We are releasing DuckDB version 1.5.0, codenamed “Variegata”. This release comes with a friendly CLI (a new, more ergonomic command line client), support for the `VARIANT` type, a built-in `GEOMETRY` type, along with many other features and optimizations. The v1.4.0 LTS line (“Andium”) will keep receiving updates until its end-of-life in September 2026.

2026-01-26

Announcing DuckDB 1.4.4 LTS

Today we are releasing DuckDB 1.4.4 with bugfixes and performance improvements.

2026-01-23

Announcing Vortex Support in DuckDB

Vortex is a new columnar file format with a very promising design. SpiralDB and DuckLabs have partnered to give you a very fast experience while reading and writing Vortex files!

2026-01-06

DuckDB on LoongArch

In today's “What's on your desk?” episode, we test a Loongson CPU with the LoongArch architecture.

2025-12-16

Iceberg in the Browser

DuckDB is the first end-to-end interface to Iceberg REST Catalogs within a browser tab. You can now read and write tables in Iceberg catalogs without needing to manage any infrastructure – directly from your browser!

2025-12-09

Announcing DuckDB 1.4.3 LTS

Today we are releasing DuckDB 1.4.3. Along with bugfixes, we are shipping native extensions and Python support for Windows Arm64.

2025-11-28

Writes in DuckDB-Iceberg

We shipped a number of features and improvements to the DuckDB-Iceberg extension: insert, update, and delete statements are all supported now.

2025-11-19

Data-at-Rest Encryption in DuckDB

DuckDB v1.4 ships database encryption capabilities. In this blog post, we dive into the implementation details of the encryption, show how to use it and demonstrate its performance implications.

2025-11-12

Announcing DuckDB 1.4.2 LTS

Today we are releasing DuckDB 1.4.2, the second patch release of our LTS edition. The new release ships several bugfixes and performance optimizations. We also fixed vulnerabilities in DuckDB's database encryption, and introduced some (opt-in) logger/profiler features that help users understand performance, and full write support through the Iceberg extension.

2025-10-27

Relational Charades: Turning Movies into Tables

You can store and even process videos in DuckDB. In this post, we show you how.

2025-10-24

Frozen DuckLakes for Multi-User, Serverless Data Access

We show how you can build high-performance data lakes with no moving parts.

2025-10-22

Uncovering Financial Crime with DuckDB and Graph Queries

You can process graphs in DuckDB! In this post, we show how to use DuckDB and the DuckPGQ community extension to analyze financial data for fraudulent patterns with the SQL/PGQ graph syntax that's part of SQL:2023.

2025-10-13

Streaming Patterns with DuckDB

DuckDB used for streaming analytics? This post will show you some patterns in which you can use DuckDB to refresh your data at near real-time speed.

2025-10-09

Adoption Metrics and Benchmark Results for DuckDB v1.4 LTS

The DuckDB landing page makes some strong claims about DuckDB's popularity. In this blog post, we show evidence for these claims.

2025-10-07

Announcing DuckDB 1.4.1 LTS

Today we are releasing DuckDB 1.4.1, the first patch release of our LTS edition.

2025-09-24

Redesigning DuckDB's Sort, Again

After four years, we've decided to redesign DuckDB's sort implementation, again. In this post, we present and evaluate the new design.

2025-09-17

DuckLake 0.3 with Iceberg Interoperability and Geometry Support

We are releasing version 0.3 of the DuckLake Specification and the `ducklake` DuckDB extension.

2025-09-16

Announcing DuckDB 1.4.0 LTS

We're releasing DuckDB version 1.4.0, codenamed “Andium”. This is an LTS release with one year of community support, and it packs several new features including database encryption, the MERGE statement and Iceberg writes.

2025-09-11

Solving Letter Scramble Puzzles with DuckDB

In this lighthearted post, we solve a puzzle type that's on display in Dutch trains.

2025-09-08

Big Data on the Move: DuckDB on the Framework Laptop 13

We put DuckDB through its paces on a 12-core ultrabook with 128 GB RAM, running TPC-H queries up to SF10,000.

2025-08-15

Basic Feature Engineering with DuckDB

In this post, we show how to perform essential machine learning data preprocessing tasks, like missing value imputation, categorical encoding, and feature scaling, directly in DuckDB using SQL. This approach not only simplifies workflows, but also takes advantage of DuckDB’s high-performance, in-process execution engine for fast, efficient data preparation.

2025-08-08

Spatial Joins in DuckDB

DuckDB v1.3.0 significantly improved the scalability of geospatial joins with a dedicated `SPATIAL_JOIN` operator.

2025-07-04

DuckLake 0.2

We released the DuckLake v0.2 standard, which is supported by DuckDB v1.3.1's `ducklake` extension.

2025-06-27

Discovering DuckDB Use Cases via GitHub

In this post, we use the GitHub API to find repositories that mention DuckDB, then use DuckDB itself to parse and query the results efficiently with SQL.

2025-06-13

Lightweight Text Analytics Workflows with DuckDB

In this post, we demonstrate how to use DuckDB for keyword, full-text, and semantic similarity search with embeddings.

2025-06-06

Faster Dashboards with Multi-Column Approximate Sorting

With any columnar data format, using advanced multi-column sorting when loading data can improve performance on a wide variety of selective read queries. Space filling curve encodings like Morton (Z-Order) and Hilbert approximately sort multiple columns together. Sorting by rounded timestamps adds additional benefits when filtering on recent data.

2025-06-06

30 000 Stars on GitHub

We have reached 30 000 stars on GitHub! Here's what happened while we accumulated the last 5 000 stars.

2025-05-27

DuckLake: SQL as a Lakehouse Format

DuckLake simplifies lakehouses by using a standard SQL database for all metadata, instead of complex file-based systems, while still storing data in open formats like Parquet. This makes it more reliable, faster, and easier to manage.

2025-05-23

Arrow IPC Support in DuckDB

DuckDB now supports consuming and producing the Arrow IPC Serialization Format through the `arrow` community extension.

2025-05-23

USING KEY in Recursive CTEs

Recursive CTEs in SQL allow for powerful iterative queries like graph traversals but can be memory-intensive and slow due to repeated row accumulation. DuckDB’s new `USING KEY` feature addresses this by treating intermediate results as keyed dictionaries instead of an ever growing set: existing entries can be updated. This can lead to dramatically better performance and memory efficiency, especially in graph algorithms like shortest path and distance-vector routing. It also simplifies query logic by providing direct access to the entire dictionary.

2025-05-21

Announcing DuckDB 1.3.0

The DuckDB team is happy to announce that today we're releasing DuckDB version 1.3.0, codenamed “Ossivalis”.

2025-05-19

The Lost Decade of Small Data?

We benchmark DuckDB on a 2012 MacBook Pro to decide: did we lose a decade chasing distributed architectures for data analytics?

2025-05-16

Machine Learning Prototyping with DuckDB and scikit-learn

In this post, we prototype a machine learning workflow using DuckDB for data handling and scikit-learn for modeling.

2025-05-14

Sorting on Insert for Fast Selective Queries

Sorting data when loading can speed up selective read queries by an order of magnitude, thanks to DuckDB's automatic min-max indexes (also known as zone maps). This approach applies to most columnar file formats and databases as well. This post unpacks the DuckDB file structure as an example of a columnar data format and gives practical advice for using sorting to improve the speed of queries.

2025-05-02

Temporal Analysis with Stream Windowing Functions in DuckDB

DuckDB can perform time-based analytics using windows with different semantics (e.g., tumbling, hopping and sliding windows). In this post, we demonstrate these by detecting trends and anomalies in the railway service at Amsterdam Centraal Station.

2025-04-16

DuckDB's CSV Reader and the Pollock Robustness Benchmark: Into the CSV Abyss

DuckDB ships with a fast and robust CSV reader, which – we believe – can consume most CSV files found in the wild. To empirically evaluate this, we used the Pollock Benchmark, a state-of-the-art test suite designed to measure how well CSV readers can operate on non-standard files, and found that DuckDB ranks #1.

2025-04-04

Fully Local Data Transformation with dbt and DuckDB

In this post, we implement data transformation and reverse ETL pipelines with DuckDB and dbt using the `dbt-duckdb` adapter.

2025-03-28

Using DuckDB in Streamlit

We use a real-world railway dataset to demonstrate the integration of DuckDB and Streamlit, including the database connection management, the DuckDB Python relational API and responsiveness in interactive map charts.

2025-03-21

Maximizing Your Delta Scan Performance in DuckDB

We released a new version of the [`delta` extension](/docs/current/core_extensions/delta), which includes several new features and performance improvements. In this blog post, we’ll put the `delta` extension through its paces with some benchmarks and take a deep dive into some of the new performance-related features.

2025-03-14

Preview: Amazon S3 Tables in DuckDB

We are happy to announce a new preview feature that adds support for Apache Iceberg REST Catalogs, enabling DuckDB users to connect to Amazon S3 Tables and Amazon SageMaker Lakehouse with ease.

2025-03-12

The DuckDB Local UI

The DuckDB team and MotherDuck are excited to announce the release of a local UI for DuckDB shipped as part of the `ui` extension.

2025-03-07

Parquet Bloom Filters in DuckDB

DuckDB now supports reading and writing Parquet Bloom filters.

2025-03-06

Gems of DuckDB 1.2

We highlight a few exciting features that were introduced in DuckDB 1.2.

2025-02-26

Reading and Writing Google Sheets in DuckDB

Securely read from and write to Google Sheets directly in DuckDB using the GSheets community extension! For ad hoc querying, authentication is as easy as logging into Google from a browser. Scheduled workflows can use persistent DuckDB Secrets. SQL-on-Sheets has arrived!

2025-02-25

Prefix Aliases in SQL

You can now put your aliases first in DuckDB's SQL dialect with a colon, e.g., `SELECT a: 42;`

2025-02-19

Planning AsOf Joins

AsOf Joins are a great example of how DuckDB can choose different implementations for an expensive operation.

2025-02-14

Flying Through Windows

Dive into the details of recent DuckDB windowing performance improvements.

2025-02-10

Catching up with Windowing

DuckDB implements a number of modern windowing features, some of which are extensions to the SQL standard. This posts presents a few of these features, including GROUPS framing, QUALIFY and aggregate/function modifiers.

2025-02-05

Announcing DuckDB 1.2.0

The DuckDB team is happy to announce that today we're releasing DuckDB version 1.2.0, codenamed “Histrionicus”.

2025-01-22

Query Engines: Gatekeepers of the Parquet File Format

Mainstream query engines do not support reading newer Parquet encodings, forcing systems like DuckDB to default to writing older encodings, thereby sacrificing compression.

2025-01-17

TPC-H on a Raspberry Pi

DuckDB can run all TPC-H queries on a Raspberry Pi 5 board up to the 1,000 GiB dataset.

2025-01-10

Vertical Stacking as the Relational Model Intended: UNION ALL BY NAME

DuckDB allows vertical stacking of datasets by column name rather than position. This allows DuckDB to read files with schemas that evolve over time and finally aligns SQL with Codd's relational model.

2024-12-18

DuckDB Node Neo Client

The new DuckDB Node client, “Neo”, provides a powerful and friendly way to use your favorite database

2024-12-16

25 000 Stars on GitHub

We have recently reached 25 000 stars on GitHub. We would like to use this occasion to stop and reflect about DuckDB's recent year and our future plans.

2024-12-09

The DuckDB Avro Extension

DuckDB now supports reading Avro files.

2024-12-06

DuckDB: Running TPC-H SF100 on Mobile Phones

DuckDB runs on mobile platforms such as iOS and Android, and completes the TPC-H benchmark faster than state-of-the-art research systems on big iron machines 20 years ago.

2024-12-05

CSV Files: Dethroning Parquet as the Ultimate Storage File Format — or Not?

Data analytics primarily uses two types of storage format files: human-readable text files like CSV and performance-driven binary files like Parquet. This blog post compares these two formats in an ultimate showdown of performance and flexibility, where there can be only one winner.

2024-11-29

DuckDB Tricks – Part 3

In this new installment of the DuckDB Tricks series, we present features for convenient handling of tables and performance optimization tips for Parquet and CSV files.

2024-11-22

Runtime-Extensible SQL Parsers Using PEG

Despite their central role in processing queries, parsers have not received any noticeable attention in the data systems space. State-of-the art systems are content with ancient old parser generators. These generators create monolithic, inflexible and unforgiving parsers that hinder innovation in query languages and frustrate users. Instead, parsers should be rewritten using modern abstractions like Parsing Expression Grammars (PEG), which allow dynamic changes to the accepted query syntax and better error recovery. In this post, we discuss how parsers could be re-designed using PEG, and validate our recommendations using experiments for both effectiveness and efficiency.

2024-11-14

Optimizers: The Low-Key MVP

The query optimizer is an important part of any analytical database system as it provides considerable performance improvements compared to hand-optimized queries, even as the state of your data changes.

2024-10-30

Analytics-Optimized Concurrent Transactions

DuckDB employs unique analytics-optimized optimistic multi-version concurrency control techniques. These allow DuckDB to perform large-scale in-place updates efficiently.

2024-10-25

Fast Top N Aggregation and Filtering with DuckDB

Find the top N values or filter to the latest N rows more quickly and easily with the `N` parameter in the `min`, `max`, `min_by`, and `max_by` aggregate functions.

2024-10-23

What's New in the Vector Similarity Search Extension?

DuckDB is another step closer to becoming a vector database! In this post, we show the new performance optimizations implemented in the vector search extension.

2024-10-16

Driving CSV Performance: Benchmarking DuckDB with the NYC Taxi Dataset

DuckDB's benchmark suite now includes the NYC Taxi Benchmark. We explain how our CSV reader performs on the Taxi Dataset and provide steps to reproduce the benchmark.

2024-10-11

DuckDB Tricks – Part 2

We continue our “DuckDB tricks” series, focusing on queries that clean, transform and summarize data.

2024-10-09

Analyzing Open Government Data with duckplyr

We use the duckplyr R library to clean and analyze an Open Data set published by the government of New Zealand.

2024-10-04

DuckDB User Survey Analysis

We share the findings from a survey of 500+ DuckDB users.

2024-10-02

DuckDB in Python in the Browser with Pyodide, PyScript, and JupyterLite

Run DuckDB in an in-browser Python environment to enable simple querying on remote files, interactive documentation, and easy to use training materials.

2024-09-27

Creating a SQL-Only Extension for Excel-Style Pivoting in DuckDB

Easily create sharable extensions using only SQL macros that can apply to any table and any columns. We demonstrate the power of this capability with the pivot_table extension that provides Excel-style pivoting.

2024-09-25

Changing Data with Confidence and ACID

Transactions are key features in database management systems and are also beneficial for data analysis workloads. DuckDB supports fully ACID transactions, confirmed by the TPC-H benchmark's test suite.

2024-09-09

Announcing DuckDB 1.1.0

The DuckDB team is happy to announce that today we're releasing DuckDB version 1.1.0, codenamed “Eatoni”.

2024-08-19

DuckDB Tricks – Part 1

We use a simple example data set to present a few tricks that are useful when using DuckDB.

2024-08-08

Friendly Lists and Their Buddies, the Lambdas

2024-07-09

Memory Management in DuckDB

2024-07-05

DuckDB Community Extensions

DuckDB extensions can now be published as [DuckDB Community Extensions](https://duckdb.org/community_extensions/). The repository makes it easier for users to install extensions using the `INSTALL extension_name FROM community` syntax. Extension developers avoid the burdens of compilation and distribution.

2024-06-26

Benchmarking Ourselves over Time at DuckDB

In the last 3 years, DuckDB has become 3-25× faster and can analyze ~10× larger datasets all on the same hardware.

2024-06-22

20 000 Stars on GitHub

2024-06-20

Command Line Data Processing: Using DuckDB as a Unix Tool

DuckDB's CLI client is portable to many platforms and architectures. It handles CSV files conveniently and offers users the same rich SQL syntax everywhere. These characteristics make DuckDB an ideal tool to complement traditional Unix tools for data processing in the command line.

2024-06-10

Native Delta Lake Support in DuckDB

DuckDB now has native support for [Delta Lake](https://delta.io/), an open-source lakehouse framework, with the `delta` extension.

2024-06-03

Announcing DuckDB 1.0.0

The DuckDB team is <i>very happy</i> to announce that today we’re releasing DuckDB version 1.0.0, codename “Snow Duck” (anas nivis).

2024-05-31

Analyzing Railway Traffic in the Netherlands

We use a real-world railway dataset to demonstrate some of DuckDB's key features, including querying different file formats, connecting to remote endpoints, and using advanced SQL features.

2024-05-29

Access 150k+ Datasets from Hugging Face with DuckDB

DuckDB can now read data from [Hugging Face](https://huggingface.co/) via the `hf://` prefix.

2024-05-03

Vector Similarity Search in DuckDB

This blog post shows a preview of DuckDB's new `vss` extension, which introduces support for HNSW (Hierarchical Navigable Small Worlds) indexes to accelerate vector similarity search.

2024-04-02

duckplyr: dplyr Powered by DuckDB

The new R package duckplyr translates the dplyr API to DuckDB's execution engine.

2024-03-29

No Memory? No Problem. External Aggregation in DuckDB

Since the 0.9.0 release, DuckDB’s fully parallel aggregate hash table can efficiently aggregate over many more groups than fit in memory.

2024-03-26

42.parquet – A Zip Bomb for the Big Data Age

A 42 kB Parquet file can contain over 4 PB of data.

2024-03-22

Dependency Management in DuckDB Extensions

While core DuckDB has zero external dependencies, building extensions with dependencies is now very simple, with built-in support for vcpkg, an open-source package manager with support for over 2000 C/C++ packages. Interested in building your own? Check out the [extension template](https://github.com/duckdb/extension-template).

2024-03-01

SQL Gymnastics: Bending SQL into Flexible New Shapes

Combining multiple features of DuckDB’s [friendly SQL](/docs/guides/sql_features/friendly_sql) allows for highly flexible queries that can be reused across tables.

2024-02-13

Announcing DuckDB 0.10.0

The DuckDB team is happy to announce the latest DuckDB release (0.10.0). This release is named Fusca after the [Velvet scoter](https://en.wikipedia.org/wiki/Velvet_scoter) native to Europe.

2024-01-26

Multi-Database Support in DuckDB

DuckDB can attach MySQL, Postgres, and SQLite databases in addition to databases stored in its own format. This allows data to be read into DuckDB and moved between these systems in a convenient manner.

2023-12-18

Extensions for DuckDB-Wasm

DuckDB-Wasm users can now load DuckDB extensions, allowing them to run extensions in the browser.

2023-11-03

Updates to the H2O.ai db-benchmark!

The H2O.ai db-benchmark has been updated with new results. In addition, the AWS EC2 instance used for benchmarking has been changed to a c6id.metal for improved repeatability and fairness across libraries. DuckDB is the fastest library for both join and group by queries at almost every data size.

2023-10-27

DuckDB's CSV Sniffer: Automatic Detection of Types and Dialects

DuckDB is primarily focused on performance, leveraging the capabilities of modern file formats. At the same time, we also pay attention to flexible, non-performance-driven formats like CSV files. To create a nice and pleasant experience when reading from CSV files, DuckDB implements a CSV sniffer that automatically detects CSV dialect options, column types, and even skips dirty data. The sniffing process allows users to efficiently explore CSV files without needing to provide any input about the file format.

2023-09-26

Announcing DuckDB 0.9.0

2023-09-15

DuckDB's AsOf Joins: Fuzzy Temporal Lookups

DuckDB supports AsOf Joins – a way to match nearby values. They are especially useful for searching event tables for temporal analytics.

2023-08-23

Even Friendlier SQL with DuckDB

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! For more details, see the documentation for [friendly SQL features](/docs/guides/sql_features/friendly_sql).

2023-08-04

DuckDB ADBC – Zero-Copy Data Transfer via Arrow Database Connectivity

DuckDB has added support for [Arrow Database Connectivity (ADBC)](https://arrow.apache.org/adbc/0.5.1/index.html), an API standard that enables efficient data ingestion and retrieval from database systems, similar to [Open Database Connectivity (ODBC)](https://learn.microsoft.com/en-us/sql/odbc/microsoft-open-database-connectivity-odbc?view=sql-server-ver16) interface. However, unlike ODBC, ADBC specifically caters to the columnar storage model, facilitating fast data transfers between a columnar database and an external application.

2023-07-07

From Waddle to Flying: Quickly Expanding DuckDB's Functionality with Scalar Python UDFs

DuckDB now supports vectorized Scalar Python User Defined Functions (UDFs). By implementing Python UDFs, users can easily expand the functionality of DuckDB while taking advantage of DuckDB's fast execution model, SQL and data safety.

2023-05-26

Correlated Subqueries in SQL

2023-05-17

Announcing DuckDB 0.8.0

2023-05-12

10 000 Stars on GitHub

2023-04-28

PostGEESE? Introducing The DuckDB Spatial Extension

DuckDB now has an official [Spatial extension](https://github.com/duckdb/duckdb-spatial) to enable geospatial processing.

2023-04-21

Introducing DuckDB for Swift

DuckDB now has a native Swift API. DuckDB on mobile here we go!

2023-04-14

The Return of the H2O.ai Database-like Ops Benchmark

We've resurrected the H2O.ai database-like ops benchmark with up to date libraries and plan to keep re-running it.

2023-03-03

Shredding Deeply Nested JSON, One Vector at a Time

We recently improved DuckDB's JSON extension so JSON files can be directly queried as if they were tables.

2023-02-24

JupySQL Plotting with DuckDB

[JupySQL](https://github.com/ploomber/jupysql) provides a seamless SQL experience in Jupyter and uses DuckDB to visualize larger than memory datasets in matplotlib.

2023-02-13

Announcing DuckDB 0.7.0

2022-11-14

Announcing DuckDB 0.6.0

2022-10-28

Lightweight Compression in DuckDB

DuckDB supports efficient lightweight compression that is automatically used to keep data size down without incurring high costs for compression and decompression.

2022-10-12

Modern Data Stack in a Box with DuckDB

A fast, free, and open-source Modern Data Stack (MDS) can now be fully deployed on your laptop or to a single machine using the combination of DuckDB, [Meltano](https://meltano.com/), [dbt](https://www.getdbt.com/), and [Apache Superset](https://superset.apache.org/).

2022-09-30

Querying Postgres Tables Directly from DuckDB

DuckDB can now directly query tables stored in PostgreSQL and speed up complex analytical queries without duplicating data.

2022-07-27

Persistent Storage of Adaptive Radix Trees (ART) in DuckDB

DuckDB uses Adaptive Radix Tree (ART) Indexes to enforce constraints and to speed up query filters. Up to this point, indexes were not persisted, causing issues like loss of indexing information and high reload times for tables with data constraints. We now persist ART Indexes to disk, drastically diminishing database loading times (up to orders of magnitude), and we no longer lose track of existing indexes. This blog post contains a deep dive into the implementation of ART storage, benchmarks, and future work. Finally, to better understand how our indexes are used, I'm asking you to answer the following [survey](https://forms.gle/eSboTEp9qpP7ybz98). It will guide us when defining our future roadmap.

2022-05-27

Range Joins in DuckDB

DuckDB has fully parallelized range joins that can efficiently join millions of range predicates.

2022-05-04

Friendlier SQL with DuckDB

DuckDB offers several extensions to the SQL syntax. For a full list of these features, see the [Friendly SQL documentation page](/docs/guides/sql_features/friendly_sql).

2022-03-07

Parallel Grouped Aggregation in DuckDB

DuckDB has a fully parallelized aggregate hash table that can efficiently aggregate over millions of groups.

2022-01-06

DuckDB Time Zones: Supporting Calendar Extensions

The DuckDB ICU extension now provides time zone support.

2021-12-03

DuckDB Quacks Arrow: A Zero-Copy Data Integration between Apache Arrow and DuckDB

The zero-copy integration between DuckDB and Apache Arrow allows for rapid analysis of larger than memory datasets in Python and R using either SQL or relational APIs.

2021-11-26

DuckDB – Lord of the Enums: The Fellowship of the Categorical and Factors

2021-11-12

Fast Moving Holistic Aggregates

DuckDB, a free and open-source analytical data management system, has a windowing API that can compute complex moving aggregates like interquartile ranges and median absolute deviation much faster than the conventional approaches.

2021-10-29

DuckDB-Wasm: Efficient Analytical SQL in the Browser

[DuckDB-Wasm](https://github.com/duckdb/duckdb-wasm) is an in-process analytical SQL database for the browser. It is powered by WebAssembly, speaks Arrow fluently, reads Parquet, CSV and JSON files backed by Filesystem APIs or HTTP requests and has been tested with Chrome, Firefox, Safari and Node.js. You can try it at [shell.duckdb.org](https://shell.duckdb.org) or on [Observable](https://observablehq.com/@cmudig/duckdb).

2021-10-13

Windowing in DuckDB

DuckDB, a free and open-source analytical data management system, has a state-of-the-art windowing engine that can compute complex moving aggregates like inter-quartile ranges as well as simpler moving averages.

2021-08-27

Fastest Table Sort in the West – Redesigning DuckDB’s Sort

DuckDB, a free and open-source analytical data management system, has a new highly efficient parallel sorting implementation that can sort much more data than fits in main memory.

2021-06-25

Querying Parquet with Precision Using DuckDB

DuckDB, a free and open source analytical data management system, can run SQL queries directly on Parquet files and automatically take advantage of the advanced features of the Parquet format.

2021-05-14

Efficient SQL on Pandas with DuckDB

DuckDB, a free and open source analytical data management system, can efficiently run SQL queries directly on Pandas DataFrames.

2021-01-25

Testing Out DuckDB's Full Text Search Extension

DuckDB now has full-text search functionality, similar to the FTS5 extension in SQLite. The main difference is that our FTS extension is fully formulated in SQL. We tested it out on TREC disks 4 and 5.