ClickHouse と Langfuse の比較
どちらも可観測性 / 評価に分類しています。数値はGitHub APIから取得したもので、評価は本サイトによるものです。
基本情報の比較
| 基本情報の比較 | ClickHouse | Langfuse |
|---|---|---|
| ライセンス | Apache-2.0 | MIT |
| 言語 | C++, Python | TypeScript, Python |
| 提供形態 | セルフホスト / ローカル実行 / マネージドクラウド | セルフホスト / マネージドクラウド |
| 成熟度 | 安定 | 安定 |
| スター | 49.3k | 33.2k |
| 直近7日間のスター増加数 | — | +7 ★ |
| フォーク | 8.8k | 3.6k |
| オープンIssue | 6.9k | 781 |
| 最終コミット | 2026年8月16日 | 2026年8月15日 |
| 開発状況 | 活発 | 活発 |
それぞれの位置づけ
ClickHouse
追記が中心で値の種類が多いデータ——モデル呼び出しごとに1行を記録し、後からモデル名やコスト、エラーで絞り込む——に向いた列指向エンジンです。Langfuseは2024年12月にトレースの保存先をPostgreSQLからClickHouseへ移し、2026年1月にはClickHouseがLangfuseを買収したため、セルフホストの可観測性基盤を組むと下層にこれが入る構成が増えています。一方でトランザクション処理には向かず、更新や削除は行の書き換えではなく列パート単位の再作成になるため、アプリケーションの状態を書き込む先ではなく、エージェントの実行記録が着地する場所として扱ってください。
詳細を見る →Langfuse
エージェントが実際に何をしたか——各呼び出し、ツール実行、コスト——を記録し、そのトレースを評価用データセットへ変換できます。マネージド版とDocker Composeでセルフホストする版が同一コードベースのため、どちらの方向にも移行コストが低いのが利点です。一部のエンタープライズ機能はMITのコア部分に含まれないため、必要な機能の提供範囲を事前に確認してください。
詳細を見る →できること
ClickHouse
- モデル呼び出し1回を1行として保存 — 列指向のため、モデル名やコスト、エラー状態で絞り込むクエリは該当する列だけを読み、数MBに及ぶ入出力の本文はディスクに残ります。書き込みも1行ずつではなく大きなバッチを取り込んで背後で統合する設計で、キューに溜めてから流すトレース収集の書き込み方と噛み合います。
- Langfuseの下層をそのまま使う — Langfuseは2024年12月にトレースの保存先をPostgreSQLからClickHouseへ移し、2026年1月16日にClickHouseがLangfuseを買収しました。買収の発表では、コア機能はMITライセンスのまま本番規模のセルフホストが可能だと明言されています。ClickHouse自身のOpenTelemetry準拠の可観測性スタックであるClickStackも同じエンジン上で動きます。
- ベクトル検索用のDBを別に建てない —
vector_similarityインデックスはArray(Float32)、Array(Float64)、Array(BFloat16)の列にHNSWグラフを構築し、距離関数はL2Distance、cosineDistance、dotProductから選べます。バージョン25.8以降で利用でき、検索時にはインデックス全体をディスクからメモリへ読み込む必要があるほか、構築コストが挿入とマージを遅くします。 - 絞り込むと全件走査に落ちる — メタデータによる事前絞り込みは公式ドキュメント自身が未解決の問題だと述べており、ClickHouseは厳密な近傍探索へフォールバックします。事後絞り込みの場合は、候補が
WHERE条件を満たさなかった分だけLIMITで要求した件数に届かないことがあります。大規模なコレクションを狭い条件で絞り込む用途が中心なら、専用のベクトルストアのほうが適しています。 - MCP経由でエージェントに問い合わせさせる — ClickHouseは別リポジトリで
mcp-clickhouseを公開しており、list_databases、list_tables、run_queryに加え、組み込みエンジンchDB向けのツールを提供します。既定では読み取り専用で、書き込みはCLICKHOUSE_ALLOW_WRITE_ACCESS=true、DROPとTRUNCATEはさらに別のフラグを立てない限り実行できません。
Langfuse
- 関数単位でトレースを仕込む — OpenAI SDKの代わりにlangfuse.openaiをimportすると、OpenAIへの呼び出しがモデルパラメータ込みで記録されます。トレースの入れ子はREADMEのmain()とstory()のように@observe()を付けた関数ごとに作られるため、検索処理やエージェントの処理を残したい場合はその関数にも@observe()を付けます。
- プロンプトをコードの外で管理 — Prompt Managementでプロンプトを一元管理し、バージョンを追跡できます。サーバー側とクライアント側の両方でキャッシュが効くため、最新版を取得してもアプリのレイテンシは増えません。
- トレースを評価データセットへ — Datasetsでリリース前テスト用のベンチマークを作り、LLM-as-a-judge、コード評価器、手動ラベリング、ユーザーフィードバックで採点します。
- 失敗した出力をPlaygroundで再試行 — トレース画面で問題のある結果を見つけたら、そのままLLM Playgroundへ移動し、プロンプトやモデル設定を変えて試せます。
- 自社インフラでの運用 — ローカルはdocker compose up、本番はHelmチャートによるKubernetes構成が推奨で、AWS・Azure・GCP向けのTerraformテンプレートも用意されています。