DataStore 为何更快
1. SQL 下推
2. 列裁剪
3. 惰性求值
基准测试:DataStore 与 pandas
测试环境
- 数据量:1000 万行
- 硬件:标准笔记本电脑
- 文件格式:CSV
结果
关键结论
- GroupBy 操作:DataStore 最高快达 19.93 倍
- 复杂管道:DataStore 快 5–6 倍 (得益于 SQL 下推)
- 简单切片操作:性能相当,差异可忽略不计
- 最佳适用场景:带有 groupby/聚合的多步操作
- 零拷贝:
to_df()没有数据转换开销
DataStore 更具优势的场景
重度聚合
复杂管道
大文件处理
多列操作
pandas 何时表现相当
小型数据集 (少于 1,000 行)
基本切片操作
自定义 Python Lambda 函数
重要即使在 DataStore “较慢” 的场景下,其性能通常也与 pandas 不相上下——对实际使用来说,这种差异几乎可以忽略不计。与这些边缘情况相比,DataStore 在复杂操作中的优势要大得多。如需更细粒度地控制执行过程,请参阅执行引擎配置。
零拷贝 DataFrame 集成
to_df()几乎没有开销——无需序列化或复制内存- 从 pandas DataFrame 创建 DataStore 几乎是瞬时完成的
- DataStore 与 pandas 视图共享内存
优化建议
1. 为重负载启用性能模式
filter+groupby 工作负载,速度最高可提升 2–8 倍,并降低大型 Parquet 文件的内存占用。
完整详情请参见 Performance Mode。