DuckDB 是什么?
✅ DuckDB 是什么?
DuckDB 是一个 嵌入式的、面向分析型查询(OLAP)的关系型数据库,你可以把它理解为:
✅ “数据库界的 SQLite + 数据仓库能力”
✅ 在应用程序内直接运行,不需要独立服务
✅ 读写 Parquet/CSV 非常强
✅ SQL 兼容性好,性能接近甚至超过部分专用分析系统
比起传统的 MySQL、PostgreSQL 是 OLTP事务数据库,DuckDB 更像是小型分析数据库,适用于:
-
本地分析
-
数据科学
-
ETL/查询大型文件
-
内嵌在应用程序做快速数据分析
-
替代 pandas 加速数据处理
✅ DuckDB 的核心特点
| 特点 | 说明 |
|---|---|
| ✅ 嵌入式数据库 | 像 SQLite 一样,不需要 server,应用内就能跑 |
| ✅ 列式存储 | 适合分析型查询(扫描聚合速度快) |
| ✅ 读取文件超强 | 支持 CSV、Parquet、JSON、Arrow、SQLite、Postgres等远程表 |
| ✅ 极快的执行速度 | 内置向量化执行引擎,可多核 |
| ✅ 跨语言支持 | Python、C++、Java、Node.js、Go、R、Rust 全支持 |
| ✅ 事务、安全、持久化 | 虽然嵌入式,也有完整事务和持久化 |
| ✅ 不需要部署 | 拷贝一个 .dll/.so/.jar 就能用 |
✅ 适用场景
✅ 1. 数据科学 / 替代 pandas 加速分析
DuckDB 查询 Parquet 大文件可以比 pandas 快一个数量级:
import duckdb
duckdb.query("SELECT category, COUNT(*) FROM 'data.parquet' GROUP BY category")
无需把数据全部加载内存,直接在磁盘上分析。
✅ 2. ETL / 数据转换
比如把 CSV 转 Parquet:
COPY (SELECT * FROM 'input.csv') TO 'out.parquet' (FORMAT 'parquet');
✅ 3. 离线分析,本地 BI
-
和 Tableau、Power BI、Superset 等兼容
-
适合嵌入桌面工具、脚本、自动化任务
✅ 4. Excel+pandas 的替代工具
在 Excel 内嵌 DuckDB 分析百万行表格毫无压力。
✅ 5. 玩 Parquet、Lakehouse
DuckDB 可以像查询数据库一样,查询数据湖里的 parquet 分区。
✅ 例子:读取文件并分析
-- 查询 CSV
SELECT COUNT(*), AVG(price)
FROM 'sales.csv';-- 查询 Parquet
SELECT category, SUM(amount)
FROM 'data/*.parquet'
GROUP BY category;
⚡ 支持通配符、多文件并行扫描,和大数据查询体验类似。
✅ Python 中使用
import duckdbcon = duckdb.connect('mydb.duckdb')
df = con.execute("SELECT * FROM 'data.parquet' WHERE price > 100").df()
print(df)
输出可直接转 DataFrame。
✅ 性能对比(通俗理解)
| 系统 | 类型 | 启动/部署 | 大文件分析速度 |
|---|---|---|---|
| SQLite | 单机 OLTP | 快 | 慢,不适合分析 |
| MySQL / Postgres | OLTP 服务端 | 需要部署 | 一般 |
| DuckDB ✅ | 单机 OLAP | 无需部署 | 非常快 |
| ClickHouse | 分布式 OLAP | 重 | 更快(规模更大时) |
👉 小规模分析任务:DuckDB 更轻便、成本更低
👉 超大规模(数十亿、集群):ClickHouse、Presto、Spark 更适合
✅ 为什么它这么火?
✔ 数据科学社区认可
✔ 取代 pandas 做大数据处理
✔ 无需运维
✔ 类似 SQLite 的“分析版”
✔ 云厂商纷纷支持(Snowflake、Databricks 等)
✅ 总结
| 指标 | DuckDB 表现 |
|---|---|
| 易用性 | ⭐⭐⭐⭐⭐ |
| 部署成本 | 无需服务端 |
| 查询性能 | 强,对列式分析优化 |
| 数据源支持 | CSV、Parquet、Arrow、JSON、SQLite、Postgres… |
| 场景定位 | 本地分析、ETL、嵌入式数据仓库、替代 pandas |
如果你经常处理 CSV、Parquet、数据清洗、ETL、Python数据分析、报表生成、嵌入 BI 产品等,DuckDB 是现阶段最有性价比的工具之一。
