---
title: "DuckDB Ecosystem: May 2025"
canonical: "https://motherduck.com/blog/duckdb-ecosystem-newsletter-may-2025/"
related:
  - title: "DuckDB Ecosystem Newsletter : July 2026"
    url: "https://motherduck.com/blog/duckdb-ecosystem-newsletter-july-2026/"
  - title: "What's New in DuckDB 1.5! | MotherDuck"
    url: "https://motherduck.com/videos/whats-new-duckdb-15/"
  - title: "DuckDB breaks the lakehouse? ft. Daniel Beach | EXPLAIN ANALYZE | MotherDuck"
    url: "https://motherduck.com/explain-analyze/0003-duckdb-breaks-the-lakehouse/"
---

# DuckDB Ecosystem: May 2025

## Hey, friend 👋

<p>I hope you're doing well. I'm&nbsp;<a href="https://www.ssp.sh/"><span>Simon</span></a>, and I am excited to share another monthly newsletter with highlights and the latest updates about DuckDB, delivered straight to your inbox.</p>
<p>In this May issue, I gathered 10 links highlighting updates and news from DuckDB's ecosystem. This time, we have exciting innovations like SQL-based 3D graphics, Reddit discussions around DuckDB, geospatial capabilities, Metabase integration, and performance optimizations for working with JSON and Parquet files. Check out this edition below.</p>
<p>&nbsp;</p>
<p><!-- notionvc: 85a2a616-c84e-4cbe-8896-690d9276a14f --></p>

<style type="text/css">
.newsheading {
  border: 0px;
}

.newsheading img {
  border: 0px;
  vertical-align: middle;
  margin-bottom: 16px;
}

.row {
  display: flex;
  flex-direction:column;   
  margin-bottom: 10px;
}

.rowreverse {
  flex-direction:column-reverse;
}

@media screen and (min-width: 600px) {
  .row {
    flex-direction: row;
  }
.columnTextLeft h3 {
  margin-left: 0px !important;
  margin-right: 20px !important;
}

.columnTextRight h3 {
  margin-left: 20px !important;
}

.columnTextLeft p {
  margin-left: 0px !important;
  margin-right: 20px !important;
}

.columnTextRight p {
  margin-left: 20px !important;
}  
}

.columnPic {
  flex: 30%;
}


.columnText {
  flex: 70%;
}

.columnText h3 {
  margin-top: 0px !important;
}


</style>

<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/featured_member_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Featured Community Member</h2></td>
  </tr>
</table>

<div class="row">
  <div class="columnPic"><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/1625133792218.jpeg"></img></div>
  <div class="columnText columnTextRight">
    <h3>Robin Moffatt</h3>
    <p><p><a href="https://www.linkedin.com/in/robinmoffatt/" rel="noopener">Robin</a> is a technologist whose career spans from COBOL to Kafka!</p>
<p>Beyond the code, he’s a skilled communicator and prolific tech content creator, blogging since 2009. Recently, Robin has published several insightful posts exploring DuckDB, including:</p>
<p><a href="https://rmoff.net/2025/03/20/building-a-data-pipeline-with-duckdb/" rel="noopener">- Building a data pipeline with DuckDB</a></p>
<p><a href="https://rmoff.net/2025/02/28/exploring-uk-environment-agency-data-in-duckdb-and-rill/">- Exploring UK Environment Agency data in DuckDB and Rill</a></p>
<p>You can find more of Robin’s writing at <a href="https://rmoff.net/">rmoff.net</a>.</p></p>
  </div>
</div>

<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/top_links_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Top DuckDB Links this Month</h2></td>
  </tr>
</table>



### [Metabase DuckDB Driver shipped as 3rd party plugin](https://github.com/motherduckdb/metabase_duckdb_driver)

<p><strong>TL;DR:</strong> The <span style="color: #188038;">metabase_duckdb_driver</span> plugin enables Metabase (BI tool) to use DuckDB as a data source, allowing direct SQL queries on Parquet files and in-memory databases.</p>
<p>The open-source <span style="color: #188038;">metabase_duckdb_driver</span> plugin allows Metabase to connect to DuckDB databases, supporting both file-based and in-memory (<span style="color: #188038;">:memory:</span>) modes.&nbsp; A key feature is the ability to directly query Parquet files without loading data into a database. For example, a query can be executed directly from the Metabase SQL editor. The driver also supports using DuckDB in-memory, which can help process data without persisting.</p>


### [Normalizing Repeated JSON Fields in FDA Drug Data Using DuckDB](https://justni.com/2025/04/02/normalizing-repeated-json-fields-from-fda-drug-data-using-duckdb/)

