chdb-datastore
`import chdb.datastore as pd` と記述するだけで pandas と同じ API のまま ClickHouse の高速エンジンが使えるライブラリです。大規模データで10〜100倍の高速化を実現し、MySQL・PostgreSQL・S3・MongoDB・Iceberg・Delta Lake など16種類以上のデータソースや Parquet・CSV・JSON・Arrow など10種類以上のファイル形式をまたいだ結合クエリにも対応します。pandas コードの高速化、リモートDBやクラウドストレージのDataFrame操作、異なるソース間のデータ結合を行いたい場合に活用してください。
description の原文を見る
>- Drop-in pandas replacement with ClickHouse performance. Use `import chdb.datastore as pd` (or `from datastore import DataStore`) and write standard pandas code — same API, 10-100x faster on large datasets. Supports 16+ data sources (MySQL, PostgreSQL, S3, MongoDB, ClickHouse, Iceberg, Delta Lake, etc.) and 10+ file formats (Parquet, CSV, JSON, Arrow, ORC, etc.) with cross-source joins. Use this skill when the user wants to analyze data with pandas-style syntax, speed up slow pandas code, query remote databases or cloud storage as DataFrames, or join data across different sources — even if they don't explicitly mention chdb or DataStore. Do NOT use for raw SQL queries, ClickHouse server administration, or non-Python languages.
SKILL.md 本文
chdb DataStore — より速い Pandas です
キーコンセプト
# これを:
import pandas as pd
# こう変更:
import chdb.datastore as pd
# それ以外は全く同じです。
DataStore は 遅延評価される ClickHouse バックエンドの pandas 互換ライブラリ です。既存の pandas コードはそのまま動作しますが、操作は最適化された SQL にコンパイルされ、結果が必要になったとき (例: print()、len()、反復処理) に実行されます。
pip install chdb
デシジョンツリー: 適切なアプローチを選択
1. 「ファイル/データベースを持っていて、pandas で分析したい」
→ DataStore.from_file() / from_mysql() / from_s3() など
→ references/connectors.md を参照
2. 「異なるソースのデータを結合する必要がある」
→ 各ソースから DataStore を作成し、.join() を使用
→ examples/examples.md #3-5 を参照
3. 「pandas コードが遅すぎる」
→ import chdb.datastore as pd — 1 行変更して、あとはそのまま
4. 「生の SQL クエリが必要」
→ chdb-sql スキルを使用してください
あらゆるデータソースに接続 — 統一されたパターン
from datastore import DataStore
# ローカルファイル (自動検出: .parquet, .csv, .json, .arrow, .orc, .avro, .tsv, .xml)
ds = DataStore.from_file("sales.parquet")
# データベース
ds = DataStore.from_mysql(host="db:3306", database="shop", table="orders", user="root", password="pass")
# クラウドストレージ
ds = DataStore.from_s3("s3://bucket/data.parquet", nosign=True)
# URI ショートハンド — ソースタイプを自動検出
ds = DataStore.uri("mysql://root:pass@db:3306/shop/orders")
16+ 以上のソースと URI スキーム → connectors.md
接続後 — 完全な Pandas API
result = ds[ds["age"] > 25] # フィルタリング
result = ds[["name", "city"]] # 列を選択
result = ds.sort_values("revenue", ascending=False) # ソート
result = ds.groupby("dept")["salary"].mean() # グループ化
result = ds.assign(margin=lambda x: x["profit"] / x["revenue"]) # 計算済み列
ds["name"].str.upper() # 文字列アクセッサー
ds["date"].dt.year # 日時アクセッサー
result = ds1.join(ds2, on="id") # 結合
result = ds.head(10) # プレビュー
print(ds.to_sql()) # 生成された SQL を確認
209 の DataFrame メソッドをサポート。完全な API → api-reference.md
クロスソース結合 — キラー機能
from datastore import DataStore
customers = DataStore.from_mysql(host="db:3306", database="crm", table="customers", user="root", password="pass")
orders = DataStore.from_file("orders.parquet")
result = (orders
.join(customers, left_on="customer_id", right_on="id")
.groupby("country")
.agg({"amount": "sum", "rating": "mean"})
.sort_values("sum", ascending=False))
print(result)
結合の例をもっと見る → examples.md
データの書き込み
source = DataStore.from_mysql(host="db:3306", database="shop", table="orders", user="root", password="pass")
target = DataStore("file", path="summary.parquet", format="Parquet")
target.insert_into("category", "total", "count").select_from(
source.groupby("category").select("category", "sum(amount) AS total", "count() AS count")
).execute()
トラブルシューティング
| 問題 | 解決策 |
|---|---|
ImportError: No module named 'chdb' | pip install chdb |
ImportError: cannot import 'DataStore' | from datastore import DataStore または from chdb.datastore import DataStore を使用 |
| データベース接続がタイムアウト | ホストにポートを含める: host="db:3306" (host="db" ではなく) |
| 結合が空の結果を返す | キーの型が一致しているか確認 (どちらも int または両方 string); .to_sql() を使用して検証 |
| 予期しない結果 | ds.to_sql() を呼び出して生成された SQL を確認し、デバッグします |
| 環境チェック | python scripts/verify_install.py を実行 (スキルディレクトリから) |
参考資料
API リファレンス— DataStore メソッドの完全なシグネチャーコネクター— すべての 16+ データソース接続方法例— 実行可能な 10+ の例と期待される出力インストール検証— 環境検証スクリプト- 公式ドキュメント
注: このスキルは chdb DataStore の 使用方法 を教えます。 生の SQL クエリについては、
chdb-sqlスキルを使用してください。 chdb ソースコードへの貢献については、プロジェクトルートの CLAUDE.md を参照してください。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- clickhouse
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/clickhouse/agent-skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。