Python 嵌入式 OLAP 数据库:DuckDB

DuckDB 是一个近几年非常火的 嵌入式 OLAP 数据库,你可以把它看作是 “数据分析领域的 SQLite”。它特别适合在 单机/笔记本环境下做大规模数据分析


🦆 DuckDB 速览

📌 核心特点

  • 嵌入式:像 SQLite 一样,无需单独的服务进程,直接嵌入到应用或脚本里。
  • OLAP 优化:面向分析型场景(OLAP),列存储、向量化执行。
  • 零配置:下载即用,不需要复杂的配置。
  • 超快性能:在大表 JOIN、聚合、窗口函数上表现接近甚至优于 Spark/Pandas。
  • 兼容性强:支持 SQL 标准,能直接读写 Parquet、CSV、JSON,并且和 pandas、Arrow 无缝集成。

🔗 与常见工具对比

特性 DuckDB SQLite Pandas Spark
定位 嵌入式 OLAP 数据库 嵌入式事务型数据库 内存数据分析 分布式大数据计算
存储格式 列存储 行存储 内存 分布式文件系统
性能优化 向量化执行,SIMD 加速 简单执行引擎 单线程操作为主 分布式调度优化
数据规模 GB ~ TB 级别(单机内存+磁盘) MB ~ GB 内存受限 TB ~ PB(集群)
接口 SQL / Python / R SQL / Python Python API SQL / PySpark / Scala
典型场景 本地大数据分析、交互式查询、ETL 嵌入式事务、配置存储 数据探索、小规模分析 企业级大规模数据仓库

🛠️ 使用示例(Python)

import duckdb
import pandas as pd

# 创建一个内存数据库
con = duckdb.connect()

# 从 CSV 文件直接查询
df = con.execute("SELECT * FROM 'data.csv' WHERE amount > 100").df()

# 与 pandas 无缝结合
pdf = pd.DataFrame({
   
   
    "user": ["a", "b", "c"],
    "score": [10, 20, 30]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值