DataStore が高速な理由
1. SQL プッシュダウン
2. カラムプルーニング
3. 遅延評価
ベンチマーク: DataStore と pandas
テスト環境
- データ: 1,000万行
- ハードウェア: 一般的なノートPC
- ファイル形式: CSV
結果
主なポイント
- GroupBy 操作: DataStore は最大 19.93 倍高速
- 複雑なパイプライン: DataStore は 5〜6 倍高速 (SQL プッシュダウンの効果)
- 単純なスライス操作: 性能は同程度で、差はごくわずか
- 最適なユースケース: groupby/aggregation を含む複数ステップの処理
- ゼロコピー:
to_df()ではデータ変換のオーバーヘッドが発生しない
DataStore が効果を発揮するケース
高負荷な集計処理
複雑なパイプライン
大容量ファイルの処理
複数カラムの操作
pandas と同程度の性能になる場合
小規模なデータセット (1,000行未満)
基本的なスライス操作
カスタム Python のラムダ関数
重要DataStore が「遅い」ケースでも、通常、パフォーマンスは pandas とほぼ同等 で、実用上の差はほとんどありません。複雑な操作では、DataStore の利点がこうした限定的なケースを大きく上回ります。実行を細かく制御する方法については、実行エンジンの設定 を参照してください。
ゼロコピー DataFrameインテグレーション
to_df()は実質的にコストがかからず、シリアライゼーションやメモリコピーも発生しません- pandas の DataFrame から DataStore を作成する処理は瞬時に完了します
- メモリは DataStore と pandas のビューの間で共有されます