---
title: "ClickHouse Cloud がリアルタイム分析で選ばれる理由"
date: "2026-10-29T07:22:40.207Z"
author: "Tom Schreiber and Lionel Palacin"
category: "Engineering"
excerpt: "効率的なデータ準備、並列化されたクエリ処理、そしてエラスティックなスケーリングにより、ClickHouse Cloud がいかに最新データを素早く分析結果へと変えるかを解説します。"
---

# ClickHouse Cloud がリアルタイム分析で選ばれる理由

<style>
details.note-box {
  margin: 28px 0;
  background: #2B2B2B;
  color: #E2E8F0;
  border-left: 5px solid rgba(255,255,255,.1);
  border-radius: 12px;
}

details.note-box > summary {
  position: relative;
  padding: 18px 48px 18px 24px;
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  border-radius: 10px;
}

details.note-box > summary::-webkit-details-marker {
  display: none;
}

details.note-box > summary:hover {
  background: rgba(255,255,255,.05);
}

details.note-box > summary::after {
  content: "▶";
  position: absolute;
  right: 20px;
  color: #A0AEC0;
  font-size: 12px;
  transition: transform .2s;
}

details.note-box[open] > summary::after {
  transform: rotate(90deg);
}

details.note-box > .note-body {
  padding: 8px 24px 28px;
}

/* Comfortable line spacing */
details.note-box > .note-body > p,
details.note-box > .note-body li {
  font-size: 15px;
  line-height: 1.7;
}

/* Space between paragraphs */
details.note-box > .note-body > p {
  margin: 0 0 14px;
  padding: 0;
}

/* Larger breaks before main sections */
details.note-box > .note-body > p.note-heading {
  margin: 28px 0 8px;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .025em;
  color: #E2E8F0;
}

/* Smaller breaks before subsections */
details.note-box > .note-body > p.note-subheading {
  margin: 22px 0 8px;
  line-height: 1.5;
  color: #E2E8F0;
}

details.note-box > .note-body > .note-heading:first-child {
  margin-top: 0;
}

/* Consistent list spacing */
details.note-box > .note-body > ul {
  margin: 0 0 16px;
  padding: 0 0 0 22px;
}

details.note-box > .note-body li {
  margin: 0;
  padding: 0;
}

details.note-box > .note-body li + li {
  margin-top: 8px;
}

details.note-box > .note-body > :last-child {
  margin-bottom: 0;
}
</style>

<style id="article-heading-typography">
/* Article headings: retain semantic levels and generated anchors. */
article:has(style[id$="article-heading-typography"]) .rich-text > h3[id] {
  font-size: 28px;
  line-height: 1.25;
}
article:has(style[id$="article-heading-typography"]) .rich-text > h4[id] {
  font-size: 22px;
  line-height: 1.25;
}
@media (max-width: 767px) {
  article:has(style[id$="article-heading-typography"]) .rich-text > h3[id] {
    font-size: 24px;
  }
  article:has(style[id$="article-heading-typography"]) .rich-text > h4[id] {
    font-size: 20px;
    line-height: 1.3;
  }
}
</style>

## 概要

CostBench の測定では、ClickHouse Cloud は Snowflake、Databricks、BigQuery、Redshift Serverless と比較して、**エンドツーエンドの1ドルあたりの性能が 412 倍〜1,996 倍優れている**という結果が得られました。

本記事では、取り込みデータの準備から高速クエリ、エラスティックなスケーリングに至るまで、**ClickHouse Cloud の仕組みを図解で解説します**。これらのメカニズムがどのように互いを高め合っているのか、そして本番環境で運用しているユーザー企業の事例を交えながら、リアルタイムアプリケーションやエージェントで何が実現できるのかをご紹介します。

