2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
简介 - 无需服务器的 SQL
Pandas 广泛用于数据分析,几乎每位数据分析师甚至数据工程师都利用它通过称为“数据框”的类表格数据结构进行更快的分析。其缺点在于,一旦数据量超过几 GB,其性能就会下降,而为快速分析启动 Postgres 或 Redshift 又显得过于繁重。DuckDB 通过零配置的列式 SQL 填补了这一空白。
入门指南 - 零配置,即时强大
DuckDB 是一个开源的联机分析处理数据库管理系统,专为分析设计,并可在与应用程序相同的进程中运行。
它轻量级,可以直接处理 CSV、Parquet 等格式的数据文件,无需服务器。
安装与首次查询
pip install duckdb - 无需开放端口,无需配置,无后台守护进程
内存数据库与持久化数据库 - 两种运行模式
内存模式
当创建 DuckDB 连接时未指定文件,数据库将完全驻留在随机存取存储器中。
import duckdb
con = duckdb.connect() # 或 duckdb.connect(':memory:')
- 所有数据存储在随机存取存储器中,不会向磁盘写入任何文件
- 由于没有输入/输出开销,读取/写入速度极快。
- 连接关闭时,数据将完全丢失。
- 不存在文件锁定或并发问题
持久化模式
当用户提供位置时,DuckDB 可以将结果以 .duckdb 格式写入磁盘。
con = duckdb.connect('my_database.duckdb')
- 表、模式和索引会被持久化保存。
- 使用带有压缩和缓冲输入/输出的列式存储格式
- 同一时间仅允许一个写入连接,但允许多个读取连接。
- 支持预写日志以实现崩溃恢复
强大模式
DuckDB 允许混合使用这两种模式,用户可以从内存模式开始,附加一个持久化数据库,或使用 复制/导出 将内存中的结果快照保存到磁盘。
con = duckdb.connect()
# 查询 CSV 文件,转换数据,将结果保存到持久化文件中
con.execute("""
COPY(SELECT region, SUM(sales) AS total FROM read_csv('data.csv')
GROUP BY region
)
TO 'results.parquet' (FORMAT PARQUET)
""")
用户既能获得加速流水线处理的内存处理速度,又拥有持久化保存的选项。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。