DuckDB:高性能进程内分析型 SQL 数据库
DuckDB 是一个高性能分析型数据库系统,以进程内方式运行,设计目标是快速、可靠、可移植且易于使用。它提供功能丰富的 SQL 方言,支持任意与嵌套相关子查询、窗口函数、排序规则(collations)、复杂类型(数组、结构体、映射)以及多种为提升 SQL 易用性而设计的扩展。DuckDB 既可作为独立 CLI 应用使用,也提供 Python、R、Java、Wasm 等客户端,并与 pandas、dplyr 等包深度集成。
社区作者 · zZz
它解决什么问题
DuckDB 是一个高性能分析型数据库系统,定位为进程内(in-process)SQL 数据库管理系统。其设计目标是快速、可靠、可移植、易于使用。
SQL 能力:DuckDB 提供丰富的 SQL 方言,远超基础 SQL 的支持范围,包括任意与嵌套相关子查询、窗口函数、排序规则(collations)、复杂类型(数组、结构体、映射),以及多个旨在让 SQL 更易用的扩展。
使用形态:DuckDB 可作为独立 CLI 应用使用,并提供 Python、R、Java、Wasm 等语言的客户端,同时与 pandas、dplyr 等包深度集成。更多使用方式可参考 DuckDB 官方文档。
数据导入:对 CSV 与 Parquet 文件,数据导入非常简单,只需在 FROM 子句中直接引用文件即可: SELECT * FROM 'myfile.csv'; SELECT * FROM 'myfile.parquet'; 更多信息参见官方文档的 Data Import 章节。
SQL 参考:官方文档包含 SQL 介绍与参考手册。
许可与适用对象:来源页面未给出许可证信息,需在使用前核验;本项目适合数据分析人员、数据科学家、需要在本地或应用内进行快速分析查询的开发者,以及使用 Python/R/pandas/dplyr 工作流的用户。
(配图 1 为 DuckDB logo)
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
- 常规安装:来源页面未给出具体安装命令,仅说明“如需安装 DuckDB,请参阅官方 installation 页面获取安装说明”,因此具体安装步骤需在官方安装页面核验。
对于 CSV 文件与 Parquet 文件,只需在 FROM 子句中引用文件即可完成数据导入: SELECT * FROM 'myfile.csv'; SELECT * FROM 'myfile.parquet'; 更多信息参见官方文档 Data Import 章节。
- 数据导入(安装后即可直接使用,无需额外导入工具):
前置准备:需要 CMake、Python 3 以及兼容 C++17 的编译器。 在仓库根目录执行:
- 从源码开发构建(来源明确给出的步骤,按顺序执行):
- make:编译源码(release 构建)。
make debug:构建未优化的 debug 版本,用于开发调试。
首次运行 / 修改后验证:
make unit 与 make allunit:在改动后验证版本是否正常工作。
性能测试:
执行
BUILD_BENCHMARK=1 BUILD_TPCH=1 make 进行构建;
- 然后在根目录运行 ./build/release/benchmark/benchmark_runner 执行若干标准基准测试;
- 基准测试细节参见官方 Benchmark Guide。
- 常见问题与进一步参考:
- 构建或贡献相关问题请参考官方 Build Guide 与 Contribution Guide;
- 支持渠道与版本生命周期信息参见官方 Support Options 页面与 endoflife.date 专页;
- 使用方式问题请参考官方文档(含 SQL 介绍与参考手册)。