TL;DR
TPC-H SF100において、59コアのClickHouse Cloudノード1台は、Snowflake、Databricks、BigQuery、Redshiftに対して生のランタイムで競争力を持ちつつ、コストパフォーマンスでは首位となりました。SF10では、22クエリすべてを1セント未満で実行できます。
ClickHouse CloudがTPC-H比較に参戦 #
完全なTPC-Hワークロードを、ClickHouse Cloud、Snowflake、Databricks、BigQuery、Redshiftで実行しました。
SF100は、100GBのデータ、8億6,600万行、そして22個のJOIN中心の分析クエリで構成されます。
結果として、ClickHouse Cloudは生のランタイムで競争力を発揮し、コストパフォーマンスでは首位を獲得しました。
SF10では、ワークロード全体が2.9秒で完了し、コンピュートコストはわずか$0.009でした。
1セント未満です。
本記事では、ベンチマーク結果を紹介します。その背景にある2年間のJOINエンジニアリングについては、コンパニオン記事で解説しています。
ベンチマーク設定 #
すべてのベンチマークスクリプト、クエリ、結果ファイルは公開GitHubリポジトリで公開されており、結果を再現・検証できます。
データセットとランタイム測定 #
メインの比較ではTPC-H SF100を使用しています,600万行に対する22クエリです。
ランタイム測定では、コールドランとホットランを区別します:
コールドラン: コールドスタート性能の体系的な比較は行いませんでした。クラウドウェアハウスはキャッシュ挙動が異なり、ほとんどの場合、ユーザーがOSレベルのページキャッシュを確実にリセットしたり、コンピュートをオンデマンドで再起動したりすることができません。コールド条件を標準化できないため、コールド結果は公正かつ再現性のある形で示せません。
ホットラン: 各クエリは結果キャッシュを無効化した状態で3回実行しました。チャートには最速のホットラン結果を使用しています。結果キャッシュは無効化されているため、ベンチマークはクエリの実行を測定しており、以前にキャッシュされた結果を返すものではありません。
比較対象システム #
ClickHouse Cloudでは、1つの固定構成を使用しました。他のシステムについては、実用的なウェアハウスまたはサーバーレスのキャパシティ構成を選択し、最も近いハードウェア比較については後述します。
- Snowflake: Small、Medium、Large、4X-Large Gen2の各ウェアハウス
- Databricks (SQL Serverless): Small、Medium、Large、4X-Largeの各ウェアハウス
- BigQuery: 2,000 スロット
- Redshift Serverless: 128 RPU
コスト計算 #
コスト計算には、クラウドデータウェアハウスの課金およびコストパフォーマンスに関する以前の記事で紹介したのと同じ方法論を使用しています。各ベンダーの公開課金モデルを実測のクエリランタイムに適用し、すべてのシステムについて完全な秒単位のコンピュート課金を想定し、同等の米国東部リージョン(対応システムはAWS us-east、BigQueryはGCP us-east)におけるEnterpriseティアの価格を使用します。
この設定を前提に、まず生のホットランタイムを見ていきます。
TPC-H SF100: 生のホットランタイム #
TPC-H SF100は、100GBのデータ、8億6,600万行、22個のJOIN中心の分析クエリで構成されます。
下の図では、各バーが22のTPC-Hクエリそれぞれの3回中最速の実行時間の合計を示しています。値が低いほど良好です。
ClickHouse Cloudはワークロードを19.8秒で完了しました。
Snowflakeは、Smallウェアハウスで32.7秒、Mediumで22.9秒、Largeで15.9秒、4X-Largeで14.7秒で完了しました。
Databricksは、Smallウェアハウスで37.3秒、Mediumで40.0秒、Largeで28.9秒、4X-Largeで26.4秒で完了しました。
BigQueryは、2,000スロットで26.2秒で完了しました。
Redshift Serverlessは、128 RPUで30.7秒で完了しました。
これらの数値の背後にあるコンピュートは、各システム間で同一ではない点に注意してください。ClickHouse Cloudは、59コアおよび236 GiBメモリを搭載したGraviton3コンピュートノード1台を使用しています。
SnowflakeとDatabricksについては、コンピュートのスケールに応じてランタイムがどう変化するかを示すために複数のウェアハウスサイズをテストしました。ClickHouse Cloudの59コアノードに最も近いハードウェアの比較対象は、Snowflake Large Gen2(64基のAWS Graviton3コアと128GBメモリを使用しているとされる、参照)と、Databricks Large(ドキュメント化されたクラシック・コンピュートプレーンのサイジングで、64基のIntel Xeon E5-2686 v4コアと488 GiBメモリにマッピングされる)です。ベンチマークではDatabricks SQL Serverlessを使用しましたが、公開されているウェアハウスサイジングは有用な比較基準となります。
また、サーバーレスのキャパシティモデルを持つシステムは、事前にプロビジョニングされた大規模なコンピュートプール全体にクエリ処理を自動的にファンアウトすることにも注意してください,000 スロットを使用し、Redshift Serverlessは128 RPUを使用しました。
59コアのコンピュートノード1台で、ClickHouse Cloudは競争力を発揮しています。TPC-H SF100の生のランタイムにおいて、同等の64コアのSnowflake/Databricks構成や、59コアを大幅に超える事前プロビジョニングされたコンピュートプールを自動的にファンアウトするサーバーレスエンジンを含む主要なクラウドデータウェアハウスに対して肉薄しています。
ランタイムは話の半分にすぎない #
前述のとおり、各システムがTPC-H SF100ワークロードを実行するのに使用したコンピュートを直接比較するのは困難です。
しかし、ワークロード実行のコストを直接比較することはできます。
下のチャートでは、同じランタイムバーを保持しつつ、各ベンダーの公開課金モデルを用いてホットランのコンピュートコストを重ねて表示しています。
ClickHouse Cloudはワークロードを19.8秒、コンピュートコスト$0.063で完了しました。
Snowflake Largeはより高速で15.9秒でしたが、コストは$0.143でした。Snowflake 4X-Largeはさらに高速で14.7秒でしたが、コストは$2.121でした。Databricksは$0.087から$2.714の範囲でした。BigQueryは26.2秒で$0.163、Redshift Serverlessは30.7秒で$0.436で完了しました。
次のセクションでは、ランタイムとコストを単一のコストパフォーマンススコアに集約します。
TPC-H SF100: コストパフォーマンスランキング #
前のチャートでは、ランタイムとコストを並べて表示しました。次に、両者をシンプルなコストパフォーマンススコアにまとめます:
コストパフォーマンススコア = コンピュートコスト × ランタイム
値が低いほど良好です。
これにより、クラウドベンチマークの本質的な問いに答えられます:
1ドルあたり最も高いJOIN性能を提供するのは誰か?
高速なシステムほどスコアが良くなり、低コストなシステムほどスコアが良くなります。遅いまたは高コストなシステムはすぐに順位を落とします。そして、システムが遅く、かつ高価であれば、両方の効果が相乗的に作用します。
ClickHouse Cloudが首位となりました。
次に近い構成はSnowflake LargeとSnowflake Mediumで、どちらも約2倍悪い結果でした。Databricks Smallと2,000スロットのBigQueryは3倍悪く、Databricks LargeとMediumはそれぞれ5倍、6倍悪い結果でした。
ハイエンドでは、Redshift Serverlessは11倍、Snowflake 4X-Largeは25倍、Databricks 4X-Largeは57倍、BigQuery On-demandは67倍悪い結果でした。
ClickHouse CloudはTPC-H SF100で最良のコストパフォーマンスを実現、次に近いテスト構成は約2倍悪い結果でした。
TPC-H SF100: クエリ別ランタイムの内訳 #
完全性のため、クエリ別のランタイム内訳を示します。各バーは、22のTPC-Hクエリそれぞれにおける3回中最速の実行時間を表しています。
集計結果は1つの外れ値によって決まっているわけではありません。ClickHouse Cloudはクエリセット全体にわたって一貫して競争力があります。
スケールダウン: 1セント未満のTPC-H #
SF100が本記事のメインベンチマークですが、SF10にスケールダウンすると、タイトルどおりの瞬間が得られます。
SF10では、ワークロードは同じ22個のJOIN中心のTPC-Hクエリ全体で8,600万行を扱います。
59コアのコンピュートノード1台という同じClickHouse Cloud構成で、ホットなワークロード全体が2.9秒で実行され、コンピュートコストは$0.009でした。
下のチャートは、ランタイムとコストを単一のコストパフォーマンススコアに集約し、「1ドルあたり最も高いJOIN性能を提供するのは誰か?」の問いに答えます。
この規模では、ClickHouse Cloudが両次元で勝利しています。コストパフォーマンスで次点だったのはSnowflakeでしたが、それでも8倍悪い結果でした。BigQueryは12倍悪く、Redshift Serverlessは27倍悪く、より大きなSnowflakeおよびDatabricksの構成はさらに大きく遅れをとりました。
SF10では、ClickHouse Cloudは22個のTPC-Hクエリすべてを2.9秒、1セント未満で実行し、大差をつけて最良のコストパフォーマンスを実現しました。
スケールアップ: SF1000以降 #
SF100の結果は、ClickHouseが今日どこに位置するかを示しています、ClickHouse Cloudは、より大規模または弾力的なコンピュート構成を使用するシステムを含む主要なクラウドデータウェアハウスに対して、ランタイムとコストパフォーマンスの両面で競争力があります。
しかし、SF100は話の終わりではありません。
TPC-H SF1000以上などのはるかに大規模なスケールファクターでは、JOIN実行を複数ノードにわたって適切にスケールさせる必要があります。エンジニアリングチームが次に注力しているのはまさにこの分野で、ClickHouse Cloudにおける大規模分散JOINのためのマルチステージ分散クエリ実行に取り組んでいます。
それは次の章のテーマです。今回の章は、ここ2年間のJOINエンジニアリングがあったからこそ可能になりました。
ここまでの道のり #
上記の結果は、ClickHouseで2年間集中して取り組んだJOINエンジニアリングの成果です。
その取り組みから1年経過した時点で、同じTPC-H SF100のJOIN中心ワークロードは既に22.4と比較して4.4倍高速になっていました。さらに1年後の現在、全体では26倍高速となり、直近1年だけでデフォルト設定下でさらに6倍の改善を貢献しました。
この進歩は、スタック全体にわたる改善によってもたらされました、より良いプランニング、相関サブクエリのサポート、遅延カラム複製、ランタイムフィルタ、統計ベースのJOIN順序の最適化などです。
コンパニオン記事では、これらの数値の背景にあるエンジニアリングのストーリーを解説します「高速だがJOINには不向き」から、デフォルトで競争力のあるJOIN性能を実現するまでに、どのように歩んできたかを語ります。
2年間集中して取り組んだJOINエンジニアリングにより、ClickHouseはTPC-H SF100のJOIN中心ワークロードで26倍高速になりました。それこそが、これらのベンチマーク結果を可能にしたものです。



