七万号·数据平台实战手记

Back

① 标题党#

主标题DuckDB 的文件怎么这么小?压缩也有方法论 备选A数据没少,占用却少一大截,DuckDB 存盘有讲究 备选B(短视频)小文件,装大智慧

② 开场钩子#

我导了 100 万行数据进 DuckDB,存盘一看,文件小得不像话。数据没丢,却省了这么多——它压缩有一套。

③ 主角特性:压缩 / 列式存储收益#

  • 列式存储把同类型数据放一起 → 高重复度 → 压缩率极高。
  • 支持多种压缩(ZSTD 等),配合字典/游程编码,数字和枚举类列压缩尤其夸张。
  • 查询时对压缩数据尽量”不解压就过滤”,省 IO 又省 CPU。

意义:分析查询吞吐翻倍 + 磁盘占用腰斩。受限环境/磁盘紧张时,DuckDB 是救星。

④ 最小可复现#

CREATE TABLE t AS SELECT i % 100 AS kind, i FROM range(1000000) t(i);
COPY t TO 't.parquet';   -- 高重复列压缩惊人
-- 对比:同样数据行式存 vs 列式压缩后的大小
sql

⑤ 结论#

DuckDB 文件小,不是偷数据,是把”重复”压缩到位。磁盘受限时,这种空间魔法尤其珍贵。

⑥ 配图脚本#

列式压缩示意 / 压缩前后大小对比 / 丢数据/原数据对比 / 结论卡


系列总览(全部完成)#

#标题党主题细粒度特性
01快得离谱列存 + 向量化
02一个文件一个库嵌入式 / 单文件
03连 CPU 缓存都算计缓存局部性 / 批处理
04一张 SQL 查遍所有库联邦查询 / attach
05脏乱差也能存VARIANT 半结构化
06库不够用自己加轮子扩展机制 / TableFunction
07CONNECT 革别人命DuckDB as Server / Quack
08空间魔法压缩 / 列式收益

每篇含:标题党(3版) + 30s 钩子 + 主角特性 + 最小可复现 SQL + 结论金句 + 5 帧配图脚本。 素材多来自你做 DuckDB 的真实经历(联邦查询、http-json 扩展、v2.0 畅想)——第 4/6/7 篇是你自己的实证。

存储与压缩:百万行秒出,DuckDB 的空间魔法
https://realcpf.tech/blog/duckdb-08
Author 刘佳成
Published at 2026年9月3日