跳转到正文

DuckDB 总览 ​

DuckDB 是一款专为在线分析处理(OLAP)设计的进程内(In-process)列式 SQL 数据库引擎,被广泛誉为“分析领域的 SQLite”。它无需独立守护进程即可直接嵌入在 Python、R、Node.js、C++ 或浏览器环境中使用。

架构形态与关键属性 ​

属性维度规格与技术实现
数据模型列式存储(Columnar Storage),支持关系表、嵌套 Struct、List、Map 与 Array。
查询引擎向量化执行引擎(Vectorized Execution Engine),以 DataChunk(通常 2048 行)为批次流式传递。
开源许可证MIT License(商业完全自由)。
运行形态进程内嵌入式运行、单文件存储、WebAssembly(DuckDB-WASM)。

模型与查询范式 ​

DuckDB 最大的特色是能够零拷贝直读 Parquet、CSV、Arrow 和远程对象存储文件:

sql
-- 直接查询 S3 或本地的 Parquet 文件并进行列式聚合
SELECT 
    date_trunc('month', sale_time) AS sale_month,
    category,
    count(*) AS total_transactions,
    round(sum(amount), 2) AS total_revenue,
    approx_count_distinct(customer_id) AS unique_customers
FROM 's3://my-lakehouse/sales_2026_*.parquet'
WHERE status = 'COMPLETED'
GROUP BY 1, 2
ORDER BY 1 DESC, total_revenue DESC;

在线实验环境

可在 DuckDB 在线工作台 直接在浏览器中执行高速列式分析查询。

适用边界 ​

适合嵌入式列式分析;浏览器 WASM 受内存与文件访问能力限制,不能代表服务端大规模工作负载。

版本阅读范围 ​

完整版本目录收录本仓库已有专题(如 duckdb-0.10、duckdb-0.9、duckdb-1.0)。这些是教学与兼容性对照入口;运行环境的具体版本以安装页、工作台或采集证据为准。

推荐学习路线 ​

安装与环境 → 核心概念 → 命令行工具 → 完整版本目录。先完成最小示例,再阅读版本差异。

实验入口与范围 ​

浏览器实验台可以执行本地示例。 Docker 验证证据列出本产品已采集结果与缺口;阅读证据不等同于启动服务或证明所有功能已验证。

Released under the MIT License.