DuckDB 是一款进程内的分析型数据库

DuckDB 是一款进程内的分析型数据库 ,常被称为"分析领域的 SQLite"-7-10。它和你刚才了解的 Parquet 关系很密切,经常搭配使用。

它解决什么问题

传统的分析工具(如 Pandas)在处理几 GB 数据时还行,数据再大就容易内存不够或变慢。而大数据方案(如 Spark)又太重,需要集群和复杂配置。DuckDB 卡在中间:单机就能跑,但性能很强 ,官方提到可以在笔记本上处理数百 GB 数据-2。

核心特点

  • 进程内运行 :没有独立的服务器进程,直接嵌在你的 Python、R 或 Java 程序里,像调用一个库一样简单-4-6。安装通常就是 pip install duckdb-10。

  • 列式存储 :和你刚了解的 Parquet 类似,DuckDB 底层也是按列存的,查询时只读需要的列,速度快、压缩率高-9。

  • 直接查文件 :这是它和 Parquet 结合最紧的一点。你不需要先把 Parquet 文件导入数据库 ,DuckDB 可以直接用 SQL 查询本地的 Parquet、CSV、JSON 文件,甚至 S3 上的数据-1-5。

  • 单文件数据库 :如果你需要持久化存储,整个数据库就是一个文件 ,方便复制和携带-9。

和 Parquet 搭配使用

你可以把 DuckDB 想象成一个临时的 SQL 查询引擎,专门用来快速分析散落在磁盘上的 Parquet 文件。

比如,你有一堆 Parquet 日志文件,想统计某个字段的分布,不需要写复杂的 Spark 任务,在 Python 里几行代码就能直接用 SQL 查:

复制代码
import duckdb

# 直接对 Parquet 文件跑 SQL,无需导入
duckdb.sql("""
    SELECT city, count(*) 
    FROM 'logs/*.parquet' 
    GROUP BY city
""").show()

所以,如果你手头有 Parquet 数据要做快速分析,DuckDB 是一个非常轻便顺手的选择。

相关推荐
Decay__2 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
java_logo2 小时前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更
小lu飞3 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
凤凰院凶涛QAQ4 小时前
《MySQL内核拆解:从SQL到InnoDB》(四) : 联合查询 & 视图
数据库·sql·mysql
码农小河664 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
张小姐的猫4 小时前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节
李溪白6 小时前
篇四:tasks.md —— 把蓝图拆成 AI 可执行的施工单
ai编程
AI入职记6 小时前
Spring AI 结构化输出:结构 100% 通过,严格准确率只有 57%
后端·ai编程
AI狂想7 小时前
给编程 Agent 一份跟着仓库走的记忆
ai编程
程语AI7 小时前
RAG 查询扩展实战:HyDE 与多 query 改写怎么选、怎么组合
ai编程