返回目录
开源项目设计创作类新手

DuckDB:高性能进程内分析型 SQL 数据库

DuckDB 是一个高性能分析型数据库系统,以进程内方式运行,设计目标是快速、可靠、可移植且易于使用。它提供功能丰富的 SQL 方言,支持任意与嵌套相关子查询、窗口函数、排序规则(collations)、复杂类型(数组、结构体、映射)以及多种为提升 SQL 易用性而设计的扩展。DuckDB 既可作为独立 CLI 应用使用,也提供 Python、R、Java、Wasm 等客户端,并与 pandas、dplyr 等包深度集成。

0 次阅读2026/09/15 发布
DuckDB:高性能进程内分析型 SQL 数据库 来源图片

社区作者 · 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 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

  1. 常规安装:来源页面未给出具体安装命令,仅说明“如需安装 DuckDB,请参阅官方 installation 页面获取安装说明”,因此具体安装步骤需在官方安装页面核验。

对于 CSV 文件与 Parquet 文件,只需在 FROM 子句中引用文件即可完成数据导入: SELECT * FROM 'myfile.csv'; SELECT * FROM 'myfile.parquet'; 更多信息参见官方文档 Data Import 章节。

  1. 数据导入(安装后即可直接使用,无需额外导入工具):

前置准备:需要 CMake、Python 3 以及兼容 C++17 的编译器。 在仓库根目录执行:

  1. 从源码开发构建(来源明确给出的步骤,按顺序执行):
  • make:编译源码(release 构建)。
可复制命令
make debug:构建未优化的 debug 版本

,用于开发调试。

首次运行 / 修改后验证:

可复制命令
make unit 与 make allunit:在改动后验证版本是否正常工作

性能测试:

执行

可复制命令
BUILD_BENCHMARK=1 BUILD_TPCH=1 make 进行构建

  • 然后在根目录运行 ./build/release/benchmark/benchmark_runner 执行若干标准基准测试;
  • 基准测试细节参见官方 Benchmark Guide。
  1. 常见问题与进一步参考:
  • 构建或贡献相关问题请参考官方 Build Guide 与 Contribution Guide;
  • 支持渠道与版本生命周期信息参见官方 Support Options 页面与 endoflife.date 专页;
  • 使用方式问题请参考官方文档(含 SQL 介绍与参考手册)。

来源教程配图

DuckDB logo
配图 1 · DuckDB logo查看原图

适用场景

本地与单机场景下的快速分析型查询
直接对 CSV 文件执行 SQL 查询
直接对 Parquet 文件执行 SQL 查询
在 Python 工作流中嵌入分析数据库(与 pandas 深度集成)
在 R 工作流中嵌入分析数据库(与 dplyr 深度集成)
通过 Java
Wasm 等客户端在应用中集成分析能力
使用命令行 CLI 进行交互式数据分析
使用窗口函数
嵌套相关子查询与复杂类型(数组
结构体
映射)进行复杂分析