datachain-ai/datachain

The Context Layer for unstructured data: typed, versioned datasets over S3, GCS, Azure

DataChain – 非構造化データのためのバージョン管理・クエリ可能なデータセット用Pythonライブラリ

概要

  • S3、GCS、Azure、またはローカルディスクに保存されたファイルを、型付きでバージョン管理されたデータセットとして扱うPythonパッケージです。
  • 軽量なSQLiteベースの Dataset DB を構築し、スキーマ(Pydantic経由)、ファイルポインタ、リネージ、さらにはベクトル埋め込みを保存します。これにより、生ファイルを移動することなく、サブ秒単位でのフィルタリング、結合、集計、類似検索が可能になります。
  • オプションの Knowledge Base レイヤーは、このメタデータを人間やLLMエージェントが読めるmarkdownとしてエクスポートします。また、Skill を使用することで、Claude、Cursor、Codex、GitHub Copilot、Pi向けのデータ認識型エージェントハーネスをインストールできます。

主要コンポーネント

コンポーネント 役割
Compute Engine ファイルに対する並列Python処理(非同期I/O、チェックポインティング、増分更新)。
Dataset DB Pydanticスキーマ、バージョン管理されたデータセット定義、ベクトルを保存。クエリはSQLiteに対して直接実行されます。
Knowledge Base エージェントやドキュメントに役立つ、データセットを記述する自動生成markdown。
Agent Harness / Skill read_storage、map、save などをLLMエージェントに公開し、データについて推論・操作できるようにします。
Studio (cloud service) 共有データセットレジストリ、分散コンピューティング、アクセス制御、リネージ可視化のためのオプションのホスト型UI。

典型的なワークフロー

  1. ストレージの読み込み – dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True) でファイルの遅延コレクションを作成します。
  2. スキーマの定義 – Pydanticモデルを記述します。マッピング関数の戻り値の型がデータセットのスキーマになります。
  3. マッピング / 変換 – 各ファイルにPython UDF (.map(info=get_info)) を適用します。DataChainはバッチ処理、チェックポインティングを管理し、新規または変更されたファイルのみを再処理します。
  4. 保存 – .save('pets_images') で結果をバージョン管理されたデータセット (pets_images@1.0.0) として登録します。
  5. クエリ – 流暢なAPI (filter, mutate, order_by, limit) を使用して、Dataset DB上で直接、高速なSQLライクな操作やベクトル類似検索を実行します。
  6. ナレッジベース – dc-knowledge 生成を実行し、LLMエージェントが読み取れるmarkdownを作成します。
  7. エージェント主導のパイプライン – インストールされたスキルにより、LLM(例:Claude Code)が自然言語プロンプトからパイプライン全体を生成できます。

なぜ重要なのか

  • データコピー不要 – データセットはメタデータとポインタのみであり、生ファイルはクラウドバケット内に留まります。
  • バージョン管理と再現性 – パイプラインの各ステップは名前付きの不変なデータセットバージョンであり、ロールバックや結果の再利用が容易です。
  • スケーラブルなクエリ – SQLiteベースのエンジンにより、メモリ内のpandasでは不可能な数百万行のフィルタリングや結合をミリ秒単位で実行できます。
  • エージェント対応 – スキルがLLMエージェントとデータを橋渡しし、データセットスキーマの理解、結合の実行、コードの自動生成を可能にします。

インストール

pip install datachain
# optional agent skill
# datachain skill install --target claude   # also cursor, codex, copilot, pi

例(品種、マスク、サイズでフィルタリングされた、参照画像に似た犬の検索) – READMEでは、Claude Codeがタスクを分解し、中間データセットを構築し、ランク付けされた一致リストを返す、プロンプトから結果までの完全なフローが示されています。

ターゲットユーザー

  • 大規模な非構造化メディアコレクションに対して再現可能なパイプラインを必要とするデータエンジニアおよびMLチーム。
  • データを移動させることなく実データと対話する必要があるLLM駆動型エージェントを構築するAI開発者。
  • クラウドオブジェクトストレージにデータを保存し、軽量でバージョン管理されたデータカタログを求める組織。

リンク

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト