- Respanは、1日5,000万件に及ぶイベントを扱う大規模なLLMオブザーバビリティを、ClickHouse Cloudで支えています。
- 毎秒50〜100件の書き込みでPostgresが限界に達した後、同チームはインジェストと分析基盤をClickHouse Cloudへ移行しました。
- インクリメンタルマテリアライズドビューとトレース集計により、データセットが数十億行規模に拡大してもダッシュボードは高速なまま維持されています。
まとめ
Respan(旧称 Keywords AI)は、オブザーバビリティを組み込んだAIゲートウェイを構築しています。本番環境で稼働するLLMアプリケーション向けに設計されたこのプラットフォームは、複数のモデルやプロバイダーにまたがってリクエストをルーティングしながら、パフォーマンス、評価、プロンプト管理に関する可視性をチームに提供します。
YC W24バッチに参加した同社は、数千人の開発者から支持を集めて急成長し、トラフィックは1日数百リクエストから1日約3,000万リクエスト、月間では10億リクエスト近くにまで拡大しました。実際のLLM呼び出しに加え、キャッシュされたリクエストもオブザーバビリティデータを生成するため、全体のイベント量はさらに大きくなります。
現在、Respanは1日あたり約5,000万件のイベントを処理しています。この規模では、アクティビティが途切れることはありません。「今この瞬間にも、何千ものイベントが我々のパイプラインを流れています」と、共同創業者兼CTOのRaymond Huang氏は2025年12月にサンフランシスコで開催されたミートアップで語っています。
このミートアップでRaymond氏は、Respanのバックエンドがシンプルなpostgresベースの構成から、現在では高スループットなインジェスト、高速な分析、本番品質のLLMオブザーバビリティを支えるClickHouse Cloudへどのように進化したのかをライブデモで紹介しました。
PostgresからClickHouseへ #
Respanは、真のスタートアップ精神を持つ少数精鋭のチームです。「我々は速く動き、速く作る」とRaymond氏は語ります。当初、プラットフォームのバックエンドはその身軽な発想を反映したもので、Postgresを裏に持つDjangoアプリが、届いたリクエストを逐次ログとして記録する構成でした。「リクエストが1つ届き、Postgresに入り、そこに保存される」とRaymond氏は説明します。「それだけのシンプルな構造です」
ボリュームが小さいうちはこのアプローチで問題ありませんでした。システムは秒間数十イベントを難なく処理し、メンタルモデルも理解しやすいものでした。しかしワークロードが秒間50〜100リクエストの範囲に達し始めると、トランザクション同士が競合し始めました。
Postgresは正しく振る舞っており、整合性を保つために処理を直列化していただけです。しかし継続的な書き込み負荷の下では、各insertがトランザクションを完了させ、write-ahead logに記録されてからでなければ後続の書き込みが進められません。Raymond氏の言葉を借りれば、「処理が積み上がり始め、そこからは急速にエスカレートしていく」のです。
Postgresのトランザクションモデルと、大規模なリアルタイムオブザーバビリティに求められる要件との間には、明らかなミスマッチがありました。既存構成からこれ以上絞り出すという選択肢はなく、チームはより良い解決策を探すことを決断しました。その答えがClickHouse Cloudでした。
「我々はClickHouseへの移行を決めました」とRaymond氏は語ります。「これは大きく効きました。以前は対応できなかったスケールも、今では容易に処理できます」
継続的なインジェストを支えるログ設計 #
ClickHouseへの移行を始めるにあたり、チームはスキーマを正しく設計することに注力しました。書き込みボリュームを扱えることは分かっていましたが、それを実現するにはデータモデルが適切に対応している必要があったのです。
ログはコンパクトかつ構造化された形になるよう設計され、実際にクエリや集計の対象となるフィールドのみを格納しました。レイテンシ、スループット、ルーティング時間、コストといったメトリクスやメタデータは、分析ワークロードに最適化された型付きのカラムとして書き込まれます。
プロンプト入力やモデル出力といったより大きなテキストフィールドは、インジェスト前に意図的に切り詰められます。目的はやり取りのすべてを記録することではなく、行のサイズを無制限に膨らませることなく、デバッグや分析に十分なコンテキストを保持することです。
「メモリ効率が重要なので、大きなデータはClickHouseに保存しません」とRaymond氏は語ります。「メッセージを小さく保ち、インジェストレートを可能な限り高く維持できるように、最小限の情報だけを保存しています」
マテリアライズドビューによる高速分析の構築 #
大規模なデータインジェストが価値を持つのは、分析レイヤーがそのスピードに追いつけてこそです。Respanの顧客は、ダッシュボードが素早く読み込まれ、よく使われるデータの切り口を遅延なく扱えることを期待しています。これを実現するため、チームはインクリメンタルマテリアライズドビューを全面的に活用しています。
生ログはまず組織単位でパーティション化された分単位のウィンドウに集計され、その後カスケード式に時間単位のロールアップへと展開されます。各マテリアライズドビューは、組織とAPIキー、顧客識別子、環境、デプロイメント、モデルなど特定のディメンションを対象としており、ダッシュボードは生ログをスキャンする代わりに事前集計済みのデータをクエリします。
「このやり方なら、すべての集計を再計算する必要がありません」とRaymondは言います。「これでクエリ処理能力をかなり節約できます。」
早期に集計し再計算を抑えることで、チームはクエリコストを予測可能に保ち、データセットが増えてもフルテーブルスキャンを回避できます。「この分割により、データを簡単に取得して最適なパフォーマンスを得られます」とRaymondは付け加えます。
リアルタイムメトリクスとユーザーメタデータの分離 #
すべてのクエリがリアルタイムである必要はありません。一部のダッシュボードでは、集計メトリクスと並んで、顧客ID、名前、メールアドレスといったユーザーレベルのメタデータをソート・結合する必要があります。すべてのメタデータカラムでグループ化すると、特に行数が増えるにつれてクエリは重く高コストになります。
代わりにチームはこの分析レイヤーでリフレッシュ可能なマテリアライズドビューを使用しています。これらのビューは必要なフィールドを集計し、挿入のたびに更新するのではなく、一定の間隔(Raymondのデモでは10分ごと)で再計算されます。
「ユーザーデータはリアルタイムである必要はありません」とRaymondは説明します。高頻度のメトリクスとわずかに遅延したメタデータを分離することで、システムは広範なGROUP BY句を避け、結合を効率的に保てます。
すべては時間でパーティション化されたMergeTreeテーブルに書き込まれるため、クエリは結合前に積極的にフィルタリングできます。その結果、行動メトリクスとユーザー属性を組み合わせる場合でも、高速かつソート可能なダッシュボードが維持されます。
高コストな整合処理を必要としないトレース #
複雑なLLMワークフローの理解はログだけでは完結しません。Respanは、個々のリクエストがシステム内をどう流れるかを示すトレース機能もサポートしています。各トレースはスパンで構成されますが、分散環境ではこれらが順不同で到着することがあります。
厳密なインジェスト順序を強制する代わりに、システムはデータ内に関係性を直接エンコードします。スパンは親スパンを参照し、その関係はクエリ時に分析的に解決されます。「最終的にデータベースの中で出会えるなら、すべては非同期で構わないのです」とRaymondは語ります。書き込み時の調整を避けることで、パイプライン全体を完全に非同期に保てます。
トレース集計の構築においても、チームは同様に慎重です。FINAL修飾子の使用は避けています。これを使うとClickHouseがクエリ時にテーブルの大部分を再計算・マージする可能性があるためです。代わりに、スパン数、トークン使用量、コスト、エラー率などのトレースメトリクスは集計関数を使って計算されます。argMaxのような関数を使うことで、高コストなフルテーブル処理を発生させずに最新の時点値を選択できます。結果として、スパン量が増えてもトレース分析は予測可能でメモリ効率の良いものに保たれます。
大規模運用が容易なシステム #
Respanのシステムが拡大するにつれて、運用のシンプルさはますます重要になってきました。Raymondによれば、ClickHouseの最大の強みの一つはインデックスモデルのシンプルさであり、これによりエンジニアが日々管理すべき事項が減ります。
「これのおかげで、インデックスツリー構造を気にせずに非常に高速にソートできます」と彼は言います。「気にすべきはパーティションが正しいかどうかと、クエリ対象のデータがメモリに収まるかどうかだけです。収まらなければインスタンスをスケールするだけ。それくらいシンプルなんです。」
この予測可能性は、ログ検索のような日常的なワークフローにも及びます。高度な全文検索機能に頼らずとも、単純な文字列クエリで数千万行を1秒未満でスキャンできます。Raymondは「これはかなり印象的です」と語ります。
現在、ClickHouseはインジェストから顧客向け分析まで、Respanのオブザーバビリティスタック全体を支えています。最も重要なのは、利用量の増加に伴うアーキテクチャの度重なる見直しを強いることなく、製品とともにスケールできる堅固な基盤を提供してくれることです。
「ClickHouseチームに大きな感謝を捧げます」とRaymondは語ります。「私たちはLLMオブザーバビリティ分野で最高の製品の一つを構築しました。これはClickHouseのサポートなしには実現できませんでした。」



