Duckdb

DuckDB 是一款进程内 SQL OLAP 数据库管理系统,简单、功能丰富、快速且开源。

DuckDB 与 Hugging Face:直接查询数据集

DuckDB 自 v0.10.3(2024年5月)起支持通过 hf:// 协议直接对 Hugging Face Hub 上的数据集执行 SQL 查询,无需先下载文件到本地。 每个 HF 数据集本质是一个 git 仓库(存储 CSV/JSONL/Parquet),DuckDB 在 httpfs 扩展上叠加了 hf:// 路径方案,可直接读取远程文件,并按列裁剪(Parquet 列式扫描)。 文中给出多类实操示例:单文件读取(CSV/JSONL/Parquet)、glob 跨文件聚合(如 MMLU 多个 task 的 Parquet)、通过 @ 后缀锁定具体 commit 或 ~parquet 自动转换分支实现可复现分析、用 COPY 把过滤结果写成本地 Parquet、用 read_parquet 跨 task 汇总、与本地表 join,以及通过 DuckDB Secrets Manager 管理 HF token 访问私有/门控数据集。 适用场景包括数据探查、训练子集抽取、基准评测集分析、跨数据源 join 和可复现研究。整篇是 DuckDB 官方团队撰写的技术教程,代码示例清晰、覆盖面广,适合需要查询 HF 上数据集但不想搭数据管线的工程师。
评论点赞收藏3 天前

用 DuckDB-WASM 和 OPFS 在浏览器中实现持久化数据库

DuckDB-Wasm 现在能通过浏览器的 OPFS(Origin Private File System)把数据库文件持久化到本地,刷新或重启后仍可复用。文章给出关键实现:用 opfs:// 路径打开数据库,写入后调用 CHECKPOINT 落盘,并用 registerOPFSFileName / dropFile 管理 OPFS 文件句柄;npm 的 latest 版本存在路径规范化 bug,需固定到 1.32.0 或使用 next 标签。 它还讲了 OPFS 的局限:浏览器可能因磁盘空间或长期未访问而清除数据,因此 OPFS 更像快速本地缓存,关键数据应同步到 DuckLake、对象存储等稳定位置。 最后展示了从 OPFS 导出数据库文件为字节、通过 SQL COPY 导出 Parquet,以及把预构建.duckdb 文件拷入 OPFS 让用户免导入步骤。 整体是一篇面向前端/浏览器数据工程的实操教程,信息密度较高。
评论点赞收藏12 天前

尝试 DuckDB v2.0 Alpha 版本

DuckDB 团队宣布 v2.0 版本进入 alpha 阶段,预计 10 月正式发布。CLI、Python 客户端已可安装测试,quack、httpfs、iceberg 等扩展同步进入 alpha。 官方邀请用户测试并提交 bug 报告。
评论点赞收藏22 天前

DuckDB 递归 CTE 执行提速 42 倍

DuckDB v2.0 重构了递归 CTE 引擎,将典型查询从 4 秒优化到 0.095 秒,提速 42.6 倍。核心改动:保留可复用执行状态、按精确基数自适应选择执行模式、支持键控状态直接探测。 USING KEY... UNION 语义变更,只有实际变化的键才进入下一轮迭代。
评论点赞收藏29 天前

DuckLabs 将加入 AWS,项目保持开源

DuckLabs 宣布将加入 AWS 成为子公司,DuckDB 等项目继续以 MIT 协议开源,由非营利 DuckDB Foundation 管理。路线图、许可和治理模式不变,社区支持限制将取消。
评论点赞收藏35 天前

DuckDB Java 原生表函数:用纯 Java 扩展数据源

DuckDB Java 客户端新增纯 Java 表函数支持,无需 C++ 扩展即可把任意 Java 可访问的数据源暴露为 SQL 表。文章以 MongoDB 为例演示 bind/init/apply 生命周期,并展示单节点跨远程系统与本地文件的异构 JOIN。 当前限制:无法打包为 DuckDB 扩展、对象生命周期需手动管理、复合类型暂不支持。
评论点赞收藏36 天前

DuckDB v2.0:用 PEG 解析器替换 PostgreSQL 派生解析器

DuckDB v2.0 将 SQL 解析器从 PostgreSQL 派生的 YACC/Bison 替换为基于 PEG 的解析器,解析器语法可在运行时被扩展。PEG 解析器消除了 shift/reduce 冲突,配合 packrat 解析避免指数级回溯,19 个左括号从 10 秒降到 0.001 秒。 扩展可以通过注册 grammar rule 和 transformer 向 DuckSQL 注入新语法,示例展示了 Google pipe 语法和 expression-statement 的扩展方式。
评论点赞收藏41 天前

DuckDB v2.0 预览:从进程内到服务器架构的跃迁

DuckDB v2.0 秋季发布,代号 Cyanoptera,核心变化是从进程内数据库转向服务器模式。Quack 扩展支持客户端/服务端架构,VARIANT 类型成为一等公民,新增触发器、异步 I/O、全新 SQL 解析器。 递归 CTE 查询性能提升约 40 倍,存储格式 v2.0 支持懒加载索引和列元数据。C API 稳定化,扩展可编写一次长期兼容。
评论点赞收藏44 天前

DuckDB异步I/O:线程分离、预取队列与内存治理

DuckDB v2.0(预计2026年秋季发布)将支持Parquet和CSV文件的异步读取,在EC2/S3等远程存储场景下查询速度提升约3倍。核心设计是分离REGULAR和ASYNC两个线程池,ASYNC线程负责预取数据,REGULAR线程专注解码和计算,配合read-ahead队列和异步内存治理避免OOM。 实测TPC-H Q6在S3上从8.2秒降至2.8秒,调优后仅2.2秒;本地SSD冷读提升约1.5倍。并发查询场景下CPU利用率从9%提升至75%,网络带宽从10.7Gbit/s接近饱和至25Gbit/s。
评论点赞收藏51 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。