主な機能
- Pandas互換性: 209個の pandas DataFrame メソッド、56個の
.strメソッド、42以上の.dtメソッド - SQL 最適化: 操作は自動的に最適化された SQL クエリにコンパイルされます
- 遅延評価: 結果が必要になるまで操作の実行が保留されます
- 630以上の API メソッド: データ操作に対応する包括的な API
- ClickHouse 拡張機能: pandas では利用できない追加のアクセサ (
.arr、.json、.url、.ip、.geo)
アーキテクチャ
- 遅延オペレーションチェーン: 操作は記録されますが、すぐには実行されません
- スマートなエンジン選択: QueryPlanner が各セグメントを最適なエンジンに振り分けます (SQL には chDB、複雑な処理には Pandas)
- 中間キャッシュ: 各ステップの結果をキャッシュすることで、反復的な探索を高速化します
Pandasからのワンライナーでの移行
パフォーマンス比較
| 操作 | Pandas | DataStore | 高速化率 |
|---|---|---|---|
| GroupBy count | 347ms | 17ms | 19.93x |
| 複雑なパイプライン | 2,047ms | 380ms | 5.39x |
| Filter+Sort+Head | 1,537ms | 350ms | 4.40x |
| GroupBy agg | 406ms | 141ms | 2.88x |
DataStore を使うべき場合
- 大規模なデータセット (数百万行) を扱う場合
- 集計や groupby 操作を行う場合
- ファイル、データベース、またはクラウドストレージのデータをクエリする場合
- 複雑なデータパイプラインを構築する場合
- より高いパフォーマンスで pandas API を使いたい場合
- SQL を直接書きたい場合
- クエリの実行を細かく制御する必要がある場合
- pandas API では提供されていない ClickHouse 固有の機能を使う場合
機能比較
| Feature | Pandas | Polars | DuckDB | DataStore |
|---|---|---|---|---|
| Pandas API 互換性 | - | 一部 | なし | 完全 |
| 遅延評価 | なし | あり | あり | あり |
| SQL クエリのサポート | なし | あり | あり | あり |
| ClickHouse 関数 | なし | なし | なし | あり |
| String/DateTime アクセサ | あり | あり | なし | あり + 拡張機能 |
| Array/JSON/URL/IP/Geo | なし | 一部 | なし | あり |
| ファイルへの直接クエリ | なし | あり | あり | あり |
| クラウドストレージのサポート | なし | 限定的 | あり | あり |
API 統計
| カテゴリ | 件数 | 対応範囲 |
|---|---|---|
| DataFrame メソッド | 209 | pandas の 100% |
| Series.str アクセサ | 56 | pandas の 100% |
| Series.dt アクセサ | 42+ | 100% 以上 (ClickHouse 独自の拡張を含む) |
| Series.arr アクセサ | 37 | ClickHouse 固有 |
| Series.json アクセサ | 13 | ClickHouse 固有 |
| Series.url アクセサ | 15 | ClickHouse 固有 |
| Series.ip アクセサ | 9 | ClickHouse 固有 |
| Series.geo アクセサ | 14 | ClickHouse 固有 |
| API メソッド総数 | 630+ | - |
はじめに
- クイックスタート - インストールと基本的な使い方
- Pandas からの移行 - ステップごとの移行ガイド
API リファレンス
- ファクトリメソッド - さまざまなソースからDataStoreを作成
- クエリ構築 - SQLスタイルのクエリ操作
- Pandas互換性 - pandas互換の全209メソッド
- アクセサ - String、DateTime、Array、JSON、URL、IP、Geoのアクセサ
- 集計 - 集計関数とウィンドウ関数
- I/O操作 - データの読み取りと書き込み
高度なトピック
設定とデバッグ
- 設定 - すべての設定オプション
- パフォーマンスモード - 最大スループットを実現するSQL優先モード
- デバッグ - Explain、プロファイリング、ロギング
Pandas ユーザーガイド
- Pandas Cookbook - よく使われるパターン
- Key Differences - pandas との主な違い
- Performance Guide - パフォーマンス最適化のヒント
- SQL for Pandas Users - pandas の操作を支える SQL を理解する
簡単な使用例
次のステップ
- DataStoreは初めてですか? クイックスタート Guideから始めましょう
- pandasから移行する場合は? Migration Guideをお読みください
- さらに詳しく知りたいですか? API Referenceをご覧ください