datachain-ai/datachain

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

DataChain – 非構造化データの「コンテキスト層」

何であるか – S3、Google Cloud Storage、Azure Blob、またはローカルファイルシステムに格納されたファイルを、型指定され、バージョン管理されたデータセットに変換するPythonライブラリ。データウェアハウスのようにクエリ可能なデータセットに変換できる。LLM駆動のエージェント(Claude、Cursor、Codex、Copilot、Pi)が、元のファイルを移動せずに、これらのデータセットを理解し操作できるようにする、軽量な「データハーネス」を追加する。

コアコンポーネント

コンポーネント 機能
コンピュートエンジン ファイル上で並列・非同期Python処理を実行。チェックポイント、インクリメンタル(デルタ)実行、およびDataChain Studio経由の分散実行をサポート。
データセットDB SQLiteバックエンドのストア。各データセットに対してPydanticスキーマ、バージョン、ラインレージ、ファイルポインタを記録。フィルタ、ジョイン、グループ化、ベクトル検索などのクエリは、このDB上でサブ秒単位で実行可能。数億行にも及ぶデータでも対応。
ナレッジベース (オプション) 自動生成されたmarkdown。すべてのデータセットとそのスキーマを説明。人間とLLMエージェントの両方で読み取り可能。
エージェントハーネス (オプション) 3つのレイヤーをLLMコード生成エージェントに接続するスキル。read_storagemapsaveなどの操作を呼び出し、結果を通常のPythonオブジェクトのように取得できる。

一般的なワークフロー

  1. 元データの読み込みdc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True) でファイルの遅延ビューを作成。
  2. スキーマの定義 – 必要なカラムを記述するPydanticモデル(例:ImageInfo)を記述。
  3. マップ/変換 – Python UDF(map(info=get_info))を適用。戻り値はモデル。DataChainは結果を新しい名前付きデータセット(pets_images@1.0.0)として保存。
  4. 保存.save('pets_images') でデータセットをデータセットDBに登録。自動的にバージョン管理される。
  5. クエリdc.read_dataset('pets_images').filter(...).to_pandas() またはベクトル検索ヘルパー(dc.func.cosine_distance)を使用して行を取得・ランク付け。
  6. インクリメンタル実行delta=True で新規追加ファイルのみ処理。バージョン番号が更新(@1.0.1@1.0.2…)され、変更のない行はスキップ。
  7. エージェント駆動パイプライン – スキルのインストール後(datachain skill install --target claude)、LLMにパイプライン全体の構築、ナレッジベースの生成、保存されたデータセットを使用したフォローアップ質問への回答を指示可能。

READMEで強調された主な機能

  • バージョン管理・型指定されたデータセット – パイプラインの各ステップで再現可能な名前付きデータセットが生成され、スキーマはSQLiteに保存。
  • 高速なサブ秒クエリ – ファイルの読み込みなしに、メタデータ上でフィルタ、ジョイン、集計、ベクトル類似性検索が実行可能。
  • チェックポイント対応パイプライン – クラッシュやバグがあっても、完全再実行を強制されず、最後に成功したバッチから再開可能。
  • エージェント統合 – Claude、Cursor、Codex、Copilot、Pi向けのスキルにより、LLMがナレッジベースを読み取り、DataChain操作をネイティブ関数のように呼び出せる。
  • スケーラブルなコンピュート – ローカルマルチコア非同期実行、またはDataChain Studio経由の分散ジョブ(GPUクラスタ、オンプレミスK8s、任意のクラウド)。
  • データ移動ゼロ – 元のバケットにファイルをそのまま残す。ローカルに保存するのは軽量なメタデータとオプションの埋め込み情報のみ。
  • ナレッジベース – 人間が閲覧可能な(Obsidian互換)データセットのmarkdown表現。エージェントが利用可能なデータを発見するための手段。

インストールとクイックスタート

pip install datachain                     # コアライブラリ
# オプション:LLMスキル(例:Claude用)
datachain skill install --target claude

READMEからの最小限の「エージェント駆動」例:

  1. S3から参照画像をコピー。
  2. Claude Code(または他の対応エージェント)を開く。
  3. 「この画像に似た犬を、品種、マスクの有無、幅でフィルタして探して」とプロンプト。
  4. エージェントがリクエストを分解し、埋め込みを実行、品種メタデータと結合、フィルタを適用、ランク付きテーブルを返却。すべて自動バージョン管理・保存されたデータセットを使用。

Studio – 共有・クラウドバックエンド実行

  • datachain auth login → ホステッドUIに認証。
  • datachain job run --workers 20 --cluster gpu-pool script.py で分散ジョブを送信。
  • UIではラインレージグラフ、データセットレジストリ、アクセス制御を表示。大規模医療フォーマット(DICOM、NIfTI、ポイントクラウド)もサポート。

誰が使うか

  • 大規模な画像/動画/音声コレクションに対して再現可能なデータパイプラインが必要な機械学習チーム。
  • 自社データを別ベクトルストアにコピーせずにクエリできるLLM拡張エージェントを構築する企業。
  • 数十億のファイルレベルメタデータと埋め込みを高速にSQL風に探索したい研究者。
  • バージョン管理・型指定されたデータセット、組み込みのラインレージ、インクリメンタル更新を求めるあらゆる組織。

さらに学ぶには

  • 完全なドキュメント: https://docs.datachain.ai/
  • アーキテクチャ図: docs/assets/harness.svg
  • コミュニティ: GitHub issues、メールサポート、Twitter @datachain_ai。

すべての記述はリポジトリのREADMEから直接引用。追加機能は推測されていない。

関連

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