We released DuckDB 2.0 on Wednesday, leading with the Python, Java and command-line clients, plus the core extensions.
By Friday, the rest of the ecosystem caught up with the new version. All primary clients support DuckDB 2.0, including Go, Node.js, R and Rust.
Most community extensions have also been updated and rebuilt for DuckDB 2.0, and there are even new ones out there
For example, @MistralAI released their new Timestral time-series model family, and there’s already a DuckDB extension for it, contributed by Sylvain Utard! Timestral forecasts that if you’re based in Europe, you’ll have an extra hour this weekend – perfect for trying it out using our new compact syntax:
INSTALL AND LOAD timestral FROM community;
– Timestral community extension: duckdb.org/community_extensi…
– DuckDB 2.0 clients: duckdb.org/clients
DuckDB 2.0 was released yesterday with a large set of core extensions. But one of the things that make DuckDB stand out is its extensive Community Extensions ecosystem.
Many of our amazing contributors have already migrated their extensions, while others are in the process of doing so. To help users monitor this transition, Community Extensions now have a compatibility matrix that shows the availability of an extension for a given platform and DuckDB version combination.
See for example the DuckPGQ extension's matrix at duckdb.org/community_extensi….
🦆 Announcing DuckDB 2.0.0 LTS “Cinnamon Teal”
We are proud to release DuckDB 2.0.0, named after the cinnamon teal (Spatula cyanoptera), a striking reddish-brown duck found in the western Americas. 🌎
DuckDB 2.0.0 is the biggest DuckDB feature release so far. It ships a polished version of the Quack protocol, which turns DuckDB into a full-fledged server. It improves performance and lowers costs through supporting asynchronous I/O, a first-class VARIANT type, and a dedicated “agent mode”. It also empowers extension developers with a new SQL parser that allows adding new statements, clauses, and keywords, a new API to build on, and a new mechanism to distribute extensions more easily.
In our announcement blog post, we summarize the highlights and then walk through the key changes and give guidance on how to migrate to 2.0. For the complete release notes, see the release page on GitHub.
duckdb.org/2026/10/21/announ…
#DuckDB
From JSON Strings to Typed Columns 🧵 🏛️
DuckDB’s `read_json` turns JSON files into tables. It reads through part of the data to work out a schema, then gives you typed columns.
However, a lot of JSON does not come as files. It comes as a text column: event payloads in a Postgres table, API responses stored by an ingestion job, a `metadata` column in a CSV export.
In this blog post, we infer a schema from such a column, adjust it, and turn the column into typed columns, without first writing the data to a file. The best part: we get the result directly in SQL.
Read more: duckdb.org/2026/10/16/json-t…
#DuckDB #JSON
DuckDB retweeted
DuckDB is the Swiss Army knife of databases.
What’s Inside an Iceberg Table? 🧊 📦
An Apache Iceberg table looks like a regular table when you query it, but beneath the surface…well, it’s like an iceberg. 😅
Underneath, you’ll find a small tree of files: one JSON file at the top, a few layers of Avro files in the middle, and Parquet files at the bottom. When something is slow or looks wrong, it helps to know what’s in that tree.
DuckDB can read all three formats, so you can inspect every layer with plain SQL. In this post, we create a small Iceberg table, change it a few times, and then walk through the files from the top down: duckdb.org/2026/10/13/inside…
#ApacheIceberg #DuckDB
What’s Inside an Iceberg Table? 🧊 📦
An Apache Iceberg table looks like a regular table when you query it, but beneath the surface…well, it’s like an iceberg. 😅
Underneath, you’ll find a small tree of files: one JSON file at the top, a few layers of Avro files in the middle, and Parquet files at the bottom. When something is slow or looks wrong, it helps to know what’s in that tree.
DuckDB can read all three formats, so you can inspect every layer with plain SQL. In this post, we create a small Iceberg table, change it a few times, and then walk through the files from the top down: duckdb.org/2026/10/13/inside…
#ApacheIceberg #DuckDB
DuckDB retweeted
We are proud to sponsor @cidrdb, the Conference on Innovative Data Systems Research, for the next 5 years. And every other year, CIDR is hosted in our hometown of Amsterdam, so we hope to see you around!
cidrdb.org/cidr2027/org.html
Using DuckDB to effortlessly modernize your legacy 🦆🧓🏽
In this talk from DuckCon, Nicolas Renkamp from Merck shares how the team used SQLFrame to migrate #PySpark to #DuckDB without any code changes
Watch the full presentation here: youtube.com/watch?v=F91vrV6u…
Or browse the slides: blobs.duckdb.org/events/duck…
DuckDB retweeted
This article from the DuckDB Team intrigued me. A DuckDB database does not need to hold any data, but instead view definitions pointing to Parquet data.
So it acts as a catalog for views that are run on object storage data and returned locally. No need to ever store data in the db itself.
duckdb.org/2026/10/07/view-o…
Agent Mode in the DuckDB CLI 🤖 🦆
The #DuckDB v2.0 CLI has an agent mode that gets AI coding agents to a correct result faster and with fewer tokens.
When the CLI detects an agent, it prints compact Markdown tables instead of padded boxes, says clearly when a result was cut, stops runaway queries early, and reports errors as JSON. Long queries announce their expected cost before they start, so the agent can decide whether to wait.
Learn more in today’s blog post: duckdb.org/2026/10/09/agent-…
DuckDB retweeted
DuckDB is an inflection point in history of databases .
A DuckDB Database with No Data in It 🦆 🫨
A DuckDB database file does not have to contain any data. It can store nothing but view definitions that point at files stored somewhere else, such as Parquet on object storage.
The file stays a few hundred kilobytes no matter how large the data it describes, and anyone who attaches it sees a set of named relations that are ready to query.
@NikolasGoebel described this idea in his post “DuckDB doesn't need data,” which argues that modern databases have separated where data is stored from how it is read, to the point that most databases no longer need to hold any data of their own.
From that perspective, #DuckDB becomes a browser for the data cloud, where you access a dataset through a URL rather than a copy on your own disk.
In this blog post, we turn that idea into a small, shareable catalog: duckdb.org/2026/10/07/view-o…
A DuckDB Database with No Data in It 🦆 🫨
A DuckDB database file does not have to contain any data. It can store nothing but view definitions that point at files stored somewhere else, such as Parquet on object storage.
The file stays a few hundred kilobytes no matter how large the data it describes, and anyone who attaches it sees a set of named relations that are ready to query.
@NikolasGoebel described this idea in his post “DuckDB doesn't need data,” which argues that modern databases have separated where data is stored from how it is read, to the point that most databases no longer need to hold any data of their own.
From that perspective, #DuckDB becomes a browser for the data cloud, where you access a dataset through a URL rather than a copy on your own disk.
In this blog post, we turn that idea into a small, shareable catalog: duckdb.org/2026/10/07/view-o…
[Guest blog:] 🍃🦆☕
At the company where I work, we store vulnerability data for our clients as a collection of documents in MongoDB. Initially, our analytics screen performed well, but as our data volume increased, response times began to slow.
We needed to find an alternative.
So we moved a year of data into #DuckDB on the same server. Getting the data in was the hard part.
This is the story of every method we tried, and why a table function written in pure Java is the one we shipped: duckdb.org/2026/10/05/import…
Analytical workloads are full of repeated strings 🧵: product names, country names, station names, user agents, category labels, duck species, and more.
Grouping on repeated strings is expensive. By moving them into a small dimension table with sorted, narrow integer keys, #DuckDB can aggregate on fixed-width integers and keep its hash tables compact. The strings come back in a final JOIN against a result that is already small.
This approach helps most when you repeatedly aggregate on long strings that have few distinct values.
Here’s how to achieve faster string aggregations with dimension tables: duckdb.org/2026/10/02/dimens…
DuckDB as an analytical runtime 📊 🦆
What if a DuckDB file could contain an entire analytics workspace?
In this talk from DuckCon, Ilya Boyandin from Foursquare / GeoVisually GmbH presents on building local-first analytics apps with SQLRooms and DuckDB.
Learn how to build DuckDB-native analytical apps that are lightweight, portable, local-first, inspectable, and reproducible. 🪺
Watch the full DuckCon presentation: youtube.com/watch?v=fV1LXnPl…
Or lurk through the slides here: blobs.duckdb.org/events/duck…




















