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 是一个非常轻便顺手的选择。

相关推荐
dishugj2 小时前
Oracle物理体系结构
数据库·oracle
北亚数据恢复2 小时前
【数据库数据恢复】NDF文件变0KB、数据库损坏?超大数据库数据恢复案例
数据库·oracle
数据技术说2 小时前
数据库缓存架构深度解析:命中率、一致性、多层缓存管理
数据库·架构
Tangyuewei2 小时前
Agent 别裸奔进生产:先搭架构、可观测、人审三道闸
人工智能·ai编程
用户4015823324623 小时前
不开编辑器,在飞书里也能找 WES Code 的 AI 干活
人工智能·ai编程
CJi0NG3 小时前
【自用】MySQL-多表查询
数据库·mysql
雨落在了我的手上3 小时前
MySQL数据库基础(12):事务
数据库·mysql
D姐聊门店3 小时前
门店收银系统断网兜底怎么设计:本地账本、离线续传与日终对账的工程实现
数据库·saas