**本記事は、CostBench シリーズの最終回となります。**<br/>これまでの記事:[測定手法](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp) · [Snowflake 編](https://clickhouse.com/ja/blog/clickhouse-vs-snowflake-real-time-performance-per-dollar-jp) · [Databricks 編](https://clickhouse.com/ja/blog/clickhouse-vs-databricks-real-time-performance-per-dollar-jp) · [BigQuery 編](https://clickhouse.com/ja/blog/clickhouse-vs-bigquery-real-time-performance-per-dollar-jp) · [Redshift 編](https://clickhouse.com/ja/blog/clickhouse-vs-redshift-serverless-real-time-performance-per-dollar-jp)

## 「ClickHouse に匹敵するものは他にない」

Tesla のシニアスタッフソフトウェアエンジニアである Alon Tal 氏は、ClickHouse をこのように表現しています。[11日間の負荷テスト](https://clickhouse.com/ja/blog/how-tesla-built-quadrillion-scale-observability-platform-on-clickhouse-jp)において、Tesla は**毎秒 10 億行**を取り込み、累計で**1,000 兆行**以上を蓄積しました。

Cloudflare では、クエリ側でその規模の処理が行われています。エンジニアリング担当シニアディレクターの Jamie Herre 氏は、対象が**1 日分のイベントデータ(1,610 兆件のイベント)であっても丸 1 年分であっても、2 秒未満**で返るクエリを[実演しました](https://clickhouse.com/ja/blog/cloudflare-jp)。

どちらの事例でも、[分析パイプライン全体](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)における効率性が求められます。増加し続けるデータセットに対してクエリを実行し続けながら、届いたイベントを[即座に分析可能な状態](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)にしなければなりません。それらのイベントを整理し、最新のサマリーを維持すること自体にコストがかかり、各クエリに残される処理量もそれによって決まります。

<iframe src="/uploads/costbench_p06_01_fresh_data_path_query_work_balance_refresh_20261016_eea5bec61a.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

[CostBench](https://clickhouse.com/ja/blog/costbench-data-warehouse-cost-performance-jp) は、その準備処理とクエリ実行を合わせて測定します。**1,132 億行の株式市場気配値データ**を ClickHouse Cloud、[Snowflake](https://clickhouse.com/ja/blog/clickhouse-vs-snowflake-real-time-performance-per-dollar-jp)、[Databricks](https://clickhouse.com/ja/blog/clickhouse-vs-databricks-real-time-performance-per-dollar-jp)、[BigQuery](https://clickhouse.com/ja/blog/clickhouse-vs-bigquery-real-time-performance-per-dollar-jp)、[Redshift Serverless](https://clickhouse.com/ja/blog/clickhouse-vs-redshift-serverless-real-time-performance-per-dollar-jp) へストリーミングしながら、**取り込みと並行して分析クエリを実行**しました。そして、サマリーの鮮度、準備コスト、クエリコスト、クエリ実行時間を追跡しました。

> 4 つの比較すべてにおいて、ClickHouse Cloud は最も低い準備コスト、クエリコスト、および累積クエリ実行時間を達成しました。これらの優位性が組み合わさることで、**412 倍から 1,996 倍優れたエンドツーエンドのコストパフォーマンス**がもたらされました。

ベンチマークのコード、クエリ、構成、測定値、および結果を再現するための手順は、[CostBench リポジトリ](https://github.com/ClickHouse/CostBench/tree/main/full-path-realtime/quotes)で公開されています。

これまでの記事では、各プロバイダーのアーキテクチャに沿って結果を検証してきました。最終回となる本記事では、ClickHouse Cloud の内部構造に迫り、最新データが到着してから分析結果が返されるまでの流れを追います。**効率的な準備処理、並列化されたクエリ実行、Cloud のスケーリング**がどのように CostBench の結果を生み出し、リアルタイムアプリケーションやエージェントに何をもたらすのかを解説します。

## 比類のないエンドツーエンドのコストパフォーマンス

CostBench の[エンドツーエンドスコア](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)は、① 最新データの準備コストと ② クエリ処理コストを合算し、その合計に ③ 累積クエリ実行時間を掛け合わせたものです。値が小さいほど優れており、効率的な準備処理と高速なクエリ実行の双方が結果を改善します。

<iframe src="/uploads/costbench_p06_02_end_to_end_score_refresh_20261016_42b245db82.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

ClickHouse Cloud は、[Snowflake](https://clickhouse.com/ja/blog/clickhouse-vs-snowflake-real-time-performance-per-dollar-jp) 比で **412 倍**、[Databricks](https://clickhouse.com/ja/blog/clickhouse-vs-databricks-real-time-performance-per-dollar-jp) 比で **752 倍**、[BigQuery(Capacity)](https://clickhouse.com/ja/blog/clickhouse-vs-bigquery-real-time-performance-per-dollar-jp) 比で **438 倍**、[Redshift Serverless](https://clickhouse.com/ja/blog/clickhouse-vs-redshift-serverless-real-time-performance-per-dollar-jp) 比で **1,996 倍**優れたエンドツーエンドのコストパフォーマンスを達成しました。

<details class="note-box">
  <summary>公平な比較を維持するための取り組み(クリックして展開)</summary>
  <div class="note-body">
<p><strong>同一のワークロードと準備要件。</strong>すべてのシステムが同じデータを受け取り、同じスケジュールで同じクエリを実行しました。RAW データと日次の事前集計には、一致するソートキーまたはクラスタリングキーを使用しました。</p>
<p><strong>クエリコンピュート:可能な限り統一。</strong>一部のプラットフォームはコンピュートを動的に割り当てます。設定可能なサイズによって CPU 数が異なる場合や、同じコア数でも RAM 容量が異なる場合があります。有意義な一致が可能な箇所では、クエリコンピュートを揃えました。</p>
<p><strong>取り込みと準備:可能な限りコストを最小化。</strong>設定可能なサービスについては、キャリブレーション中に目標レートを維持しつつ、データをクエリ可能な状態に保てる最小の検証済み構成を採用しました。プラットフォーム側で取り込みやメンテナンスのコンピュートが制御される場合は、そのネイティブな割り当てと料金を比較対象に含めました。</p>
<p><strong>その支出から何が得られるかを比較。</strong>クエリコンピュートを追加すれば、より高速な応答を得られます。継続的な準備処理に投資すれば、クエリ側の負荷を減らし、実行時間とコストを削減できます。CostBench は、準備コストとクエリ処理コストの合算に対して得られたクエリ速度を自動的に重み付けするスコアを用いて、<strong>エンドツーエンドのコストパフォーマンス</strong>によって各システムを順位付けします。より高額な構成は、その高コストを正当化できるだけの高速な応答を提供しなければなりません。</p>
<p><a href="https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp">測定手法の全容はパート 1 で解説しています</a>。</p>
  </div>
</details>

以下の内訳は、データが到着する間にその優位性がどのように生まれるかを示しています。ClickHouse は、比較対象の中で最も低い準備コスト、最も低いクエリコスト、そして最も短い累積クエリ実行時間を兼ね備えています。

<iframe src="/uploads/costbench_p06_03_costs_and_query_runtime_refresh_20261016_b3a112b832.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典:<a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#end-to-end-performance-per-dollar">Measurements and methodology</a></p>

ClickHouse Cloud は、完全な高可用性取り込みサービス全体で、**1,132 億行**すべてを **$28.69** で取り込み、準備しました。ここに示す概要では、ClickHouse の総クエリコストは約 **$0.05**、累積クエリ実行時間は **1.03 分**にとどまり、その間も日次サマリーは RAW データと常に同期されていました。

> **本番環境における大規模なコスト削減:**<br/>[Buildkite](https://clickhouse.com/blog/buildkite-test-analytics) の移行事例は、この経済性が本番環境でどう活きるかを示しています。ワークロードを ClickHouse Cloud へ移行したことで、**イベント取り込み量が 4 倍になったにもかかわらず、純インフラ支出は月間 5 桁ドル(数万ドル)削減**されました。

この優位性がどこから生まれるのかを理解するため、受信したイベントの準備から次のクエリへの応答に至るまで、ClickHouse Cloud 内のデータの流れを追ってみましょう。

## クエリ対応データへの最速・最低コストの経路

[リアルタイム分析](https://clickhouse.com/ja/blog/selecting-a-real-time-analytical-database-jp)では、新規データを[次のクエリに向けて常に準備完了の状態に保つ](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)ことが不可欠です。CostBench では、クエリを実行し続けながら、気配値ストリームを取り込み、RAW 履歴を並べ替え、日次サマリーを維持する処理を測定しました。

### データ準備における ClickHouse の優位性

ClickHouse Cloud は、**RAW データが書き込まれた瞬間に日次サマリーもクエリ可能な状態になる、唯一の検証対象システム**でした。遅延ゼロを示すグラフの線は、新しく書き込まれた RAW 行が常にサマリーと同期していたことを示しています。

<iframe src="/uploads/costbench_p06_04_zero_pre_aggregation_lag_refresh_20261016_19b3339389.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典:<a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#pre-aggregation-freshness">Measurements and methodology</a></p>

ClickHouse は**挿入中**に事前集計を更新するため、RAW データとサマリーが同時に進みます。他の検証対象システムでは、RAW データの書き込み後に**非同期**で事前集計を更新していたため、上記のような遅延が発生しました。

RAW 履歴と日次サマリーの双方をクエリ可能な状態に保ちながらも、**最も低い準備コスト**を実現しました。全 **1,132 億行**の準備にかかったコストは、[ClickHouse Cloud](https://clickhouse.com/cloud) で **$28.69** であったのに対し、Snowflake では約 $79、BigQuery(Capacity)では $243、Redshift Serverless では $522、Databricks では $696 でした。

<iframe src="/uploads/costbench_p06_05_fresh_data_path_cost_refresh_20261016_067e5726fd.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典:<a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#preparation-cost">Measurements and methodology</a></p>

他の検証スタックでは、追加の取り込みサービスやメンテナンスサービスが必要となり、別途料金が発生することも少なくありませんでした。ClickHouse は、**列指向ストレージ、並べ替え、事前集計という[3 つの準備ステップ](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)すべてを同一エンジン内で処理**し、その処理も**取り込みサービスのコストに含まれています**。

### 優位性を支えるエンジンの内部構造

ClickHouse は、受信データを**メモリ上に保持している間に**ソートと事前集計を行うことで、**準備のオーバーヘッドを低く抑えています**。

#### 受信データをメモリ上でソートおよび事前集計

受信データは、直接受け取ったクライアントバッチまたは非同期挿入バッファのいずれかを経由してメモリに展開されます。ClickHouse はまず、RAW テーブルのソートキー(銘柄コードと時刻)に従って RAW 気配値をソートし、[インクリメンタルマテリアライズドビュー](https://clickhouse.com/docs/ja/concepts/features/materialized-views/incremental-materialized-view)を用いて日次サマリーを計算した上で、サマリーテーブルのソートキー(銘柄と日付)に従ってソートします。その後、双方がソート・圧縮された列指向の[データパート](https://clickhouse.com/docs/ja/concepts/core-concepts/parts)としてディスクに書き込まれるため、**初期準備のための「書き込みと再読み込み」という余分なサイクルを回避できます**。RAW データとサマリーは、同一の受信データから**足並みを揃えて更新**されます。

<iframe src="/uploads/costbench_p06_06_clickhouse_fresh_data_preparation_refresh_20261016_de3c5d4a18.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

他の検証パスでは、RAW データの並べ替えや、サマリーの事前集計・並べ替えを、初回の書き込み後に個別の非同期ステージとして実行します。**サマリーが更新される前に新しい RAW 行が利用可能になるため、これらのパスでは両者の遅延ゼロを保証できません。** 下のアニメーションは、両方のステージが取り込みに追いつかなくなる様子を示しています。

<iframe src="/uploads/costbench_p06_07_pre_aggregation_contrast_refresh_20261016_c1015d76b5.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

これらのステージではストレージからデータを再度読み出すため、準備処理と I/O が増加します。新しく書き込まれた RAW 行がソート待ちのまま滞留し、ソート済みサマリーはさらに遅れていくことになります。

---

## ClickHouse Cloud を試す

手元のデータで効率的なデータ準備と並列クエリ実行のパフォーマンスを体感してください。実際のリアルタイムワークロードで ClickHouse Cloud をお試しいただけます。

[ClickHouse Cloud を試す](https://console.clickhouse.cloud/signUp?loc=blog-cta-2808-clickhouse-cloud-clickhouse-cloud&utm_blogctaid=2808)

---

データがメモリ上にあるうちに準備を行うことで、オーバーヘッドを低く抑えられます。さらに ClickHouse は、その処理の実行を並列化することで処理を加速します。

#### ハードウェアの限界を引き出す設計

**ClickHouse は、基盤となるインフラストラクチャが提供するコンピュートを最大限に活用します。** そのエンジンは、ノード、CPU コア、SIMD レーンにまたがって、データの事前準備とクエリ実行の両方を並列化します。まずはデータの準備から見ていき、続いて同じアプローチがどのようにクエリ実行へと受け継がれるかを説明します。

**異なるノード**は、同期を一切必要とせずに異なる挿入を同時に処理できます。ClickHouse では、同時挿入操作は互いに[分離](https://clickhouse.com/docs/ja/get-started/about/why-clickhouse-is-so-fast#storage-layer-concurrent-inserts-are-isolated-from-each-other)されています。各挿入は新しいデータパートを書き出し、それぞれが独自の[スパースプライマリインデックス](https://clickhouse.com/docs/ja/concepts/core-concepts/primary-indexes)とメタデータを持ちます。そのためノードは、既存のデータを書き直したり、テーブル全体で共有されるインデックスを更新したりすることなく、データを準備できます。

**各ノード内**では、ClickHouse は CPU コア間でソートと事前集計を並列化します。集計には[マージ可能な部分集計状態](https://clickhouse.com/blog/clickhouse_vs_elasticsearch_mechanics_of_count_aggregations#incremental-aggregation)が使用されます。各 CPU コアが独自に行のサブセットを集計でき、それらの状態を結合して正しい結果を生成できます。ClickHouse は、このモデルを [200 以上の集計関数](https://sql.clickhouse.com/?query=U0VMRUNUICogCkZST00gc3lzdGVtLmZ1bmN0aW9ucwpXSEVSRSBpc19hZ2dyZWdhdGUKQU5EIGVtcHR5KGFsaWFzX3RvKQpPUkRFUiBCWSBuYW1l&chart=eyJ0eXBlIjoibGluZSIsImNvbmZpZyI6eyJ4YXhpcyI6InllYXIiLCJ5YXhpcyI6Ijk5dGhfYXZnX3RlbXAiLCJzZXJpZXMiOiJjb3VudHJ5IiwidGl0bGUiOiJUZW1wZXJhdHVyZSBieSBjb3VudHJ5IGFuZCB5ZWFyIn19)とその[コンビネータ](https://clickhouse.com/docs/ja/reference/functions/aggregate-functions/combinators)に適用しています。取り込み時には、これらの状態が集計テーブルに書き込まれます。具体的な例は、私たちの [GROUP BY の解説記事](https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp)で紹介しています。

**各コア内**では、ClickHouse は列指向データをバッチ単位で処理し([ベクトル化実行](https://clickhouse.com/blog/cpu-dispatch-in-clickhouse))、SIMD 命令を使用して複数の値に対するサポートされた演算を一度に実行します。

以下のアニメーションは、取り込みノードから 1 つのノードの CPU コアへ、さらに 1 つのコアの SIMD レーンへと拡大して示しています。

<iframe src="/uploads/costbench_p06_08_insert_parallelism_stable_height_20261021_9982f4ffc6.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

ClickHouse は、継続的な挿入と並行して、複数の[バックグラウンドパートマージ](https://clickhouse.com/docs/ja/concepts/core-concepts/merges)を CPU コア全体で[同時](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#more-parts-more-background-part-merges)に実行します。集計テーブルでは、これらのマージにより異なるバッチの部分集計状態が結合され、挿入時に開始された事前集計が継続されます。これにより、集計処理がクエリ時からバックグラウンドマージ時へと段階的に[シフト](https://clickhouse.com/blog/clickhouse_vs_elasticsearch_mechanics_of_count_aggregations#incremental-aggregation)していきます。また、各テーブルの ORDER BY 順を維持しながら、生データと集計データをより少数の大きなパートへと統合します。クエリは残りの状態を結合して最新の回答を返すため、最新の生イベントをスキャンして追いつく必要がありません。この設計は、私たちの [VLDB アーキテクチャ論文](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf)で解説されています。

### 数字で見るエンジンの性能

ベンチマークの実行中、[ClickHouse Cloud に組み込まれた高度なダッシュボード](https://clickhouse.com/docs/ja/products/cloud/features/monitoring/advanced-dashboard)を通じて、取り込みサービスのスループット、リソース使用状況、データ削減率、バックグラウンドマージを監視しました。

CostBench は、分析クエリを実行しながら、**毎秒 100 万行の取り込み**を目標として、すべてのシステムに **1,132 億行の株式気配値**をストリーミングしました。**生データが届くと同時に日次集計データもクエリ可能な状態になったテスト対象システムは、ClickHouse Cloud だけでした。**

その高可用性取り込みサービスは、それぞれ 2 個の CPU コアと 8 GiB のメモリを備えた 2 つのノード(合計 4 コア、16 GiB)で構成されていました。クエリが独立した読み取りサービスで実行されている間、これらのコアは受信バッチをクエリ可能な状態にし、残りの CPU 容量を集計の継続的な事前集計を含む並列バックグラウンドマージに使用しました。後述の測定値は、4 コアの最大取り込み容量ではなく、そのワークロードを表したものです。**準備コスト 28.69 ドルはテストしたすべてのシステムの中で最も低く**、両方の取り込みノードとそのバックグラウンド処理のコストを網羅しています。

以下のアニメーションに示すように、**並列化された取り込みとバックグラウンドマージ**により、4 個の利用可能な CPU コアのうち**約 3.2 コア**を使用しながら、**毎秒約 430 MB** の非圧縮データを処理しました(**使用コアあたり毎秒約 135 MB**)。この処理は、CPU コアや取り込みノードを追加することでスケールできます。後ほど、ClickHouse Cloud が取り込みコンピュートをクエリコンピュートから独立してスケールさせる仕組みを説明します。

<iframe src="/uploads/costbench_p06_09_ingest_service_metrics_stable_height_20261021_9aeb0939b1.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/results_t2/utilization/writer/preparation-metrics/README.md#calculations-and-interpretation">測定値と測定手法</a></p>

取り込み中、同じ 4 つのコアにより **テストされたすべてのシステムの中で最も優れた生データ圧縮率** も達成され、7.08 TB の生データが 491.2 GB に縮小されました(14.4 倍)。

<iframe src="/uploads/costbench_p06_11_data_reduction_refresh_20261016_3bacfe7234.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/results_t2/utilization/writer/preparation-metrics/README.md#calculations-and-interpretation">測定値と測定手法</a></p>

以下の比較が示すように、**約 1,132 億件の気配値データ**において、ClickHouse Cloud はテストした 5 つのシステムすべての中で**最小の生データサイズ**を記録しました。

<iframe src="/uploads/costbench_p06_12_raw_data_storage_refresh_20261016_468d98c577.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/tree/main/full-path-realtime/quotes">測定値と測定手法</a></p>

<details class="note-box">
  <summary>事前集計ストレージと月額ストレージコスト(クリックして展開)</summary>
  <div class="note-body">
<p>取り込みの終了時点で、ClickHouse は生の気配値履歴と比べて<strong>行数が約 6 万分の 1</strong> の日次集計データを維持していました。以下のチャートは、テストした 5 つのシステムすべてにおける日次集計データの保存サイズを比較したものです。</p>
<iframe src="/uploads/costbench_p06_13_pre_aggregated_storage_refresh_20261016_006ebba657.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/tree/main/full-path-realtime/quotes">測定値と測定手法</a></p>
<p>月額ストレージの試算には、ベンチマーク対象リージョンで公開されている定価を使用し、該当する場合は Enterprise プランを採用しています。</p>
<p style="font-size: 12px; line-height: 1.5;">ストレージ料金: <a href="https://clickhouse.com/pricing">ClickHouse</a> · <a href="https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf">Snowflake</a> · <a href="https://cloud.google.com/bigquery/pricing">BigQuery</a> · <a href="https://aws.amazon.com/s3/pricing/">Databricks (S3)</a> · <a href="https://aws.amazon.com/redshift/pricing/">Redshift</a></p>
<p>生データと日次集計データを合わせた月額の推定ストレージ料金は、ClickHouse Cloud が 12.43 ドル、Snowflake が 14.61 ドル、Databricks が 15.16 ドル、BigQuery が 20.06 ドル、Redshift Serverless が 90.44 ドルです。これらの月額料金は、<a href="https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp">CostBench がエンドツーエンドのスコアからデータベースストレージを除外している理由</a>を理解するのにも役立ちます。ベンチマークの短い期間においては、新鮮なデータの取り込みと準備、およびクエリの処理にかかる合計コストと比べて、ストレージが占める割合はごくわずかです。ストレージコストは、保持期間が長期化するにつれて重要性を増します。</p>
  </div>
</details>

圧縮によって生の履歴データを読み取るためのバイト数が削減され、事前集計によって定期的な分析の質問に答えるために必要な行数が削減されます。

<details class="note-box">
  <summary>4 つの取り込みコアがどのように準備を処理するか(クリックして展開)</summary>
  <div class="note-body">
<p class="note-heading"><strong>取り込み時の CPU 処理の内訳:</strong></p>
<p>取り込み時の CPU 処理において最も大きな割合を占めるのは<strong>パース</strong>です。<strong>ソート</strong>が約 19%、<strong>事前集計</strong>が約 3% を占めます。以下のチャートでは、パース、ソート、事前集計、<strong>圧縮</strong>、およびその他の取り込み処理を個別に示しています。<a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/ingest_parquet_rows.py">クライアント</a>は非同期挿入を介して CSV エンコードされたバッチを送信し、パースによってそれらが ClickHouse の型付けされた列指向データに変換されます。「<strong>その他の取り込み処理</strong>」には、スパースプライマリインデックスとパートメタデータの構築、および設定されている場合は<a href="https://clickhouse.com/docs/ja/reference/engines/table-engines/mergetree-family/mergetree#column-statistics">カラム統計</a>と<a href="https://clickhouse.com/docs/ja/concepts/best-practices/using-data-skipping-indices">セカンダリインデックス</a>の構築が含まれます。このチャートは取り込み処理を対象としており、バックグラウンドマージは以下で個別に示しています。</p>
<iframe src="/uploads/costbench_p06_10_ingestion_cpu_work_stable_height_20261021_ebb6377516.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p class="note-heading"><strong>サーバー側のパースの削減:</strong></p>
<p>ClickHouse は Native 形式を含む <a href="https://clickhouse.com/docs/ja/reference/formats">70 以上の入力フォーマット</a>をサポートしています。Native 形式では、クライアント側で準備された列指向ブロックにより、サーバー側のパースと変換が軽減されます。私たちの <a href="https://clickhouse.com/blog/clickhouse-input-format-matchup-which-is-fastest-most-efficient">FastFormats 調査</a>と<a href="https://fastformats.clickhouse.com/">インタラクティブダッシュボード</a>では、フォーマット、バッチ処理、圧縮の影響について詳しく説明しています。</p>
<p class="note-heading"><strong>バックグラウンドでの統合と継続的な事前集計:</strong></p>
<p>同じ 4 つのコアにより、毎秒数百万行がマージされました。これらのマージによって、すでに順序付けされた生データのパートが統合され、バッチをまたいで集計データの集計状態の結合が継続されたため、クエリ側に残される処理が削減されました。データセットが増加しても、パーティションあたりのアクティブパートの最大数は約 100 に維持されました。</p>
<iframe src="/uploads/costbench_p06_14_background_consolidation_refresh_20261016_b6fc6e5c21.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p class="note-heading"><strong>リソース使用状況:</strong></p>
<p>CPU 使用率は利用可能な 4 コアのうち約 3.1 コアにとどまり、追跡されたメモリはサービスの 16 GiB 容量の範囲内に収まりました。28.69 ドルの準備コストには、両方のノードとそのバックグラウンド処理が含まれます。</p>
<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/results_t2/utilization/writer/preparation-metrics/README.md#calculations-and-interpretation">測定値と測定手法</a></p>
  </div>
</details>

### これが実環境にもたらす価値

CostBench において、ClickHouse は**最も低い準備コストで、集計データを常に取り込み済みの生データと同期した最新の状態に維持**しました。ソートされ圧縮された履歴データとコンパクトな集計データにより、後続のクエリにかかる処理が軽減されるため、アプリケーションは最新データから定期的な質問に答えつつ、個別のイベントを詳細に調査することもできます。

> **実環境における高速な準備:**<br/>[Appcues](https://clickhouse.com/ja/blog/appcues-customer-engagement-analytics-jp) は、Snowflake ベースの分析スタックにおける Airflow のロールアップ処理を、**挿入時に件数や合計を計算する**マテリアライズドビューに置き換えました。これにより **Airflow インフラを全廃**し、イベントが Appcues に到達してからクエリ可能になるまでの時間を **10 分以上から約 5 秒に短縮**しました。

次のセクションでは、そのように準備されたデータがクエリエンジンへと送られる流れを見ていきます。

## 最も低いコストで最速のクエリ結果を実現

効率的な事前準備により、各クエリの背後にある処理負荷が軽減されます。その成果を測定するため、CostBench は負荷環境下でエンドツーエンドの経路をテストし、新しい気配値データが取り込まれ準備される間、各システム上で**同じ 4 つの対話型集計クエリを 10 分ごと**に、**同じ 2 つの選択的なドリルダウンクエリを 1 時間ごと**に実行しました。[パート 1 ではクエリワークロードの全体像を解説しています](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)。

### クエリ処理における ClickHouse の優位性

ClickHouse Cloud は、4 つの比較すべてにおいてクエリ実行時間が最も短く、クエリコストも最も低くなりました。

<iframe src="/uploads/costbench_p06_15_query_runtime_and_cost_refresh_20261016_441b1da258.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#query-cost-and-runtime">測定値と測定手法</a></p>

すべてのシステムで[クエリ結果のキャッシュは無効化](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)されていたため、測定されたすべてのクエリが実際に実行されました。継続的な運用環境を反映し、基盤となるデータキャッシュはウォーム状態の維持が許可されました。

集計クエリに関して、Snowflake と BigQuery は**事前集計が生データに対して遅れていた**ため、**クエリ実行時によけいな処理が発生**しました。最新の回答を返すために、集計データとより新しい生データの行を結合する必要があったためです。Databricks と Redshift は最後に完了した集計データを読み取っていたため、より最近の気配値データが結果に含まれない可能性がありました。ClickHouse の事前集計は常に最新であったため、集計クエリは**準備された集計データを直接読み取る**ことができました。

<iframe src="/uploads/costbench_p06_16_millisecond_aggregate_queries_refresh_20261016_cf5309c099.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#query-latency-and-freshness">測定値と測定手法</a></p>

**約 1,000 億行の生データ**において、図示された集計クエリが最新の回答を返すまでにかかった時間は、Snowflake で **16 秒**、BigQuery で **4.6 秒**だったのに対し、ClickHouse では約 **15 ms** でした。

### その優位性を生み出すエンジンの内部構造

事前準備によって、各クエリが処理しなければならないデータ量が削減されます。事前集計により集計クエリはコンパクトな集計データを読み取れるようになり、ソート順によって適切なフィルタを持つクエリは無関係な範囲をスキップできます。データ準備と同様に、ClickHouse は**残りの処理を並列化する**ことでクエリを高速化します。

**ノード間**では、単一のクエリが複数ノードの CPU コアを使用できます。関与するノードは異なる行のサブセットを同時に処理し、それらの部分結果を 1 つの回答へと結合できます。

**各ノード内**では、ClickHouse は処理対象の行を[利用可能な CPU コア](https://clickhouse.com/docs/ja/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization)に分割し、各コアが自身の受け持ち部分を同時に処理できるようにします。

ClickHouse は、[200 以上の集計関数](https://sql.clickhouse.com/?query=U0VMRUNUICogCkZST00gc3lzdGVtLmZ1bmN0aW9ucwpXSEVSRSBpc19hZ2dyZWdhdGUKQU5EIGVtcHR5KGFsaWFzX3RvKQpPUkRFUiBCWSBuYW1l&chart=eyJ0eXBlIjoibGluZSIsImNvbmZpZyI6eyJ4YXhpcyI6InllYXIiLCJ5YXhpcyI6Ijk5dGhfYXZnX3RlbXAiLCJzZXJpZXMiOiJjb3VudHJ5IiwidGl0bGUiOiJUZW1wZXJhdHVyZSBieSBjb3VudHJ5IGFuZCB5ZWFyIn19)とその[コンビネータ](https://clickhouse.com/docs/ja/reference/functions/aggregate-functions/combinators)に対して、マージ可能な[部分集計状態](https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp)を使用します。**各 CPU コアは独自に行のサブセットを集計でき**、それらの状態が結合されて正しい結果が得られます。生データへのドリルダウンではクエリ時にこれらの状態が構築され、集計データに対するクエリでは取り込みやバックグラウンドマージの間に準備済みの状態が結合されます。私たちの [GROUP BY の解説記事](https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp)では、具体的な例とともにその仕組みを説明しています。

**各コア内**では、ClickHouse は[ベクトル化実行](https://clickhouse.com/blog/cpu-dispatch-in-clickhouse)を通じて列指向データをバッチ単位で処理し、CPU キャッシュの局所性を高めます。SIMD 命令によって、複数の値に対するサポートされた演算が一度に実行されます。

以下のアニメーションは、同一データがノード間、次いで 1 つのノードの CPU コア間、最後に 1 つのコア内の SIMD レーン間へと分割されていく様子を示しています。

<iframe src="/uploads/costbench_p06_17_query_parallelism_stable_height_20261021_9fd7934cc9.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

各コアでの集計処理は、低レベルの選択からも恩恵を受けています。ClickHouse は、グループ化キーとデータに基づいて [30 以上の専用ハッシュテーブルバリアント](https://clickhouse.com/docs/ja/get-started/about/why-clickhouse-is-so-fast#meticulous-attention-to-detail)から最適なものを選択します。Alexey による [Building for Fast の対談](https://www.youtube.com/watch?v=CAS2otEoerM&t=1168s)では、ハッシュテーブルの容量予測など、そうした選択の背後にある試行錯誤が紹介されています。

<details class="note-box">
  <summary>ClickHouse がクエリ処理をさらに削減する仕組み(クリックして展開)</summary>
  <div class="note-body">
<p>長年にわたり、ClickHouse は I/O を徹底的に削減するために何層もの最適化を導入してきました。これらの手法が、そのスピードと効率性の基盤となっています。</p>
<p>準備段階で確立された生データと集計データの順序付けにより、ClickHouse の<a href="https://clickhouse.com/ja/blog/index-based-pruning-jp">スパースプライマリインデックス</a>は無関係な範囲をスキップできます。<a href="https://clickhouse.com/ja/blog/projections-secondary-indices-jp">プロジェクション</a>は、代替のデータ順序と独自のインデックスを提供することで、このアプローチを拡張します。</p>
<p><a href="https://clickhouse.com/ja/blog/streaming-secondary-indices-jp">スキップ処理は実行中も継続します</a>。<a href="https://clickhouse.com/docs/ja/concepts/features/performance/prewhere">PREWHERE</a> は、追加のカラムがロードされる前にフィルタを適用します。<a href="https://clickhouse.com/ja/blog/clickhouse-top-n-queries-granule-level-data-skipping-jp">Top-N などの一般的なクエリパターン</a>向けの最適化により、<code>ORDER BY … LIMIT</code> に必要な処理がさらに削減され、結果を改善する見込みのないデータがスキップされます。<a href="https://clickhouse.com/ja/blog/clickhouse-gets-lazier-and-faster-introducing-lazy-materialization-jp">遅延実体化</a>は、結果の行が確定するまで出力カラムの読み取りを遅延させることができます。</p>
<p>また、ClickHouse はメタデータやデータの反復取得、カラムの伸張・デコード、同じフィルタの重複評価を回避するために、<a href="https://clickhouse.com/docs/ja/concepts/features/performance/caches/caches">複数レベルのキャッシュ</a>を活用しています。</p>
<p>これらは ClickHouse のクエリ最適化のほんの一部にすぎません。<a href="https://clickhouse.com/docs/ja/reference/engines/table-engines/mergetree-family/mergetree#column-statistics">統計情報</a>がクエリプランニングを誘導し、クエリの書き換えによって実行前の冗長な計算が排除されます。その他の手法として、頻繁に使用される式の JIT(Just-In-Time)コンパイルや、追加のソートを行わずに <code>ORDER BY</code> を満たしたり集計を簡素化したりするための既存のデータ順序の活用などが挙げられます。私たちの <a href="https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf">VLDB 研究論文</a>では、これらの手法とエンジン全体のアーキテクチャについてさらに詳しく説明されています。</p>
  </div>
</details>

### 数字で見るエンジンの性能

クエリ実行中の読み取りサービスについても([ClickHouse Cloud に組み込まれた高度なダッシュボード](https://clickhouse.com/docs/ja/products/cloud/features/monitoring/advanced-dashboard)を通じて)監視し、CPU やメモリの使用量とともに処理スループットを追跡しました。

**前述のとおり、ClickHouse Cloud は 4 つの比較すべてにおいて、累積クエリ実行時間が最も短く、クエリコストも最も低くなりました。** クエリコンピュートは可能な限り揃えており、差異がある場合は、追加のクエリ速度が追加のコンピュートコストに見合っているかをスコアが示しています。

ClickHouse は、**16 CPU コアと 64 GiB のメモリ**を備えた独立した単一ノードの読み取りサービスを使用し、新しい気配値データの取り込みと準備が継続している状況でこれらの結果を達成しました。**1,132 億件の気配値**において、4 つのインタラクティブ集計クエリの平均応答時間は約 **15 ms** であり、2 つの生データドリルダウンの平均は約 **1 秒**でした。

全履歴を対象とする 2 つの集計 A3 と A4 は、準備されたサマリーから回答し、その**実効集計スループットは毎秒約 6 兆件の気配値**に達しました。このレートは、クエリ実行 1 秒あたりにサマリーが表す生の気配値履歴の件数を測定したものです。

<iframe src="/uploads/costbench_p06_18_query_latency_throughput_refresh_20261016_bf9f79b20b.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/results_t2/utilization/reader/query-metrics/query-resources/README.md">測定結果と測定方法</a></p>

次のグラフは、それらのクエリ実行を支える**並列データ処理スループット**を示しています。**1,132 億件の気配値のエンドポイント**において、ClickHouse はドリルダウンで約 **3.25 GB/s**、インタラクティブ集計で **2.05 GB/s** の非圧縮データを処理しました。

<iframe src="/uploads/costbench_p06_19_read_service_metrics_stable_height_20261021_b8cf733314.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/results_t2/utilization/reader/query-metrics/query-resources/README.md">測定結果と測定方法</a></p>

**使用された CPU コアあたり**の処理レートは、ドリルダウンで約 **374 MB/s**、インタラクティブ集計で **307 MB/s** でした。表示されているエンドポイントでのクエリ実行中の平均 CPU使用率は約 **53%** であり、**47% のヘッドルーム**が残されていました。クエリごとの平均ピークメモリは、ドリルダウンで約 **19.8 MiB**、インタラクティブ集計で **13.2 MiB** でした。

<details class="note-box">
  <summary>並列クエリスループットは CPU コア数に応じてどのようにスケールするか？(クリックして展開)</summary>
  <div class="note-body">
<p>この<strong>並列実行モデルが CPU コア数に応じてどのようにスケールするか</strong>をテストするため、<strong>各クエリで使用可能な CPU コアを 2、4、8、16、30、59 個</strong>にして、2 つの生データドリルダウンクエリを再実行しました。<strong>1,132 億件の気配値</strong>はすべて事前にロードされ、準備済みでした。これは、上記の継続的な取り込みの測定とは別の実験です。</p>
<iframe src="/uploads/costbench_p06_20_reader_core_scaling_refresh_20261016_67310a8310.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p><strong>59 コア</strong>において、スループットはホットキャッシュで約 <strong>15.56 GB/s</strong>、コールドキャッシュで <strong>9.85 GB/s</strong> に達しました。ホットでは通常のデータキャッシュとクエリ条件キャッシュを有効にし、コールドではデータキャッシュをバイパスしてクエリ条件キャッシュを無効にしています。どちらの場合も、クエリ結果のキャッシュは無効のままです。<strong>高速化は完全に線形ではありません</strong>。部分的な結果の統合には、そのマージ処理が並列化されている場合でもオーバーヘッドが生じ、一部のクエリステージは完全には並列化できないためです。</p>
<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/clickhouse-cloud/experiments/reader-thread-scaling/2026-10-11-cache-modes/README.md">測定結果と測定方法</a></p>
  </div>
</details>

> **NVIDIA Vera 上での並列実行:**<br/>同じ並列実行モデルにより、より大規模なマシンも自動的に活用されます。**176 CPU コア**を搭載したデュアルソケットの NVIDIA Vera システムにおいて、ClickHouse エンジンは[これまで私たちが測定した中で最速の ClickBench 結果](https://www.linkedin.com/posts/nvidia-ai-infra_nvidia-vera-cpu-fastest-machine-weve-activity-7501661486046523392-8T84)を記録しました。[Vera のパフォーマンス解説記事](https://clickhouse.com/ja/blog/clickhouse-performance-on-nvidia-vera-jp)では、CPU 負荷の高い集計処理が **1 コアの場合と比べて 176 コアで約 164 倍高速**に実行されたことを示しています。これは、**完全に線形なスケーリングによる 176 倍の高速化**に近い数値です。部分的な結果の統合にはオーバーヘッドが伴い、一部のクエリステージは完全には並列化できないためです。<br/><br/>別のフィルタリングテストでは**約 900 GB/s** を処理し、それ以上のスケーリングはメモリ帯域幅によって制限されました。この解説記事では、**SIMD が各コア内のサポート対象オペレーションをどのように高速化するか**についても解説しています。

### 実際の環境で何をもたらすか

CostBench では、単一の 16 コアのクエリノード上で、新しいデータが届き続ける中でも CPU に余裕を残しながら、**ミリ秒単位の集計応答とおよそ 1 秒のドリルダウン**が実証されました。また、ClickHouse は 4 つの比較の中で**最も低いクエリコストと最も短い累積実行時間**を記録し、増え続ける履歴データに対する頻繁な分析クエリの実用性を証明しました。

> **実際の環境での高速なクエリ速度と低コスト:**<br/>[Mintlify](https://clickhouse.com/ja/blog/mintlify-jp) は、ClickHouse Cloud のインクリメンタルなマテリアライズドビューを使用して、エンドユーザー向けドキュメントの分析機能を提供しています。PostHog ベースの構成から移行した後、ダッシュボードのロード時間は**数十秒から 1 秒未満へと短縮**され、エンジニアリングマネージャーの Nicholas Khami 氏は同じワークロードのコストが**約 60% 削減**されたと見積もっています。これは優れたカスタマーエクスペリエンスにつながり、Net Promoter Score が 30% 向上するなど、高い満足度が示されています。

## 大規模環境で複利的に高まるメリット

ClickHouse エンジンは、新しく到着したデータのバッチを効率的に準備することで各クエリの処理量を減らし、残りの処理も効率的に実行します。

効率的なデータ準備と高速なクエリ実行の双方がエンドツーエンドの 1 ドルあたりの性能を向上させるため、それらのメリットは相乗的に高まります。

### データ準備とクエリ実行の相互強化

[以前のクエリ側の比較](https://clickhouse.com/ja/blog/costbench-real-time-performance-per-dollar-jp)は事前に準備されたデータから開始し、ClickHouse が **23 倍〜101 倍**の 1 ドルあたりの性能上の優位性を持つことを測定しました。CostBench では、より広範な継続的取り込みパスをテストし、データ準備とクエリ提供を同時に実行した状態で **412 倍〜1,996 倍**の優位性を測定しました。

<iframe src="/uploads/costbench_p06_21_compounding_end_to_end_score_refresh_20261016_540fcd6ef4.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#query-side-and-end-to-end-scores">測定結果と測定方法</a></p>

### 取り込みとクエリのコンピュートを独立してスケーリング

ClickHouse Cloud は、この高効率なエンジンに伸縮性とワークロードの分離をもたらします。[SharedMergeTree](https://clickhouse.com/blog/clickhouse-cloud-boosts-performance-with-sharedmergetree-and-lightweight-updates) によりテーブルストレージとコンピュートが分離され、[Shared Catalog](https://clickhouse.com/ja/blog/clickhouse-cloud-stateless-compute-jp) がデータベースのメタデータを一元化し、[分散キャッシュ](https://clickhouse.com/ja/blog/building-a-distributed-cache-for-s3-jp)によってコンピュートが変更されてもホットデータを再利用できます。この基盤により、キャパシティが変化しても、**ステートレスなコンピュートノードが保存データを再分散することなく同じテーブルにアクセス**できます。

[コンピュート・コンピュート分離](https://clickhouse.com/ja/blog/introducing-warehouses-compute-compute-separation-in-clickhouse-cloud-jp)により、取り込み、ダッシュボード、調査処理を、それぞれ独自の CPU コアとメモリを備えた**独立した規模のサービス**で実行できます。CostBench では、取り込みサービスとクエリサービスにこの分離を使用しました。

CostBench の構成にとどまらず、[On-Demand Compute](https://clickhouse.com/ja/blog/on-demand-compute-jp) を利用すると、対象となるクエリは既存のサービスを通じて**一時的なステートレスワーカー**をリクエストできます。これらのワーカーは、サービスのサイズを恒久的に増やすことなく、一時的な追加クエリキャパシティを提供します。

また、データ共有アーキテクチャは、クエリ処理を分散させる複数の手法をサポートしています。

- [パラレルレプリカ](https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp): ノード間で読み取りと集計を分散します。

- [インデックスシャーディング](https://clickhouse.com/ja/blog/index-sharding-clickhouse-cloud-petabyte-scale-indexing-jp): ノード間でインデックス解析を分散します。

- [マルチステージ実行](https://clickhouse.com/ja/blog/multi-stage-distributed-query-execution-clickhouse-cloud-jp): 大規模な結合や高カーディナリティの集計をノード間で動的に分散します。

取り込みノード、読み取りノード、一時的なステートレスクエリワーカーのすべてが、同じ [ClickHouse エンジン](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf)を実行します。

<details class="note-box">
  <summary>単一のエンジンが分析パス全体を統合(クリックして展開)</summary>
  <div class="note-body">
<p>データ準備(<a href="https://github.com/ClickHouse/CostBench/blob/main/docs/clickhouse-native-ingestion/README.md">挿入時変換</a>を含む)、並列化されたクエリ処理、および上記の分散実行メカニズムが、エンジンに組み込まれています。</p>
<p>ClickHouse Cloud は、共通の SQL 関数、データ型、実行機構を維持しながら、ワークロードごとにコンピュートを独立してスケールできます。開発者にとっては、分析パス全体を理解しデバッグするための一貫した構成要素が提供されることになります。共有エンジンコードの改善は、それを利用するすべての役割にメリットをもたらします。</p>
  </div>
</details>

以下のアニメーションは、共有データとキャッシュの上で、取り込みとクエリのコンピュートが独立して拡大・縮小する様子を示しています。クエリ側の破線のワーカーボックスは、On-Demand Compute の一時的なステートレスワーカーを表しています。

<iframe src="/uploads/costbench_p06_22_elastic_compute_refresh_20261016_fe653ef246.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<details class="note-box">
  <summary>単一の並列クエリはノード間でどのようにスケールするか？(クリックして展開)</summary>
  <div class="note-body">
<p>下のグラフは、フルロードされた英国の不動産価格データセットに対する<a href="https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp">別の実験</a>を示しています。1 つのクエリが、事前集計を行わず、保存データの再分散もなしに、それぞれ 89 CPU コアを持つ 1〜100 ノードを使用して、<strong>1 兆行の生データ</strong>を郡、町、地区ごとにグループ化し、件数、合計、平均を計算します。</p>
<iframe src="/uploads/costbench_p06_23_parallel_replicas_scaling_refresh_20261016_9199c53edd.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p>データ処理スループットは、1 ノードでの <strong>6.49 GB/s</strong> から 100 ノードでの <strong>519.18 GB/s</strong> へと向上しました。プロットされた各ポイントは、その構成での 10 回の実行における最速値です。</p>
<p>同じ記事では、<strong>1,000 億行の生データ</strong>を対象に町ごとの価格を合計するという、より<a href="https://clickhouse.com/ja/blog/clickhouse-parallel-replicas-jp">シンプルな集計</a>も実演しています。<strong>0.414 秒</strong>で完了し、<strong>毎秒 2,418 億行</strong>、すなわち <strong>1.45 TB/s</strong> を処理しました。以下の録画でクエリの実際の動作を確認できます。</p>
<iframe src="/uploads/costbench_p06_24_100_billion_row_aggregation_refresh_20261016_05dee351d0.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>
<p>これらの生データ実験は、ロード済みデータに対する分散実行の実力を示すものです。CostBench は異なるワークロードを測定しています。新しい気配値データの継続的な準備とクエリの提供を同時に行い、両方のステージを 1 ドルあたりの性能スコアに含めています。</p>
<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#horizontal-query-scaling">測定結果と測定方法</a></p>
  </div>
</details>

> **実際の環境での柔軟なスケーリング:**<br/>[HighLevel](https://clickhouse.com/blog/highlevel) は、**9 万以上の代理店と 300 万の中小企業**にサービスを提供するマーケティングプラットフォーム全体で、その柔軟性を活用しています。リードの活動履歴、ワークフローのログ、通知、収益分析に ClickHouse Cloud を利用しています。ストレージとコンピュートを分離しているため、需要の増加に応じてクエリキャパシティを追加できます。スタッフエンジニアの Pragnesh Bhavsar 氏は次のように説明しています。「トラフィックが増加したら、**レプリカを追加するだけで対応できます**」

## リアルタイムアプリケーションで実現すること

効率的なデータ準備と並列クエリ実行により、アプリケーションは**最新の取り込みデータに基づいた回答をミリ秒単位で取得し、その回答を利用して次の行動を決定**できます。それらの回答はアプリケーションの応答制限時間内に届く必要があり、履歴データが増大する中で繰り返し要求されても経済的でなければなりません。

CostBench の**株式市場の気配値データセット**が、その具体例となります。取引を承認する前にリスクを確認する取引アプリケーションを想定してみましょう。直近の市場の動きによって判断が変わる可能性があるため、分析クエリには最新の取り込み気配値が必要です。そのクエリの許容時間が **100 ms** だとします。気配値の履歴が増えても、この制限時間は変わりません。

**以下のアニメーションは、CostBench で測定されたサマリーの鮮度と集計クエリのレイテンシを統合したものです**。新しい気配値データが届き続ける中で、応答時間をこの想定制限時間と比較しています。例として示されている集計クエリにおいて、**1,000 億件の気配値データに対して、最新データに基づく回答と 100 ms の許容時間内での応答を両立できたのは ClickHouse だけでした**。

<iframe src="/uploads/costbench_p06_25_real_time_risk_check_refresh_20261016_77aa79c8f6.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

<p style="font-size: 12px; line-height: 1.5;">出典: <a href="https://github.com/ClickHouse/CostBench/blob/main/full-path-realtime/quotes/part6-measurements/README.md#query-latency-and-freshness">測定結果と測定方法</a></p>

1,000 億行の時点で、ClickHouse Cloud は**約 15 ms** でクエリを返し、日次サマリーは取り込まれた生データと一致した最新状態に保たれていました。高い鮮度と低レイテンシが揃うことで、アプリケーションが次の判断を下すために必要な分析の根拠が得られます。

そうした判断によってユーザーやワークフロー全体でクエリが繰り返し実行される場合、その経済性が重要になります。最新のサマリーによって繰り返される質問への回答コストが低く抑えられる一方、整列された生データの履歴によって詳細な調査が可能になります。準備コストとクエリコストの低さにより、アプリケーションの成長に伴ってもその両方を実用的な状態に維持できます。

> **実際の環境でのリアルタイムな意思決定:**<br/>[Buildkite](https://www.youtube.com/watch?v=wxVWByMPeCA&t=219s) では、次の CI ビルドをどのように実行するかを決定するために分析クエリが役立てられています。同プラットフォームは**年間 1 兆件のテスト実行**結果を取り込み、インテリジェントなテスト分割、不安定なテスト(flaky test)の検出、テスト履歴のインタラクティブな分析に ClickHouse Cloud を使用しています。頻出する質問のためにマテリアライズドビューが統計情報を維持しつつ、詳細な調査のために生データも利用可能なまま保持されます。それらのクエリは**クリティカルパス**上に位置しており、迅速に回答を得ることで数千台のマシンがテストを早期に完了できるようになり、**次のビルドを高速化**しています。

## エージェント型分析の時代に向けた設計

**[エージェント](https://clickhouse.com/ja/blog/agent-facing-analytics-jp)が人に代わってデータベースに問い合わせを行うケースが増加**しており、1 つひとつの回答が、エージェントが次に何を調査すべきかを決定づける材料となります。

> データベース研究者であり、[ClickHouse Labs](https://clickhouse.com/ja/blog/andy-pavlo-founding-clickhouse-labs-jp) の VP を務める [Andy Pavlo](https://www.youtube.com/watch?v=74X0DJOVEc8&t=831s) は、「**データベースに届くクエリの量と数が、10 倍から 100 倍に増加する可能性がある**」と予想しています。

この増加は、分析パス全体に負荷をかけます。エージェントが追加の質問を行い、同時に調査を実行している間も、到着するイベントをクエリ可能な状態にし続けなければなりません。

セキュリティチームが進行中のインシデントを調査するのを支援するエージェントを考えてみましょう。エージェントは最近のアクティビティを過去のパターンと比較し、影響を受けたアカウントを特定して、個々のイベントを精査します。調査中に状況が変化する可能性があるため、追加の各クエリは新たに取り込まれた証跡にアクセスできる必要があります。

ClickHouse の継続的なデータ準備によってサマリーが取り込み生データと同期した最新状態に保たれる一方、整列された生データ履歴が詳細な調査を支えます。エージェントは、新たな証跡が到着するのに応じてサマリーと個別のイベントの間を行き来できます。

<iframe src="/uploads/costbench_p06_26_current_context_for_agents_refresh_20261016_4674421635.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

1 つひとつの回答が次の質問を左右するため、データベースのレイテンシが調査ループに直結します。典型的な ClickHouse ワークロードでは、各クエリの所要時間はモデルの一般的な Time to First Token よりも短くなります。**つまり、エージェントはデータベースの処理を実質的に待つ必要がありません。**

また、データベースコストには、結論に至るまでに必要なすべてのクエリが含まれます。これらのコストは追加の質問や並行した調査の全体で蓄積されるため、エージェントの利用が増加するにつれて、効率的なクエリ実行の価値は一段と高まります。

<iframe src="/uploads/costbench_p06_27_affordable_agent_queries_refresh_20261016_dfcf2a2544.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

1 日あたり 1 ペタバイト以上の取り込み量であっても、エージェントには最新の証跡と、高速で低コストな追加クエリが不可欠です。ClickHouse の継続的なデータ準備は各回答の背後にある処理量を削減し、ClickHouse Cloud により、イベント量と調査需要の増加に合わせて取り込みとクエリのキャパシティを独立してスケールさせることができます。**ClickHouse はこれを正しく実現しています。**

> **実際の環境でのエージェント調査:**<br/>[Artemis](https://clickhouse.com/ja/blog/artemis-security-real-time-threat-detection-jp) は ClickHouse Cloud を使用して、受信するセキュリティログを継続的に検査しつつ、調査エージェントが過去データと照合して不審なアクティビティを探索できるようにしています。マテリアライズドビューを通じて頻繁にクエリされるフィールドを抽出することで、ある調査検索の所要時間を **12 秒から 200 ミリ秒へと短縮**しました。また、検知ルールを共有スキャンに統合することで、**100 以上のルールの本番バッチ処理を 1 秒未満で実行**できるようにしました。データを効率的に準備し、重複するクエリ処理を削減することで、タイムリーな調査と継続的な検知の両方が支えられています。

## 大規模環境で費用対効果を発揮するリアルタイム分析

到着するデータをクエリ可能な状態に保ち、効率的に回答し、需要に応じてスケールすることは、分析パス全体にわたって密接に関連した要件です。効率的なデータ準備とクエリ実行が組み合わさることで、CostBench において ClickHouse Cloud は**比類なきエンドツーエンドの 1 ドルあたりの性能**を達成し、4 つの比較全体で **412 倍〜1,996 倍優れていました**。リアルタイムアプリケーションやエージェントにとって、リクエストが増加するにつれて、その効率性の価値はますます大きくなります。

<iframe src="/uploads/costbench_p06_28_agentic_efficiency_zone_refresh_20261016_6971e7e5b8.html" frameborder="0" style="width: 100%; height: 500px; max-height: 800px;"></iframe>

**「ClickHouse に対抗できるものは他に存在しない」**<br/>— [Alon Tal 氏](https://clickhouse.com/ja/blog/how-tesla-built-quadrillion-scale-observability-platform-on-clickhouse-jp)(Tesla 社 シニアスタッフソフトウェアエンジニア)

[ご自身のワークロードで ClickHouse Cloud を試す。](https://console.clickhouse.cloud/signUp)