{"slug": "duckdb", "name": "DuckDB", "category": "databases", "category_name": "Databases", "description": "In-process analytical SQL database engine for querying local and remote data files.", "recommenders": 60, "commenters": 85, "warners": 0, "score": 61.444, "rising": 18.2, "first": "2025-11-13", "latest": "2026-10-22", "why": "HN commenters like it as a fast, embedded SQL engine for querying CSV, JSON, Parquet and Excel files directly and as a replacement for pandas in data work.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 65, "neutral": 21, "compare": 7, "warn": 0}, "spark": [3, 1, 8, 1, 5, 5, 2, 6, 5, 18, 3, 8], "listed": true, "loved": ["Speed", "Querying files directly"], "caveat": "Not OLTP/multi-user", "short_quote": "I use duckdb HEAVILY at work and it's been a game changer.", "icon": true, "domain": "duckdb.org", "github_repo": null, "official_url": "https://duckdb.org", "pricing": "open source", "aliases": ["DuckDB"], "verdict": [{"text": "HN commenters like it as a fast, embedded SQL engine", "cites": [{"id": 801461440, "item_id": 50091340, "url": "https://news.ycombinator.com/item?id=50091340", "by": "pak9rabid", "date": "2026-10-14", "stance": "recommend", "quote": "DuckDB is amazing.", "excerpt": "DuckDB is amazing. I swapped out some data analytics processing that was originally implemented with Python & Postgres to DuckDB and have been immensely pleased with the outcome. Stuff that would take 6+ hours to do with Python/Postgres now takes me around half an hour to complete. It's a great addition to an existing Postgres database as it has very tight integration with it's native Postgres extension, which allows", "context": "", "use_case": "data analytics processing", "switched_from": "Python & Postgres", "story": "Same Job, Two Engines: InnoDB and Iceberg Internals"}, {"id": 757605904, "item_id": 47350369, "url": "https://news.ycombinator.com/item?id=47350369", "by": "__mharrison__", "date": "2026-03-12", "stance": "recommend", "quote": "duckDB is awesome", "excerpt": "When I teach, I use \"big data\" for data that won't fit in a single machine. \"Small data\" fits on a single machine in memory and medium data on disk. Having said that duckDB is awesome. I recently ported a 20 year old Python app to modern Python. I made the backend swappable, polars or duckdb. Got a 40-80x speed improvement. Took 2 days.", "context": "teaches data courses", "use_case": "data processing backend", "switched_from": "", "story": "Big Data on the Cheapest MacBook"}, {"id": 757104704, "item_id": 47319044, "url": "https://news.ycombinator.com/item?id=47319044", "by": "antonio-mello", "date": "2026-03-09", "stance": "recommend", "quote": "DuckDB just works for single-node use cases without any infrastructure overhead.", "excerpt": "The \"early React\" analogy resonates. I've been seeing the same pattern with MCP (Model Context Protocol) \u2014 the primitive is powerful (AI assistants calling tools via a standard protocol), but most implementations are still gluing things together ad-hoc. There's a gap between \"I can build an MCP server\" and \"this is a polished, opinionated product.\" The DuckDB choice is smart for local-first. I use ClickHouse for prod", "context": "", "use_case": "local-first analytics", "switched_from": "", "story": "Show HN: DenchClaw \u2013 Local CRM on Top of OpenClaw"}]}, {"text": " for querying CSV, JSON, Parquet and Excel files directly", "cites": [{"id": 803103088, "item_id": 50193943, "url": "https://news.ycombinator.com/item?id=50193943", "by": "Nihilartikel", "date": "2026-10-22", "stance": "recommend", "quote": "It's a really good daily multitool for data.", "excerpt": "It's a really good daily multitool for data. E.g. I often have to do work on multiple csv and excel files, joins and filters etc. I hate excel but am fine with SQL. With a duckdb session in dbeaver, I can literally select, project, and join the files on disk as if they were tables. It saves so much time and fuss For bigger integrations I use it as a trino alternative. If I have to combine multiple data sources I'll w", "context": "", "use_case": "querying CSV/Excel files, joins", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 761703747, "item_id": 47606484, "url": "https://news.ycombinator.com/item?id=47606484", "by": "Zizizizz", "date": "2026-04-01", "stance": "recommend", "quote": "performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other.", "excerpt": "https://github.com/atuinsh/atuin for fuzzy shell history (ctrl+r) https://github.com/sharkdp/bat (nice coloured cat replacement) https://github.com/abiosoft/colima (so I don't need docker desktop) https://github.com/duckdb/duckdb (performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other. https://github.com/eradman/entr (rerun commands automatically when p", "context": "", "use_case": "query and convert data files", "switched_from": "", "story": "Ask HN: What dev tools do you rely on that nobody talks about?"}, {"id": 767481328, "item_id": 47967583, "url": "https://news.ycombinator.com/item?id=47967583", "by": "bambax", "date": "2026-04-30", "stance": "recommend", "quote": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far.", "excerpt": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far. Some parts are magical (described in the previous article by the same author: https://peterdohertys.website/blog-posts/dab-of-duck.html) You can point DuckDB to almost any data source and boom, you get an SQL table that you can search, sum, or join to any other data. Or you can attach existing databases from completely independent db systems, and", "context": "", "use_case": "querying and joining diverse data sources", "switched_from": "SQLite", "story": "Full-Text Search with DuckDB"}]}, {"text": " and as a replacement for pandas in data work.", "cites": [{"id": 789382896, "item_id": 49336431, "url": "https://news.ycombinator.com/item?id=49336431", "by": "staticautomatic", "date": "2026-08-17", "stance": "recommend", "quote": "Lots of places where we replaced Pandas with DuckDB for transformations.", "excerpt": "Similar here. Lots of places where we replaced Pandas with DuckDB for transformations. Also have scriptable custom dashboards running on top of BigQuery data pre-aggregated and extracted to parquet on GCS. It's way faster and the only limiting factor is your viz library. It was pretty easy to build and the only big gotcha I encountered was finding, somewhat counter-intuitively, that it's often best minimize partition", "context": "", "use_case": "data transformations and dashboards", "switched_from": "pandas", "story": "A Preview of DuckDB v2.0"}, {"id": 794693953, "item_id": 49668372, "url": "https://news.ycombinator.com/item?id=49668372", "by": "Vaslo", "date": "2026-09-12", "stance": "recommend", "quote": "I use polars or duckdb now exclusively.  Better syntax, better performance.", "excerpt": "I use polars or duckdb now exclusively. Better syntax, better performance. But pandas is deeply entrenched - I try to get my team off it but it\u2019s an uphill battle. It\u2019s not going anywhere anytime soon.", "context": "leads a team", "use_case": "data analysis", "switched_from": "pandas", "story": "Pandas Should Go Extinct"}, {"id": 799671280, "item_id": 49979455, "url": "https://news.ycombinator.com/item?id=49979455", "by": "mrtimo", "date": "2026-10-06", "stance": "recommend", "quote": "With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas.", "excerpt": "I can use pandas to clean a dataset, but each cleaning task is usually one line of code. OTOH, With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas. You may reply, SQL isn't as easy to understand! Fair point, it's a declarative language... which is why I use Malloy. Malloy is to TypeScript as Javascript is to SQL. Malloy is much easier to read and write (just as TypeScript is) because it has a ", "context": "", "use_case": "data cleaning and analysis", "switched_from": "", "story": "Polars 2.0"}]}, {"text": " The most common caveat is that it is a single-node analytical engine, not a multi-user transactional database,", "cites": [{"id": 785579536, "item_id": 49098721, "url": "https://news.ycombinator.com/item?id=49098721", "by": "biophysboy", "date": "2026-07-29", "stance": "recommend", "quote": "I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "excerpt": "As many others have said here, you should just think about transactional vs analytical as well as single user in-process vs multi-user client-server when making choices. That said, I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "context": "", "use_case": "analytics on large tables", "switched_from": "", "story": "Choose DuckDB rather than SQLite"}, {"id": 785572897, "item_id": 49098306, "url": "https://news.ycombinator.com/item?id=49098306", "by": "coldbrewed", "date": "2026-07-29", "stance": "recommend", "quote": "Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database.", "excerpt": "SQLite is _the_ tool of choice for local SQL databases with minimal overhead. If you needed a single file DB for an OLAP workload, SQLite was still the best option even if the technology wasn't an ideal fit. Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database. I ran into this myself; I tried using SQLite to store the results of whole-internet rDN", "context": "", "use_case": "OLAP workloads", "switched_from": "SQLite", "story": "Choose DuckDB rather than SQLite"}, {"id": 757104704, "item_id": 47319044, "url": "https://news.ycombinator.com/item?id=47319044", "by": "antonio-mello", "date": "2026-03-09", "stance": "recommend", "quote": "DuckDB just works for single-node use cases without any infrastructure overhead.", "excerpt": "The \"early React\" analogy resonates. I've been seeing the same pattern with MCP (Model Context Protocol) \u2014 the primitive is powerful (AI assistants calling tools via a standard protocol), but most implementations are still gluing things together ad-hoc. There's a gap between \"I can build an MCP server\" and \"this is a polished, opinionated product.\" The DuckDB choice is smart for local-first. I use ClickHouse for prod", "context": "", "use_case": "local-first analytics", "switched_from": "", "story": "Show HN: DenchClaw \u2013 Local CRM on Top of OpenClaw"}]}, {"text": " and concurrent access has needed workarounds.", "cites": [{"id": 770428496, "item_id": 48151781, "url": "https://news.ycombinator.com/item?id=48151781", "by": "bfeynman", "date": "2026-05-15", "stance": "recommend", "quote": "with duckdb is so cheap was simpler than really implementing concurrent writes and mutations", "excerpt": "Very hyped for this and updates. Have been using my own workarounds for a while with own WAL things and then sort of generating snapshots which with duckdb is so cheap was simpler than really implementing concurrent writes and mutations but this will make it so much easier.", "context": "", "use_case": "analytics database with snapshots", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}, {"id": 769870752, "item_id": 48116922, "url": "https://news.ycombinator.com/item?id=48116922", "by": "steve_adams_86", "date": "2026-05-12", "stance": "recommend", "quote": "duckdb is my favourite technology of 2025/26. It has worked its way into so many of my workflows.", "excerpt": "I was just wishing something like this existed last week. What timing. I'm piping sensor readings into duckdb with a deno server, and couldn't use duckdb -ui to look over the data without shutting down the server. I had no interest in using the server to allow me to look at the contents of the db, so I was just going to live with it for now. This perfectly solves that, along with several other similar kinds of proble", "context": "", "use_case": "sensor data, analytics, data pipelines", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}]}], "praise": [{"label": "Speed", "summary": "Commenters report large speedups over previous setups, from 6+ hours down to about half an hour and 40-80x faster.", "quotes": [{"id": 801461440, "item_id": 50091340, "url": "https://news.ycombinator.com/item?id=50091340", "by": "pak9rabid", "date": "2026-10-14", "stance": "recommend", "quote": "DuckDB is amazing.", "excerpt": "DuckDB is amazing. I swapped out some data analytics processing that was originally implemented with Python & Postgres to DuckDB and have been immensely pleased with the outcome. Stuff that would take 6+ hours to do with Python/Postgres now takes me around half an hour to complete. It's a great addition to an existing Postgres database as it has very tight integration with it's native Postgres extension, which allows", "context": "", "use_case": "data analytics processing", "switched_from": "Python & Postgres", "story": "Same Job, Two Engines: InnoDB and Iceberg Internals"}, {"id": 757605904, "item_id": 47350369, "url": "https://news.ycombinator.com/item?id=47350369", "by": "__mharrison__", "date": "2026-03-12", "stance": "recommend", "quote": "duckDB is awesome", "excerpt": "When I teach, I use \"big data\" for data that won't fit in a single machine. \"Small data\" fits on a single machine in memory and medium data on disk. Having said that duckDB is awesome. I recently ported a 20 year old Python app to modern Python. I made the backend swappable, polars or duckdb. Got a 40-80x speed improvement. Took 2 days.", "context": "teaches data courses", "use_case": "data processing backend", "switched_from": "", "story": "Big Data on the Cheapest MacBook"}, {"id": 739948704, "item_id": 46246794, "url": "https://news.ycombinator.com/item?id=46246794", "by": "srameshc", "date": "2025-12-12", "stance": "recommend", "quote": "But I am loving DuckDB for similar analytical workloads as it is built for such tasks.", "excerpt": "I love SQLite and this is in no way I'm making a point devaluing SQLite, Author's method is excellent approach to get analytical speed out of SQLite. But I am loving DuckDB for similar analytical workloads as it is built for such tasks. DuckDB also reads from single file, like SQLite and DuckDB process large data sets at extreme speeds. I work on my macbook m2 and I have been dealing with about 20 million records and", "context": "works on a MacBook M2 with ~20M records", "use_case": "analytics on ~20M records", "switched_from": "", "story": "SQLite JSON at full index speed using generated columns"}]}, {"label": "Querying files directly", "summary": "It runs SQL directly over CSV, JSON, Parquet, Excel and compressed files, and can join them as if they were tables.", "quotes": [{"id": 803103088, "item_id": 50193943, "url": "https://news.ycombinator.com/item?id=50193943", "by": "Nihilartikel", "date": "2026-10-22", "stance": "recommend", "quote": "It's a really good daily multitool for data.", "excerpt": "It's a really good daily multitool for data. E.g. I often have to do work on multiple csv and excel files, joins and filters etc. I hate excel but am fine with SQL. With a duckdb session in dbeaver, I can literally select, project, and join the files on disk as if they were tables. It saves so much time and fuss For bigger integrations I use it as a trino alternative. If I have to combine multiple data sources I'll w", "context": "", "use_case": "querying CSV/Excel files, joins", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 761703747, "item_id": 47606484, "url": "https://news.ycombinator.com/item?id=47606484", "by": "Zizizizz", "date": "2026-04-01", "stance": "recommend", "quote": "performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other.", "excerpt": "https://github.com/atuinsh/atuin for fuzzy shell history (ctrl+r) https://github.com/sharkdp/bat (nice coloured cat replacement) https://github.com/abiosoft/colima (so I don't need docker desktop) https://github.com/duckdb/duckdb (performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other. https://github.com/eradman/entr (rerun commands automatically when p", "context": "", "use_case": "query and convert data files", "switched_from": "", "story": "Ask HN: What dev tools do you rely on that nobody talks about?"}, {"id": 767481328, "item_id": 47967583, "url": "https://news.ycombinator.com/item?id=47967583", "by": "bambax", "date": "2026-04-30", "stance": "recommend", "quote": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far.", "excerpt": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far. Some parts are magical (described in the previous article by the same author: https://peterdohertys.website/blog-posts/dab-of-duck.html) You can point DuckDB to almost any data source and boom, you get an SQL table that you can search, sum, or join to any other data. Or you can attach existing databases from completely independent db systems, and", "context": "", "use_case": "querying and joining diverse data sources", "switched_from": "SQLite", "story": "Full-Text Search with DuckDB"}]}, {"label": "Pandas replacement", "summary": "Many have replaced pandas with it for transformations and say the SQL is more concise and less error-prone.", "quotes": [{"id": 789382896, "item_id": 49336431, "url": "https://news.ycombinator.com/item?id=49336431", "by": "staticautomatic", "date": "2026-08-17", "stance": "recommend", "quote": "Lots of places where we replaced Pandas with DuckDB for transformations.", "excerpt": "Similar here. Lots of places where we replaced Pandas with DuckDB for transformations. Also have scriptable custom dashboards running on top of BigQuery data pre-aggregated and extracted to parquet on GCS. It's way faster and the only limiting factor is your viz library. It was pretty easy to build and the only big gotcha I encountered was finding, somewhat counter-intuitively, that it's often best minimize partition", "context": "", "use_case": "data transformations and dashboards", "switched_from": "pandas", "story": "A Preview of DuckDB v2.0"}, {"id": 799671280, "item_id": 49979455, "url": "https://news.ycombinator.com/item?id=49979455", "by": "mrtimo", "date": "2026-10-06", "stance": "recommend", "quote": "With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas.", "excerpt": "I can use pandas to clean a dataset, but each cleaning task is usually one line of code. OTOH, With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas. You may reply, SQL isn't as easy to understand! Fair point, it's a declarative language... which is why I use Malloy. Malloy is to TypeScript as Javascript is to SQL. Malloy is much easier to read and write (just as TypeScript is) because it has a ", "context": "", "use_case": "data cleaning and analysis", "switched_from": "", "story": "Polars 2.0"}, {"id": 794697217, "item_id": 49668576, "url": "https://news.ycombinator.com/item?id=49668576", "by": "appplication", "date": "2026-09-12", "stance": "recommend", "quote": "polars and duckdb are objectively better APIs in addition to their implementation improvements", "excerpt": "Not to mention less footguns. I used to spend my days unwinding bad habits DS pick up from years of panda abuse. Credit to pandas for popularizing dataframes in Python, but polars and duckdb are objectively better APIs in addition to their implementation improvements. Agree that it\u2019s time we let it go.", "context": "", "use_case": "data analysis", "switched_from": "pandas", "story": "Pandas Should Go Extinct"}]}, {"label": "Ecosystem and extensions", "summary": "Commenters value its Postgres, spatial and dbt integrations and say community extensions are easy to build.", "quotes": [{"id": 801461440, "item_id": 50091340, "url": "https://news.ycombinator.com/item?id=50091340", "by": "pak9rabid", "date": "2026-10-14", "stance": "recommend", "quote": "DuckDB is amazing.", "excerpt": "DuckDB is amazing. I swapped out some data analytics processing that was originally implemented with Python & Postgres to DuckDB and have been immensely pleased with the outcome. Stuff that would take 6+ hours to do with Python/Postgres now takes me around half an hour to complete. It's a great addition to an existing Postgres database as it has very tight integration with it's native Postgres extension, which allows", "context": "", "use_case": "data analytics processing", "switched_from": "Python & Postgres", "story": "Same Job, Two Engines: InnoDB and Iceberg Internals"}, {"id": 789340064, "item_id": 49333754, "url": "https://news.ycombinator.com/item?id=49333754", "by": "otter-in-a-suit", "date": "2026-08-17", "stance": "recommend", "quote": "the mix of it being fast, having spatial support, sane coding interfaces, great dbt integration", "excerpt": "Super excited about Quack (partially due to the name). I use duckdb for both analytics and runtime, but I do have to serve/handle/manage a giant, multi-GiB duckdb file as effectively a runtime artifact[1]. I'm aware that this isn't the _perfect_ database for this, but the mix of it being fast, having spatial support, sane coding interfaces, great dbt integration, and me being able to do everything between \"run a gian", "context": "", "use_case": "analytics and runtime database", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 777520720, "item_id": 48595045, "url": "https://news.ycombinator.com/item?id=48595045", "by": "smithclay", "date": "2026-06-18", "stance": "recommend", "quote": "it's worth checking out in 2026", "excerpt": "If you're reading this and curious: consider writing a duckdb community extension* or contributing to an existing one* duckdb is becoming a kind of data superglue between a lot of data ecosystems (GIS, observability, analytics, lakehouses, object storage, etc) that don't talk to each other typically, and it's worth checking out in 2026. * https://github.com/duckdb/extension-template * https://duckdb.org/community_ext", "context": "", "use_case": "data glue across ecosystems", "switched_from": "", "story": "DuckDB Internals: Why Is DuckDB Fast? (Part 1)"}]}, {"label": "Scales to large data", "summary": "Users say it handles anything from a few rows to billion-row tables and terabytes of data without special setup.", "quotes": [{"id": 785579536, "item_id": 49098721, "url": "https://news.ycombinator.com/item?id=49098721", "by": "biophysboy", "date": "2026-07-29", "stance": "recommend", "quote": "I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "excerpt": "As many others have said here, you should just think about transactional vs analytical as well as single user in-process vs multi-user client-server when making choices. That said, I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "context": "", "use_case": "analytics on large tables", "switched_from": "", "story": "Choose DuckDB rather than SQLite"}, {"id": 746383616, "item_id": 46648976, "url": "https://news.ycombinator.com/item?id=46648976", "by": "lvl155", "date": "2026-01-16", "stance": "recommend", "quote": "I use DuckDB for nearly everything data related because it\u2019s simply the most scalable format/tool/lib from a handful of rows to billions.", "excerpt": "I use DuckDB for nearly everything data related because it\u2019s simply the most scalable format/tool/lib from a handful of rows to billions. It can handle it and I don\u2019t need to do anything special on top. I\u2019ve been a big proponent of doing everything in SQL for awhile now. It\u2019s the most recyclable AND least error prone way of working with data.", "context": "", "use_case": "data processing", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}, {"id": 777570512, "item_id": 48598157, "url": "https://news.ycombinator.com/item?id=48598157", "by": "axegon_", "date": "2026-06-19", "stance": "recommend", "quote": "I use duckdb HEAVILY at work and it's been a game changer.", "excerpt": "I use duckdb HEAVILY at work and it's been a game changer. I'm sifting through terabytes of data multiple times a day, mixing, matching, updating, filtering, DuckDB is second to none. For anyone that hasn't used it: you are missing out.", "context": "", "use_case": "analyzing terabytes of data", "switched_from": "", "story": "DuckDB Internals: Why Is DuckDB Fast? (Part 1)"}]}, {"label": "No infrastructure", "summary": "It is embedded and lightweight, so single-node work needs no server or operational overhead.", "quotes": [{"id": 757104704, "item_id": 47319044, "url": "https://news.ycombinator.com/item?id=47319044", "by": "antonio-mello", "date": "2026-03-09", "stance": "recommend", "quote": "DuckDB just works for single-node use cases without any infrastructure overhead.", "excerpt": "The \"early React\" analogy resonates. I've been seeing the same pattern with MCP (Model Context Protocol) \u2014 the primitive is powerful (AI assistants calling tools via a standard protocol), but most implementations are still gluing things together ad-hoc. There's a gap between \"I can build an MCP server\" and \"this is a polished, opinionated product.\" The DuckDB choice is smart for local-first. I use ClickHouse for prod", "context": "", "use_case": "local-first analytics", "switched_from": "", "story": "Show HN: DenchClaw \u2013 Local CRM on Top of OpenClaw"}, {"id": 777523904, "item_id": 48595244, "url": "https://news.ycombinator.com/item?id=48595244", "by": "steve_adams_86", "date": "2026-06-18", "stance": "recommend", "quote": "DuckDb fit better for the potentially massive datasets", "excerpt": "The most interesting use case lately has been using it as the transformation and validation engine for a CLI that handles scientific data. Some datasets are small and could have been handled at the application layer, but some are quite massive (especially genomic data). DuckDB bundles with the CLI and travels around any platform, is super lightweight, allows for easily running in CI, on a user\u2019s machine, against data", "context": "builds CLI for scientific data", "use_case": "embedded data transformation and exploration", "switched_from": "", "story": "DuckDB Internals: Why Is DuckDB Fast? (Part 1)"}, {"id": 789472528, "item_id": 49342033, "url": "https://news.ycombinator.com/item?id=49342033", "by": "mastermage", "date": "2026-08-17", "stance": "recommend", "quote": "I love DuckDB genuinely more than sqlite", "excerpt": "I love DuckDB genuinely more than sqlite even though they do completely different things but DuckDB has like for me the perfect mix between simplicity, embedded capabilities and expressiveness. (and actual Time and Date Types).", "context": "", "use_case": "embedded analytics database", "switched_from": "", "story": "A Preview of DuckDB v2.0"}]}], "caveats": [{"label": "Not OLTP/multi-user", "summary": "It is built for single-user, in-process analytics rather than transactional client-server workloads.", "quotes": [{"id": 785579536, "item_id": 49098721, "url": "https://news.ycombinator.com/item?id=49098721", "by": "biophysboy", "date": "2026-07-29", "stance": "recommend", "quote": "I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "excerpt": "As many others have said here, you should just think about transactional vs analytical as well as single user in-process vs multi-user client-server when making choices. That said, I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "context": "", "use_case": "analytics on large tables", "switched_from": "", "story": "Choose DuckDB rather than SQLite"}, {"id": 785572897, "item_id": 49098306, "url": "https://news.ycombinator.com/item?id=49098306", "by": "coldbrewed", "date": "2026-07-29", "stance": "recommend", "quote": "Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database.", "excerpt": "SQLite is _the_ tool of choice for local SQL databases with minimal overhead. If you needed a single file DB for an OLAP workload, SQLite was still the best option even if the technology wasn't an ideal fit. Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database. I ran into this myself; I tried using SQLite to store the results of whole-internet rDN", "context": "", "use_case": "OLAP workloads", "switched_from": "SQLite", "story": "Choose DuckDB rather than SQLite"}, {"id": 757104704, "item_id": 47319044, "url": "https://news.ycombinator.com/item?id=47319044", "by": "antonio-mello", "date": "2026-03-09", "stance": "recommend", "quote": "DuckDB just works for single-node use cases without any infrastructure overhead.", "excerpt": "The \"early React\" analogy resonates. I've been seeing the same pattern with MCP (Model Context Protocol) \u2014 the primitive is powerful (AI assistants calling tools via a standard protocol), but most implementations are still gluing things together ad-hoc. There's a gap between \"I can build an MCP server\" and \"this is a polished, opinionated product.\" The DuckDB choice is smart for local-first. I use ClickHouse for prod", "context": "", "use_case": "local-first analytics", "switched_from": "", "story": "Show HN: DenchClaw \u2013 Local CRM on Top of OpenClaw"}]}, {"label": "Concurrent access", "summary": "Users have needed workarounds for concurrent writes and could not open the UI while a server held the database.", "quotes": [{"id": 770428496, "item_id": 48151781, "url": "https://news.ycombinator.com/item?id=48151781", "by": "bfeynman", "date": "2026-05-15", "stance": "recommend", "quote": "with duckdb is so cheap was simpler than really implementing concurrent writes and mutations", "excerpt": "Very hyped for this and updates. Have been using my own workarounds for a while with own WAL things and then sort of generating snapshots which with duckdb is so cheap was simpler than really implementing concurrent writes and mutations but this will make it so much easier.", "context": "", "use_case": "analytics database with snapshots", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}, {"id": 769870752, "item_id": 48116922, "url": "https://news.ycombinator.com/item?id=48116922", "by": "steve_adams_86", "date": "2026-05-12", "stance": "recommend", "quote": "duckdb is my favourite technology of 2025/26. It has worked its way into so many of my workflows.", "excerpt": "I was just wishing something like this existed last week. What timing. I'm piping sensor readings into duckdb with a deno server, and couldn't use duckdb -ui to look over the data without shutting down the server. I had no interest in using the server to allow me to look at the contents of the db, so I was just going to live with it for now. This perfectly solves that, along with several other similar kinds of proble", "context": "", "use_case": "sensor data, analytics, data pipelines", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}]}, {"label": "Node/Bun support", "summary": "Node and Bun support lags behind Python, and dynamic linking prevents bundling it into a Bun executable.", "quotes": [{"id": 746463744, "item_id": 46653984, "url": "https://news.ycombinator.com/item?id=46653984", "by": "netcraft", "date": "2026-01-16", "stance": "recommend", "quote": "I love duckdb, I use it as much as I can.", "excerpt": "I love duckdb, I use it as much as I can. I just wish that the support for node/bun was as good as python. And I wish that they would bundle it differently for node/bun - the way it is now it depends on a dynamic link to a library which means I cant bundle it into a bun executable.", "context": "", "use_case": "data processing", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}]}, {"label": "Rough edges", "summary": "Commenters mention sharp edges in spatial features, limited Quack client support and a partitioning gotcha.", "quotes": [{"id": 800955104, "item_id": 50059694, "url": "https://news.ycombinator.com/item?id=50059694", "by": "mootothemax", "date": "2026-10-12", "stance": "recommend", "quote": "I use duckdb and its spatial stuff as my adapter.", "excerpt": "Ouch! I had a sympathetic shudder at your raster flashback, totally been there. I totally get your visual pattern matching instinct too - spooky cos that's how I do stuff too. Great minds. For what it's worth, I use duckdb and its spatial stuff as my adapter. Works for my brain and if you force e.g. SQL files for each step, gets there in the same kind of way. Still some sharp edges, mind, but overall working well. An", "context": "", "use_case": "spatial data adapter", "switched_from": "", "story": "QGIS enacts moratorium on AI contributions"}, {"id": 802928000, "item_id": 50183000, "url": "https://news.ycombinator.com/item?id=50183000", "by": "nicoritschel", "date": "2026-10-21", "stance": "recommend", "quote": "It's very fast, especially on a decent sized cloud VM and when querying Iceberg.", "excerpt": "It's very fast, especially on a decent sized cloud VM and when querying Iceberg. I've been running the alpha in production as a centralized analytics server for a small organization. I built a DuckDB extension so you can connect via Postgres wire protocol, or Arrow flight. DuckDB also has its own Quack protocol, but client support for Quack is very limited right now, whereas many data tools support Postgres wire prot", "context": "runs alpha in production for a small organization", "use_case": "centralized analytics server", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 789382896, "item_id": 49336431, "url": "https://news.ycombinator.com/item?id=49336431", "by": "staticautomatic", "date": "2026-08-17", "stance": "recommend", "quote": "Lots of places where we replaced Pandas with DuckDB for transformations.", "excerpt": "Similar here. Lots of places where we replaced Pandas with DuckDB for transformations. Also have scriptable custom dashboards running on top of BigQuery data pre-aggregated and extracted to parquet on GCS. It's way faster and the only limiting factor is your viz library. It was pretty easy to build and the only big gotcha I encountered was finding, somewhat counter-intuitively, that it's often best minimize partition", "context": "", "use_case": "data transformations and dashboards", "switched_from": "pandas", "story": "A Preview of DuckDB v2.0"}]}, {"label": "AWS uncertainty", "summary": "Some commenters worry about how the AWS news will affect the project and its users.", "quotes": [{"id": 791240192, "item_id": 49452512, "url": "https://news.ycombinator.com/item?id=49452512", "by": "willbeddow", "date": "2026-08-26", "stance": "recommend", "quote": "I love DuckDB, and we've adopted/extended it and ducklake very heavily at Krea for our research.", "excerpt": "This is a real shame. I love DuckDB, and we've adopted/extended it and ducklake very heavily at Krea for our research. I know the projects will remain open, and ostensibly still contributed to in the same direction, but surely AWS thinks of this as another piece of a product suite to compete with Databricks. Nontheless, I think the open embedded query engine approach DuckDB is spearheading is larger than one project,", "context": "works at Krea", "use_case": "research data processing", "switched_from": "", "story": "AWS Acquires DuckLabs"}, {"id": 791176192, "item_id": 49448512, "url": "https://news.ycombinator.com/item?id=49448512", "by": "ferguess_k", "date": "2026-08-26", "stance": "recommend", "quote": "I use DuckDB extensively for local dev as well as a parquet viewer.", "excerpt": "Wow congratulations for the original authors, but I hope it doesn't impact the users. I can imagine that it is very useful for AWS because they don't exactly have something similar. I use DuckDB extensively for local dev as well as a parquet viewer.", "context": "", "use_case": "local dev, parquet viewing", "switched_from": "", "story": "AWS Acquires DuckLabs"}]}], "who": [{"by": "nicoritschel", "context": "runs alpha in production for a small organization", "url": "https://news.ycombinator.com/item?id=50183000", "date": "2026-10-21"}, {"by": "marcbpaul", "context": "learning data engineering", "url": "https://news.ycombinator.com/item?id=50088838", "date": "2026-10-14"}, {"by": "Vaslo", "context": "leads a team", "url": "https://news.ycombinator.com/item?id=49668372", "date": "2026-09-12"}, {"by": "willbeddow", "context": "works at Krea", "url": "https://news.ycombinator.com/item?id=49452512", "date": "2026-08-26"}, {"by": "dm03514", "context": "built a stream processing engine on DuckDB", "url": "https://news.ycombinator.com/item?id=49339303", "date": "2026-08-17"}, {"by": "kianN", "context": "company building data science stack in Clojure", "url": "https://news.ycombinator.com/item?id=49179865", "date": "2026-08-05"}, {"by": "encoderer", "context": "works at Cronitor", "url": "https://news.ycombinator.com/item?id=49177043", "date": "2026-08-04"}, {"by": "DanielHB", "context": "previously worked with electric vehicle data", "url": "https://news.ycombinator.com/item?id=48596201", "date": "2026-06-19"}, {"by": "steve_adams_86", "context": "builds CLI for scientific data", "url": "https://news.ycombinator.com/item?id=48595244", "date": "2026-06-18"}, {"by": "arcb", "context": "founder of BitBoard", "url": "https://news.ycombinator.com/item?id=48506800", "date": "2026-06-12"}, {"by": "gigatexal", "context": "data engineer", "url": "https://news.ycombinator.com/item?id=47866751", "date": "2026-04-22"}, {"by": "ila_b", "context": "researcher at CWI", "url": "https://news.ycombinator.com/item?id=47453547", "date": "2026-03-20"}], "tags": ["pandas alternative", "for data engineers", "runs in the browser", "for laptop analytics", "for Parquet on S3"], "use_cases": ["data processing", "data analysis", "query engine", "analytics", "columnar analytics", "querying parquet files"], "compared": [{"slug": "pandas", "name": "pandas", "co": 15, "switched_from": 4, "switched_to": 0}, {"slug": "polars", "name": "Polars", "co": 16, "switched_from": 3, "switched_to": 0}, {"slug": "sqlite", "name": "SQLite", "co": 14, "switched_from": 2, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "clickhouse", "name": "ClickHouse", "co": 5, "switched_from": 1, "switched_to": 0}, {"slug": "malloy", "name": "Malloy", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 777572176, "item_id": 48598261, "url": "https://news.ycombinator.com/item?id=48598261", "by": "ilia-a", "date": "2026-06-19", "stance": "recommend", "quote": "DuckDB is really neat, recently added PDO interface for it for PHP", "excerpt": "DuckDB is really neat, recently added PDO interface for it for PHP https://github.com/iliaal/pdo_duckdb Still a bit raw, but getting there", "context": "", "use_case": "PHP PDO integration", "switched_from": "", "story": "DuckDB Internals: Why Is DuckDB Fast? (Part 1)"}], "threads": [{"url": "https://news.ycombinator.com/item?id=49330781", "title": "A Preview of DuckDB v2.0", "mentions": 9}, {"url": "https://news.ycombinator.com/item?id=48553388", "title": "DuckDB Internals: Why Is DuckDB Fast? (Part 1)", "mentions": 9}, {"url": "https://news.ycombinator.com/item?id=46645176", "title": "Why DuckDB is my first choice for data processing", "mentions": 9}, {"url": "https://news.ycombinator.com/item?id=50181136", "title": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=49448321", "title": "AWS Acquires DuckLabs", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=47602040", "title": "Ask HN: What dev tools do you rely on that nobody talks about?", "mentions": 3}], "sentiment_by_month": {"2025-11": {"recommend": 3, "neutral": 1}, "2025-12": {"recommend": 1, "neutral": 1}, "2026-01": {"neutral": 2, "recommend": 8, "compare": 1}, "2026-02": {"recommend": 1}, "2026-03": {"recommend": 5, "neutral": 2, "compare": 1}, "2026-04": {"recommend": 5, "neutral": 1}, "2026-05": {"recommend": 2}, "2026-06": {"compare": 1, "recommend": 6, "neutral": 4}, "2026-07": {"recommend": 5, "neutral": 1}, "2026-08": {"recommend": 18, "neutral": 3, "compare": 3}, "2026-09": {"recommend": 3, "compare": 1, "neutral": 3}, "2026-10": {"recommend": 8, "neutral": 3}}, "quotes": [{"id": 803103088, "item_id": 50193943, "url": "https://news.ycombinator.com/item?id=50193943", "by": "Nihilartikel", "date": "2026-10-22", "stance": "recommend", "quote": "It's a really good daily multitool for data.", "excerpt": "It's a really good daily multitool for data. E.g. I often have to do work on multiple csv and excel files, joins and filters etc. I hate excel but am fine with SQL. With a duckdb session in dbeaver, I can literally select, project, and join the files on disk as if they were tables. It saves so much time and fuss For bigger integrations I use it as a trino alternative. If I have to combine multiple data sources I'll w", "context": "", "use_case": "querying CSV/Excel files, joins", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 803083088, "item_id": 50192693, "url": "https://news.ycombinator.com/item?id=50192693", "by": "CodeCompost", "date": "2026-10-22", "stance": "recommend", "quote": "I've used it for data migration combined with Jupyter Notebook.", "excerpt": "I've used it for data migration combined with Jupyter Notebook. While I'm fully aware of DataFrame, I am more familiar with SQL. So I used Python scripts in Jupyter to load Excel sheets into DuckDB, and then run queries in DuckDB. Eventually I export the data back to Excel or SQL Server. Not the most efficient way to do this I know, but it works for me.", "context": "", "use_case": "data migration with SQL", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 802950544, "item_id": 50184409, "url": "https://news.ycombinator.com/item?id=50184409", "by": "gopalv", "date": "2026-10-21", "stance": "recommend", "quote": "I could have 3000 users logged into the same application, but all of them would be bringing their own CPU to run duckdb.", "excerpt": "> What are you guys using it for? Transparent queries on server/browser in identical sql. If you play all the tricks Google's Capacitor does to the data layout, you can shove ~2-3 million rows to a browser based query engine in 16-20Mb with duckdb-wasm. We can scale it up to ~1Gb with HTTP range queries, with cache-control. Then we use Jev to write SQL queries over it in 1-2s, whenever someone has a followup question", "context": "", "use_case": "in-browser SQL queries via duckdb-wasm", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 802928000, "item_id": 50183000, "url": "https://news.ycombinator.com/item?id=50183000", "by": "nicoritschel", "date": "2026-10-21", "stance": "recommend", "quote": "It's very fast, especially on a decent sized cloud VM and when querying Iceberg.", "excerpt": "It's very fast, especially on a decent sized cloud VM and when querying Iceberg. I've been running the alpha in production as a centralized analytics server for a small organization. I built a DuckDB extension so you can connect via Postgres wire protocol, or Arrow flight. DuckDB also has its own Quack protocol, but client support for Quack is very limited right now, whereas many data tools support Postgres wire prot", "context": "runs alpha in production for a small organization", "use_case": "centralized analytics server", "switched_from": "", "story": "DuckDB 2.0.0 LTS \u201cCinnamon Teal\u201d"}, {"id": 801461440, "item_id": 50091340, "url": "https://news.ycombinator.com/item?id=50091340", "by": "pak9rabid", "date": "2026-10-14", "stance": "recommend", "quote": "DuckDB is amazing.", "excerpt": "DuckDB is amazing. I swapped out some data analytics processing that was originally implemented with Python & Postgres to DuckDB and have been immensely pleased with the outcome. Stuff that would take 6+ hours to do with Python/Postgres now takes me around half an hour to complete. It's a great addition to an existing Postgres database as it has very tight integration with it's native Postgres extension, which allows", "context": "", "use_case": "data analytics processing", "switched_from": "Python & Postgres", "story": "Same Job, Two Engines: InnoDB and Iceberg Internals"}, {"id": 801421408, "item_id": 50088838, "url": "https://news.ycombinator.com/item?id=50088838", "by": "marcbpaul", "date": "2026-10-14", "stance": "neutral", "quote": "DuckDB's come up a lot since I started my little journey to be honest.", "excerpt": "DuckDB's come up a lot since I started my little journey to be honest. Everything I've read says you're absolutely right about the performance boost lol. It very well may be the next piece I check out, thank you.", "context": "learning data engineering", "use_case": "data processing", "switched_from": "", "story": "Same Job, Two Engines: InnoDB and Iceberg Internals"}, {"id": 800955104, "item_id": 50059694, "url": "https://news.ycombinator.com/item?id=50059694", "by": "mootothemax", "date": "2026-10-12", "stance": "recommend", "quote": "I use duckdb and its spatial stuff as my adapter.", "excerpt": "Ouch! I had a sympathetic shudder at your raster flashback, totally been there. I totally get your visual pattern matching instinct too - spooky cos that's how I do stuff too. Great minds. For what it's worth, I use duckdb and its spatial stuff as my adapter. Works for my brain and if you force e.g. SQL files for each step, gets there in the same kind of way. Still some sharp edges, mind, but overall working well. An", "context": "", "use_case": "spatial data adapter", "switched_from": "", "story": "QGIS enacts moratorium on AI contributions"}, {"id": 800944016, "item_id": 50059001, "url": "https://news.ycombinator.com/item?id=50059001", "by": "aynyc", "date": "2026-10-12", "stance": "neutral", "quote": "DuckDB for us is a pure read-only service pipe.", "excerpt": "It doesn't. That's the issue. DuckDB for us is a pure read-only service pipe. We need other tools to ingest and write to parquet, which has its own limitation. SQLite does a great job to support single writer and multiple readers. That's what we use for aggregation right now. DuckDB is purely post analytics.", "context": "", "use_case": "post analytics", "switched_from": "", "story": "Postgres isn't slow, your storage is"}, {"id": 799916273, "item_id": 49994767, "url": "https://news.ycombinator.com/item?id=49994767", "by": "crowdb", "date": "2026-10-07", "stance": "neutral", "quote": "I tried loading TPC-H data and querying it with DuckDB, and it worked.", "excerpt": "I noticed that there was no easy way to use a single-node Docker container for Iceberg storage. I\u2019m building the CROWDB storage system, and the basic flow is working, so I decided to provide a single-node Docker container for Iceberg storage. You can upload your Iceberg tables and files by SDK, then query them with any system that supports the Iceberg format. I tried loading TPC-H data and querying it with DuckDB, an", "context": "", "use_case": "querying Iceberg tables", "switched_from": "", "story": "Show HN: CrowDB \u2013 an iceberg table storage single Docker container"}, {"id": 799717152, "item_id": 49982322, "url": "https://news.ycombinator.com/item?id=49982322", "by": "jszymborski", "date": "2026-10-06", "stance": "recommend", "quote": "I've nearly entirely switched to DuckDB for anything more than like 500 or 1,000 rows", "excerpt": "I've nearly entirely switched to DuckDB for anything more than like 500 or 1,000 rows or if there are a tonne of columns. Polars is great, but I'm just too used to the Pandas API to use it as a replacement for the cases where DuckDB is overkill.", "context": "", "use_case": "dataframe/data analysis", "switched_from": "Pandas", "story": "Polars 2.0"}, {"id": 799671280, "item_id": 49979455, "url": "https://news.ycombinator.com/item?id=49979455", "by": "mrtimo", "date": "2026-10-06", "stance": "recommend", "quote": "With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas.", "excerpt": "I can use pandas to clean a dataset, but each cleaning task is usually one line of code. OTOH, With DuckDB with one SQL statement I can replace 40+ lines of polars/pandas. You may reply, SQL isn't as easy to understand! Fair point, it's a declarative language... which is why I use Malloy. Malloy is to TypeScript as Javascript is to SQL. Malloy is much easier to read and write (just as TypeScript is) because it has a ", "context": "", "use_case": "data cleaning and analysis", "switched_from": "", "story": "Polars 2.0"}, {"id": 795042881, "item_id": 49690180, "url": "https://news.ycombinator.com/item?id=49690180", "by": "vira28", "date": "2026-09-14", "stance": "neutral", "quote": "using DuckDB as the query engine", "excerpt": "An analytics store for Postgres on S3 using DuckDB as the query engine https://github.com/viggy28/streambed", "context": "", "use_case": "query engine", "switched_from": "", "story": "Ask HN: What are you working on? (September 2026)"}, {"id": 794697217, "item_id": 49668576, "url": "https://news.ycombinator.com/item?id=49668576", "by": "appplication", "date": "2026-09-12", "stance": "recommend", "quote": "polars and duckdb are objectively better APIs in addition to their implementation improvements", "excerpt": "Not to mention less footguns. I used to spend my days unwinding bad habits DS pick up from years of panda abuse. Credit to pandas for popularizing dataframes in Python, but polars and duckdb are objectively better APIs in addition to their implementation improvements. Agree that it\u2019s time we let it go.", "context": "", "use_case": "data analysis", "switched_from": "pandas", "story": "Pandas Should Go Extinct"}, {"id": 794693953, "item_id": 49668372, "url": "https://news.ycombinator.com/item?id=49668372", "by": "Vaslo", "date": "2026-09-12", "stance": "recommend", "quote": "I use polars or duckdb now exclusively.  Better syntax, better performance.", "excerpt": "I use polars or duckdb now exclusively. Better syntax, better performance. But pandas is deeply entrenched - I try to get my team off it but it\u2019s an uphill battle. It\u2019s not going anywhere anytime soon.", "context": "leads a team", "use_case": "data analysis", "switched_from": "pandas", "story": "Pandas Should Go Extinct"}, {"id": 793592929, "item_id": 49599558, "url": "https://news.ycombinator.com/item?id=49599558", "by": "8organicbits", "date": "2026-09-07", "stance": "neutral", "quote": "I do duckdb processing which supports gzip transparently.", "excerpt": "I was processing compressed .jsonl files recently (JSON lines format). I found that lzma gave a much better compression than gzip or bzip2, which helps for archival costs, but it's challenging to work with as software support is lacking. I do duckdb processing which supports gzip transparently. There's an extension for bzip2, but not for lzma or bzip3. I ended up using gzip because it's best supported by the software", "context": "", "use_case": "processing JSONL files", "switched_from": "", "story": "bzip3"}, {"id": 793404386, "item_id": 49587774, "url": "https://news.ycombinator.com/item?id=49587774", "by": "lo0dot0", "date": "2026-09-06", "stance": "neutral", "quote": "when I used duckdb and Python and Pycharm", "excerpt": "Anecdotal evidence but when I used duckdb and Python and Pycharm the Pycharm table viewer was not working as well as Excel. The rendering was messed up. Could be related to the remote desktop rendering but still not as flawless as Excel. The patchwork of multiple software from different vendors needed to replace Excel with database plus viewer plus Code has downsides compared to the single app single file solution th", "context": "", "use_case": "data analysis", "switched_from": "", "story": "Kale: A Transformation-Safe Spreadsheet System"}, {"id": 792773938, "item_id": 49548371, "url": "https://news.ycombinator.com/item?id=49548371", "by": "Kydlaw", "date": "2026-09-03", "stance": "compare", "quote": "I started looking more and more into DuckDB recently", "excerpt": "Happy to see activity around Polars. This has been my go-to library for data processing due to the enhanced ergonomics compared to Pandas and SQL. But they were a bit quiet lately, and I started looking more and more into DuckDB recently\u2026 until the recent acquisition of DuckLab by AWS", "context": "", "use_case": "data processing", "switched_from": "", "story": "Pre-Release of Polars 2.0"}, {"id": 792762400, "item_id": 49547650, "url": "https://news.ycombinator.com/item?id=49547650", "by": "fzumstein", "date": "2026-09-03", "stance": "recommend", "quote": "So DuckDB is another interesting alternative to pandas.", "excerpt": "I tend to agree. SQL may have been harder to write in the past (worse autocomplete than pandas/polars), but now that AI is writing the code, SQL is usually much easier to read. So DuckDB is another interesting alternative to pandas.", "context": "", "use_case": "data analysis with SQL", "switched_from": "", "story": "Pre-Release of Polars 2.0"}, {"id": 791781637, "item_id": 49486352, "url": "https://news.ycombinator.com/item?id=49486352", "by": "trueno", "date": "2026-08-29", "stance": "neutral", "quote": "built stupid simple framework ish coverage for connections and duckdb", "excerpt": "i use this stack quite a bit too. i made the claude do some load bearing 360 backflips, gate and seam a whole buncha smoking guns, and bolt go-starlark on top of this so i can just declare little web apps like its streamlit but it doesn't feel sucky like streamlit. i get to just write little blurbs of python-looking code and i get these fully reactive tools. probably my favorite and most used abstraction that came fr", "context": "", "use_case": "data connections", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791325793, "item_id": 49457862, "url": "https://news.ycombinator.com/item?id=49457862", "by": "adeptima", "date": "2026-08-27", "stance": "compare", "quote": "MIT License https://github.com/duckdb/duckdb/blob/main/LICENSE", "excerpt": "If you are into geo spatial, worth to check on the same class project - SedonaDB https://github.com/apache/sedona-db \"SedonaDB is an open-source single-node analytical database engine with geospatial as a first-class citizen\" Apache License 2.0 https://github.com/apache/sedona-db/blob/main/LICENSE MIT License https://github.com/duckdb/duckdb/blob/main/LICENSE https://duckdb.org/docs/current/core_extensions/spatial/fu", "context": "", "use_case": "geospatial analytics", "switched_from": "", "story": "AWS Acquires DuckLabs"}, {"id": 791240192, "item_id": 49452512, "url": "https://news.ycombinator.com/item?id=49452512", "by": "willbeddow", "date": "2026-08-26", "stance": "recommend", "quote": "I love DuckDB, and we've adopted/extended it and ducklake very heavily at Krea for our research.", "excerpt": "This is a real shame. I love DuckDB, and we've adopted/extended it and ducklake very heavily at Krea for our research. I know the projects will remain open, and ostensibly still contributed to in the same direction, but surely AWS thinks of this as another piece of a product suite to compete with Databricks. Nontheless, I think the open embedded query engine approach DuckDB is spearheading is larger than one project,", "context": "works at Krea", "use_case": "research data processing", "switched_from": "", "story": "AWS Acquires DuckLabs"}, {"id": 791180064, "item_id": 49448754, "url": "https://news.ycombinator.com/item?id=49448754", "by": "karakanb", "date": "2026-08-26", "stance": "recommend", "quote": "provide a leaner, faster and a more modern alternative to Athena.", "excerpt": "I wasn't expecting this, and I am pleasantly surprised. I think AWS has been a bad player in the data space and very much behind all the other warehouse providers for many years now. This could lead into interesting integrations of DuckDB on top of all the data that lives in S3 and provide a leaner, faster and a more modern alternative to Athena.", "context": "", "use_case": "querying data in S3", "switched_from": "", "story": "AWS Acquires DuckLabs"}, {"id": 791176192, "item_id": 49448512, "url": "https://news.ycombinator.com/item?id=49448512", "by": "ferguess_k", "date": "2026-08-26", "stance": "recommend", "quote": "I use DuckDB extensively for local dev as well as a parquet viewer.", "excerpt": "Wow congratulations for the original authors, but I hope it doesn't impact the users. I can imagine that it is very useful for AWS because they don't exactly have something similar. I use DuckDB extensively for local dev as well as a parquet viewer.", "context": "", "use_case": "local dev, parquet viewing", "switched_from": "", "story": "AWS Acquires DuckLabs"}, {"id": 791130625, "item_id": 49445664, "url": "https://news.ycombinator.com/item?id=49445664", "by": "larodi", "date": "2026-08-26", "stance": "recommend", "quote": "I love SQL, and respect SQLite and DuckDB for what they are.", "excerpt": ">I\u2019m amazed how much collapses into a single domain: SQL. perhaps is more correct to say \"all data, including code, is table-representable, even though being a graph\" or \"everything falls back to tables\" or even \"relational algebra is all u need\", but I strongly disagree SQL being a domain on its all, and that it (all) collapses into such domain. One can collapse segment tables likewise into DATALOG, which is also a ", "context": "", "use_case": "", "switched_from": "", "story": "Actually Queryable Executables"}, {"id": 790239008, "item_id": 49389938, "url": "https://news.ycombinator.com/item?id=49389938", "by": "tofflos", "date": "2026-08-21", "stance": "recommend", "quote": "I love the idea of friendly SQL!", "excerpt": "> Previous blog posts have covered DuckDB\u2019s friendly SQL, including GROUP BY ALL and column selection using SELECT * EXCLUDE (...). I love the idea of friendly SQL! I often create views with the same shape and would love it if UNION and UNION ALL accepted a list. But it's not in the standard so I've given up hope of it ever happening in PostgreSQL. select * from view1 union all view2, view3, view4;", "context": "", "use_case": "SQL queries", "switched_from": "", "story": "DuckDB V2 PEG-based SQL parser"}, {"id": 789994353, "item_id": 49374647, "url": "https://news.ycombinator.com/item?id=49374647", "by": "quantike", "date": "2026-08-20", "stance": "recommend", "quote": "querying with SQL in DuckDB is the path I've been going", "excerpt": "This is cool! Visibility into streams is one of the developer papercuts that my team struggles with, specifically on NATS JetStream which doesn't have a schema registry. I am working on a similar use-case by creating a DuckDB extension that can stream from NATS JetsStream: https://github.com/quantike/duckstream Still early days on feature support, but querying with SQL in DuckDB is the path I've been going. I will ne", "context": "", "use_case": "querying streams with SQL", "switched_from": "", "story": "Show HN: Streambench \u2013 Native Mac Client for Kafka and NATS"}, {"id": 789810112, "item_id": 49363132, "url": "https://news.ycombinator.com/item?id=49363132", "by": "JaggerFoo", "date": "2026-08-19", "stance": "neutral", "quote": "I'm currently, deploying Duckdb with AWS S3 Tables (Iceberg) to see how it fits for a use case I have.", "excerpt": "Use case matters. I use a SQL databases as needed. I've used Postgres, Sqlite, Duckdb, Json files with AWS Athena, Oracle enterprise for ERP systems (a multitude of schemas and objects with interoperability), and others. I'm currently, deploying Duckdb with AWS S3 Tables (Iceberg) to see how it fits for a use case I have. IT is great and always changing. Keep trying new things. Cheers", "context": "", "use_case": "analytics on S3 Tables", "switched_from": "", "story": "PostgreSQL for Everything"}, {"id": 789612753, "item_id": 49350797, "url": "https://news.ycombinator.com/item?id=49350797", "by": "viccis", "date": "2026-08-18", "stance": "recommend", "quote": "Same.", "excerpt": "Same. Almost every time I would use its streaming interfaces in Python, it would STILL materialize everything into memory. That was like 6 months ago. Maybe streaming interfaces actually work, but I found them to be leaky abstractions that required a ton of hand holding to make sure they didn't build a bunch of memory pressure, if you're lucky enough to even have a way to do it. For example, last time I used it, you ", "context": "", "use_case": "data processing", "switched_from": "Polars", "story": "Python Polars Cheatsheet (based on our O'Reilly book)"}, {"id": 789590752, "item_id": 49349422, "url": "https://news.ycombinator.com/item?id=49349422", "by": "mrtimo", "date": "2026-08-18", "stance": "recommend", "quote": "I've moved from python/polars/pandas to DuckDB and have not looked back", "excerpt": "I've moved from python/polars/pandas to DuckDB and have not looked back", "context": "", "use_case": "data processing", "switched_from": "Polars", "story": "Python Polars Cheatsheet (based on our O'Reilly book)"}, {"id": 789575872, "item_id": 49348492, "url": "https://news.ycombinator.com/item?id=49348492", "by": "christoff12", "date": "2026-08-18", "stance": "recommend", "quote": "I love reading all of the DuckDB love here. It's good software.", "excerpt": "I love reading all of the DuckDB love here. It's good software.", "context": "", "use_case": "", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789500288, "item_id": 49343768, "url": "https://news.ycombinator.com/item?id=49343768", "by": "ljosifov", "date": "2026-08-18", "stance": "recommend", "quote": "So yeah - fond of DuckDB.", "excerpt": "Similar. Noticed DuckDB ever since an old article 'what db should I use' for local small data warehousing. The author was blown away that DuckDB seemed super naturally quick. It was I think columnar store + compression facilitated that? It made duckdb load compressed + on the fly decompress = faster than even reading the uncompressed data. Had forgotten most of it. But was used to mmap-ed files + columnar storing of ", "context": "", "use_case": "backing store for data agent", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789472528, "item_id": 49342033, "url": "https://news.ycombinator.com/item?id=49342033", "by": "mastermage", "date": "2026-08-17", "stance": "recommend", "quote": "I love DuckDB genuinely more than sqlite", "excerpt": "I love DuckDB genuinely more than sqlite even though they do completely different things but DuckDB has like for me the perfect mix between simplicity, embedded capabilities and expressiveness. (and actual Time and Date Types).", "context": "", "use_case": "embedded analytics database", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789451248, "item_id": 49340703, "url": "https://news.ycombinator.com/item?id=49340703", "by": "swasheck", "date": "2026-08-17", "stance": "recommend", "quote": "i love duckdb and use it for a variety of projects", "excerpt": "which statistical functions do you want? i\u2019m curious because i love duckdb and use it for a variety of projects but always want to learn more about how to use tools better.", "context": "", "use_case": "variety of projects", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789428848, "item_id": 49339303, "url": "https://news.ycombinator.com/item?id=49339303", "by": "dm03514", "date": "2026-08-17", "stance": "recommend", "quote": "DuckDB has been a fantastic engine to build on (in python)", "excerpt": "<3 duckdb run realtime analytics pipeline using a (moderately popular) stream processing engine I built on top of DuckDB. Looking forward to what duckdb provides in terms of perf out of the box! https://github.com/turbolytics/sql-flow DuckDB has been a fantastic engine to build on (in python), and processes thousands of events per second, day in an day out, without issue", "context": "built a stream processing engine on DuckDB", "use_case": "realtime analytics pipeline", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789382896, "item_id": 49336431, "url": "https://news.ycombinator.com/item?id=49336431", "by": "staticautomatic", "date": "2026-08-17", "stance": "recommend", "quote": "Lots of places where we replaced Pandas with DuckDB for transformations.", "excerpt": "Similar here. Lots of places where we replaced Pandas with DuckDB for transformations. Also have scriptable custom dashboards running on top of BigQuery data pre-aggregated and extracted to parquet on GCS. It's way faster and the only limiting factor is your viz library. It was pretty easy to build and the only big gotcha I encountered was finding, somewhat counter-intuitively, that it's often best minimize partition", "context": "", "use_case": "data transformations and dashboards", "switched_from": "pandas", "story": "A Preview of DuckDB v2.0"}, {"id": 789340064, "item_id": 49333754, "url": "https://news.ycombinator.com/item?id=49333754", "by": "otter-in-a-suit", "date": "2026-08-17", "stance": "recommend", "quote": "the mix of it being fast, having spatial support, sane coding interfaces, great dbt integration", "excerpt": "Super excited about Quack (partially due to the name). I use duckdb for both analytics and runtime, but I do have to serve/handle/manage a giant, multi-GiB duckdb file as effectively a runtime artifact[1]. I'm aware that this isn't the _perfect_ database for this, but the mix of it being fast, having spatial support, sane coding interfaces, great dbt integration, and me being able to do everything between \"run a gian", "context": "", "use_case": "analytics and runtime database", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789339153, "item_id": 49333697, "url": "https://news.ycombinator.com/item?id=49333697", "by": "aleda145", "date": "2026-08-17", "stance": "recommend", "quote": "Excited about a stable C++ API for extensions!", "excerpt": "Excited about a stable C++ API for extensions! I made a dry run extension a few months ago (https://github.com/aleda145/duckdb-dryrun), will be so nice to build it just once and know that it will always work. Also urge anyone to make an extension, the template makes it quite smooth: https://github.com/duckdb/extension-template", "context": "", "use_case": "building extensions", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789330081, "item_id": 49333130, "url": "https://news.ycombinator.com/item?id=49333130", "by": "fifilura", "date": "2026-08-17", "stance": "compare", "quote": "I had an impression that DuckDB was not great at distributing work to other machines, but good at doing it locally?", "excerpt": "My favourite is AWS Athena (backed by Trino). \"If we use this we get indefinite RAM indefinite CPU and do not need to host a server\". I had an impression that DuckDB was not great at distributing work to other machines, but good at doing it locally? Am I wrong?", "context": "", "use_case": "", "switched_from": "", "story": "A Preview of DuckDB v2.0"}, {"id": 789186848, "item_id": 49324178, "url": "https://news.ycombinator.com/item?id=49324178", "by": "quag", "date": "2026-08-16", "stance": "recommend", "quote": "I love using duckdb and frequently query directly from zstd compressed files (and write out new ones).", "excerpt": "Thank you. I love using duckdb and frequently query directly from zstd compressed files (and write out new ones). They\u2019re easy to inspect using visidata and make outer use of. I found the talk interesting and enjoyable.", "context": "", "use_case": "querying compressed files", "switched_from": "", "story": "Asynchronous I/O in DuckDB: Work, Thread, Work"}, {"id": 788829905, "item_id": 49301869, "url": "https://news.ycombinator.com/item?id=49301869", "by": "christoff12", "date": "2026-08-14", "stance": "compare", "quote": "why would I use this instead of duckdb and writing SQL as God intended", "excerpt": "The claim of \"built for teams that measure latency in microseconds\" is conflicted by the pseudo demo showing a simple query that takes 4 seconds. I could assume that this is slowed down for effect, but the glowing green label[1] tells me this is a \"real engine run\" so now I'm confused. My core question is why would I use this instead of duckdb and writing SQL as God intended[2]? --- [1] A clear indication of AI gener", "context": "", "use_case": "analytics", "switched_from": "", "story": "RayforceDB \u2013 a pure C analytics database with a Lisp-like syntax"}, {"id": 785579536, "item_id": 49098721, "url": "https://news.ycombinator.com/item?id=49098721", "by": "biophysboy", "date": "2026-07-29", "stance": "recommend", "quote": "I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "excerpt": "As many others have said here, you should just think about transactional vs analytical as well as single user in-process vs multi-user client-server when making choices. That said, I do think duckdb has a wider range of use cases than people here might think. It can whip through fairly large datasets (I use it for ~1B row tables all the time)", "context": "", "use_case": "analytics on large tables", "switched_from": "", "story": "Choose DuckDB rather than SQLite"}, {"id": 785572897, "item_id": 49098306, "url": "https://news.ycombinator.com/item?id=49098306", "by": "coldbrewed", "date": "2026-07-29", "stance": "recommend", "quote": "Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database.", "excerpt": "SQLite is _the_ tool of choice for local SQL databases with minimal overhead. If you needed a single file DB for an OLAP workload, SQLite was still the best option even if the technology wasn't an ideal fit. Duckdb is exciting specifically because SQLite/duckdb aren't comparable; we can stop shoehorning OLAP into an OLTP database. I ran into this myself; I tried using SQLite to store the results of whole-internet rDN", "context": "", "use_case": "OLAP workloads", "switched_from": "SQLite", "story": "Choose DuckDB rather than SQLite"}, {"id": 770428496, "item_id": 48151781, "url": "https://news.ycombinator.com/item?id=48151781", "by": "bfeynman", "date": "2026-05-15", "stance": "recommend", "quote": "with duckdb is so cheap was simpler than really implementing concurrent writes and mutations", "excerpt": "Very hyped for this and updates. Have been using my own workarounds for a while with own WAL things and then sort of generating snapshots which with duckdb is so cheap was simpler than really implementing concurrent writes and mutations but this will make it so much easier.", "context": "", "use_case": "analytics database with snapshots", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}, {"id": 769870752, "item_id": 48116922, "url": "https://news.ycombinator.com/item?id=48116922", "by": "steve_adams_86", "date": "2026-05-12", "stance": "recommend", "quote": "duckdb is my favourite technology of 2025/26. It has worked its way into so many of my workflows.", "excerpt": "I was just wishing something like this existed last week. What timing. I'm piping sensor readings into duckdb with a deno server, and couldn't use duckdb -ui to look over the data without shutting down the server. I had no interest in using the server to allow me to look at the contents of the db, so I was just going to live with it for now. This perfectly solves that, along with several other similar kinds of proble", "context": "", "use_case": "sensor data, analytics, data pipelines", "switched_from": "", "story": "Quack: The DuckDB Client-Server Protocol"}, {"id": 767481328, "item_id": 47967583, "url": "https://news.ycombinator.com/item?id=47967583", "by": "bambax", "date": "2026-04-30", "stance": "recommend", "quote": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far.", "excerpt": "I'm relatively new to DuckDB (coming from SQLite) and I love it so far. Some parts are magical (described in the previous article by the same author: https://peterdohertys.website/blog-posts/dab-of-duck.html) You can point DuckDB to almost any data source and boom, you get an SQL table that you can search, sum, or join to any other data. Or you can attach existing databases from completely independent db systems, and", "context": "", "use_case": "querying and joining diverse data sources", "switched_from": "SQLite", "story": "Full-Text Search with DuckDB"}, {"id": 761703747, "item_id": 47606484, "url": "https://news.ycombinator.com/item?id=47606484", "by": "Zizizizz", "date": "2026-04-01", "stance": "recommend", "quote": "performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other.", "excerpt": "https://github.com/atuinsh/atuin for fuzzy shell history (ctrl+r) https://github.com/sharkdp/bat (nice coloured cat replacement) https://github.com/abiosoft/colima (so I don't need docker desktop) https://github.com/duckdb/duckdb (performant database that lets you directly query JSON, parquet, csv files with SQL queries and convert one to the other. https://github.com/eradman/entr (rerun commands automatically when p", "context": "", "use_case": "query and convert data files", "switched_from": "", "story": "Ask HN: What dev tools do you rely on that nobody talks about?"}, {"id": 757605904, "item_id": 47350369, "url": "https://news.ycombinator.com/item?id=47350369", "by": "__mharrison__", "date": "2026-03-12", "stance": "recommend", "quote": "duckDB is awesome", "excerpt": "When I teach, I use \"big data\" for data that won't fit in a single machine. \"Small data\" fits on a single machine in memory and medium data on disk. Having said that duckDB is awesome. I recently ported a 20 year old Python app to modern Python. I made the backend swappable, polars or duckdb. Got a 40-80x speed improvement. Took 2 days.", "context": "teaches data courses", "use_case": "data processing backend", "switched_from": "", "story": "Big Data on the Cheapest MacBook"}, {"id": 757104704, "item_id": 47319044, "url": "https://news.ycombinator.com/item?id=47319044", "by": "antonio-mello", "date": "2026-03-09", "stance": "recommend", "quote": "DuckDB just works for single-node use cases without any infrastructure overhead.", "excerpt": "The \"early React\" analogy resonates. I've been seeing the same pattern with MCP (Model Context Protocol) \u2014 the primitive is powerful (AI assistants calling tools via a standard protocol), but most implementations are still gluing things together ad-hoc. There's a gap between \"I can build an MCP server\" and \"this is a polished, opinionated product.\" The DuckDB choice is smart for local-first. I use ClickHouse for prod", "context": "", "use_case": "local-first analytics", "switched_from": "", "story": "Show HN: DenchClaw \u2013 Local CRM on Top of OpenClaw"}]}