<p><strong>TL;DR:</strong> Normalizing nested JSON fields in the FDA drug event dataset using DuckDB. A practical showcase of increasing significant performance can be achieved by creating lookup tables for repeated values.</p>
<p>Chris encountered performance bottlenecks due to high cardinality nested fields within the FDA's raw JSON data. To address this, he created tables that normalized nested JSON with unique values and IDs, reducing the original query from several minutes to just 0.166 seconds. A practical takeaway: This is a good example of how normalizing high-cardinality JSON fields in DuckDB can substantially improve query performance with indexing and scanning less data, especially when dealing with large, semi-structured datasets.</p>
<p><!-- notionvc: ddeef9a5-cf17-4a08-b92e-ac86ea7a86dd --></p>


### [FlockMTL: Beyond Quacking: Deep Integration of Language Models and RAG into DuckDB](https://arxiv.org/pdf/2504.01157)

<p><strong>TL;DR:</strong> Researchers have developed FlockMTL, an open-source DuckDB extension that deeply integrates language models and retrieval-augmented generation capabilities directly into SQL workflows.</p>
<p>FlockMTL introduces model-driven scalar and aggregate functions that enable SQL queries to perform semantic operations like classification, summarization, and re-ranking using LLMs. The extension introduces two new first-class schema objects — MODEL and PROMPT — alongside traditional TABLE objects, allowing resource independence when updating models or prompts without changing application logic. Find the <a href="https://github.com/dsg-polymtl/flockmtl">GitHub repo</a> and <a href="https://duckdb.org/community_extensions/extensions/flockmtl.html">DuckDB extension</a> in these links.</p>


### [Abusing DuckDB-WASM by making SQL draw 3D graphics (Sort Of)](https://www.hey.earth/posts/duckdb-doom)

<p><strong>TL;DR:</strong> Text-based Doom clone running entirely in DuckDB-WASM, implementing raycasting and game physics through SQL queries at 6-7 FPS in the browser.</p>
<p>Patrick's project uses DuckDB-WASM to manage game state, collision detection, and 3D rendering through SQL queries. The wild part and innovation lie in the <span style="color: #188038;">render_3d_frame</span> SQL VIEW, which employs recursive CTEs for raycasting and perspective correction and uses JavaScript for orchestration and Z-buffer sprite handling. <strong>A practical takeaway:</strong> This demonstrates DuckDB-WASM's potential for unconventional applications beyond traditional data analytics. Find source code on <a href="https://github.com/patricktrainer/duckdb-doom"><span>GitHub</span></a>.</p>
<p><!-- notionvc: 5f4f2df2-c493-4498-ba37-d228e2d9740c --></p>


### [DuckDB is Probably the Most Important Geospatial Software of the Last Decade](https://www.dbreunig.com/2025/05/03/duckdb-is-the-most-impactful-geospatial-software-in-a-decade.html)

<p><strong>TL;DR:</strong> DuckDB's spatial extension significantly lowers the barrier to entry for geospatial data analysis within SQL.</p>
<p>The Geospatial extension statically bundles standard FOSS GIS packages, including the PROJ database, and offers them across multiple platforms, including WASM, eliminating transitive dependencies (except <span style="color: #188038;">libc</span>). This allows users to convert between geospatial formats using GDAL and perform transformations via SQL. 📝: Spatial join optimization was recently merged on the dev branch.</p>


### [Instant SQL is here: Speedrun ad-hoc queries as you type](https://motherduck.com/blog/introducing-instant-sql/)

<p><strong>TL;DR:</strong> MotherDuck introduces Instant SQL, a feature for real-time query result previews as you type, leveraging DuckDB's architecture and query rewriting capabilities.</p>
<p>Instant SQL, available in MotherDuck and the <a href="https://duckdb.org/docs/stable/extensions/ui.html"><span>DuckDB Local UI</span></a>, speeds up query building and debugging by providing result set previews that update instantly as the SQL is typed. A key feature includes CTE inspection capabilities as a time-saver for debugging complex SQL queries. A central component uses DuckDB's JSON extension to obtain an abstract syntax tree (AST) from SELECT statements via a SQL scalar function, enabling parser-powered features.</p>
<p>An alternative connection method uses the Amazon SageMaker Lakehouse (AWS Glue Data Catalog) Iceberg REST Catalog endpoint: <code>ATTACH 'account_id:s3tablescatalog/namespace_name' AS (TYPE iceberg, ENDPOINT_TYPE glue);.</code> The extension also supports Iceberg's schema evolution, allowing users to follow changes in the table's schema.</p>


### [Some serious questions regarding DuckDB on Reddit: r/dataengineering](https://sh.reddit.com/r/dataengineering/comments/1kaq8cq/i_have_some_serious_question_regarding_duckdb)

