互动演示

为什么用 DuckDB:不用先把数据全搬进内存

结论先说:两种方式读的是同一批 Parquet,Pandas 常见写法会先把数据整理成一张大表塞进内存, DuckDB 是边扫描边聚合,只把最终的小结果表交给你——仓库里的文件越多、每个文件越大,这个差距越明显。

查询目标不变:统计仓库里每个 symbol 的行数、最早/最晚日期——对应 DataManager.query() 里那条 GROUP BY symbol 的真实查询。拖下面两个滑块, 看两种方式为了拿到同一份统计结果,分别要处理多少行数据。
今天案例里是 4 个期货主力连续合约,往右拖模拟仓库越存越多标的。
左端接近日线(今天案例 242 行/年),右端接近 5 分钟线(16,554 行/年)。
Pandas:先搬进内存的总行数
DuckDB:最终返回的结果行数