<p><strong>TL;DR:</strong> Insights from the data engineering community on a Reddit discussion around DuckDB.</p>
<p>The discussion reveals that DuckDB is <strong>used in production</strong> for tasks like ingesting various file formats, online interactive spatial queries using spatial extension, applying custom logic to arrays with lambdas, and performing repeated joins on smaller datasets. It's also favored for local analysis and for handling poorly formatted CSV files. Some users integrate DuckDB with Ray for distributed chunk processing. This discussion showcases DuckDB's versatility (as <a href="https://motherduck.com/blog/duckdb-enterprise-5-key-categories/"><span>discussed</span></a> in an earlier article).</p>
<p><!-- notionvc: 3c44cb56-0f8c-4bad-9adb-6a62db142965 --></p>
<p><!-- notionvc: 2876798e-5b8d-4be0-8a13-4eb35c9a9cbb --></p>


### [Merge Parquet with DuckDB](https://emilsadek.com/blog/merge-parquet-duckdb/)

<p><strong>TL;DR:</strong> Use DuckDB to efficiently merge multiple Parquet files into one file, optionally performing data transformations during the process.</p>
<p>The article demonstrates how DuckDB can consolidate multiple Parquet files into one. The process involves using DuckDB's SQL interface to read Parquet files via a glob pattern. The <span style="color: #188038;">read_parquet</span> function offers parameters like <span style="color: #188038;">filename = true</span> to add a column indicating the source file for each row and <span style="color: #188038;">union_by_name</span> to handle differing schemas across files. Showcases show data transformations with hashing with <span style="color: #188038;">md5</span>,&nbsp; column renaming, and the <span style="color: #188038;">COPY</span> statement to write the transformed data into a single Parquet file.</p>
<p><!-- notionvc: 9c8a728a-d236-408d-bb72-c989812cc3a7 --></p>
<p><!-- notionvc: 2ddd1c59-8374-4010-9c8c-c3e69d8fe116 --></p>


### [DuckDB's CSV Reader and the Pollock Robustness Benchmark: Into the CSV Abyss](https://duckdb.org/2025/04/16/duckdb-csv-pollock-benchmark.html)

<p><strong>TL;DR:</strong> DuckDB's CSV reader achieves top ranking in the <a href="https://www.vldb.org/pvldb/vol16/p1870-vitagliano.pdf"><span>Pollock Benchmark</span></a> due to its robustness in handling non-standard CSV files.</p>
<p>DuckDB's CSV parser prioritizes reliability alongside speed and ease of use. The parser's flexibility is demonstrated through options like <span style="color: #188038;">strict_mode = false</span>, which allows parsing CSVs with unescaped quotes or inconsistent column counts, and <span style="color: #188038;">null_padding = true</span>, which handles missing values.&nbsp; Setting these options will enable DuckDB to correctly read 99.61% of data from the Pollock Benchmark files. The blog post details how to use DuckDB's CSV reader to handle common CSV errors and achieve a valid result from faulty CSV files.</p>
<p><!-- notionvc: 236c3406-585e-4ccb-b63f-9dc12bef245a --></p>


### [My browser WASM’t prepared for this. Using DuckDB, Apache Arrow and Web Workers in real life](https://motifanalytics.medium.com/my-browser-wasmt-prepared-for-this-using-duckdb-apache-arrow-and-web-workers-in-real-life-e3dd4695623d)

<p><strong>TL;DR:</strong> Motif Analytics explores using DuckDB WASM, Apache Arrow, and Web Workers for in-browser analytics, highlighting performance trade-offs and schema consistency challenges.</p>
<p>Przemyslaw details the implementation of an in-browser analytics tool leveraging DuckDB WASM for SQL queries, Apache Arrow for data interchange between Web Workers, and Web Workers for parallel processing and highlighting real-world challenges in maintaining schema consistency when using multiple Arrow tables from different workers. It addresses limitations like the 4GB memory limit in Chrome for WASM and potential bugs in the WASM. Takeaway: Despite all of this, DuckDB WASM is currently one of the fastest (if not the fastest) engines for querying fully in-browser.</p>



<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/upcoming_events_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Upcoming Events</h2></td>
  </tr>
</table>



### [Getting Started with MotherDuck](https://lu.ma/9xfs8lng)

**Thu, May 08 09:30 PST - Online**

<p>​​​Looking to get started with MotherDuck and DuckDB? Join us for a live session to learn how MotherDuck makes analytics fun, frictionless, and ducking awesome!</p>


### [Stay in Flow with MotherDuck's Instant SQL](https://lu.ma/7lklecbm)

**May 14 09:30 PST - Online**

<div>&nbsp;See how MotherDuck's Instant SQL breaks through traditional development barriers by providing real-time results as you type.</div>


### [ODSC East: Making Big Data Feel Small with DuckDB](https://odsc.com/boston/schedule/)

**May 15 - In-person [US - San Francisco]**

Ryan Boyd, co-founder at MotherDuck, will speak at ODSC East. Learn how well an “embedded database” scales! DuckDB is being used in production to process terabytes and petabytes of data.

