メインコンテンツまでスキップ

ClickHouseの代替手段

Apache DorisとClickHouseは、どちらもカラムナストレージと高速クエリ機能を備えた主要なリアルタイム分析データベースです。Apache Dorisは、3つの重要な領域でClickHouseに対して大きなアドバンテージを提供します:Cost-Based Optimizerを搭載した高度なMPPアーキテクチャによる10倍高速なjoinクエリパフォーマンス、リソースの独立したスケーリングを可能にするcompute-storage分離による低いインフラストラクチャコスト、そして高頻度なデータ変更中もクエリ速度を維持するMerge-on-Writeエンジンによる優れたリアルタイム更新パフォーマンス

注目の移行事例

tencent-music

"Tencent Musicのデータプラットフォームは、ClickHouseからApache Dorisに移行し、データの適時性を改善し、メンテナンスコストを削減しました。Dorisの柔軟な取り込み方法と堅牢な整合性プロトコルにより、高い可用性と信頼性を確保しています。"

ハイライト:

  • マルチテーブルjoinパフォーマンスの大幅な向上。
  • 簡単なスケーリングとメンテナンス。
  • 効率的なデータ処理とリアルタイム更新。
tencent-music

"Apache Dorisは大多数のシナリオにおいて、特に複雑なjoinシナリオにおいて、ClickHouseよりも高速なクエリレスポンス時間を提供し、そのパフォーマンスはClickHouseを大幅に上回ります。"

ハイライト:

  • コアビジネスクエリ2-3倍高速。
  • 複雑なjoinクエリ2-10倍高速。
  • すべてのClickHouse OOMクエリを実行可能。
tencent-music

"lakehouseアーキテクチャへの移行に成功し、データパイプラインを簡素化し、Dorisが直接データレイクデータにアクセスできるため、データインポートの必要性を排除しました。"

ハイライト:

  • データレイクデータの直接クエリ。
  • 改善されたクエリパフォーマンス。
  • マテリアライズドビューによる柔軟なデータガバナンス。

Apache Doris vs. ClickHouse

Apache DorisClickHouse
アーキテクチャ & SQL
  • MPPアーキテクチャベース
  • 標準SQL対応、MySQL互換
  • Scatter-Gatherアーキテクチャを使用
  • SQLライクな機能を持つが、非標準SQL
Joinクエリパフォーマンス
  • 2-10倍高速なjoinをノード間での真の分散join実行で実現
  • 高度なCost-Based Optimizer (CBO)が最適なjoin戦略(broadcast、shuffle、colocate)を自動選択
  • Colocate Joinが事前パーティション済みテーブルのネットワークshuffleを排除
  • Runtime Filter pushdownがデータスキャンを最大90%削減
  • 透過的なクエリ高速化 - ベーステーブルのクエリが自動的にマテリアライズドビューを使用するよう書き換え
  • ClickHouseでOOMを引き起こす複雑なTPC-DSクエリを処理
  • 限定的なjoin機能 - サブクエリと非正規化に依存
  • Cost-Based Optimizerなし;手動のクエリチューニングが必要
  • Scatter-Gatherアーキテクチャは分散joinに設計されていない
  • TPC-DSクエリの約50%がサポートされていない相関サブクエリにより失敗
  • 自動クエリ書き換えなし - マテリアライズドビューを明示的にクエリする必要があり、ベーステーブルのクエリを高速化できない
  • 大規模マルチテーブルクエリで頻繁なOOMエラー
リアルタイム更新
  • リアルタイム更新ワークロードでClickHouseより34倍高速なクエリパフォーマンス
  • delete bitmapを持つMerge-on-Write (MoW)エンジンが更新頻度に関係なくクエリパフォーマンスを一定に保つ
  • 強整合性プライマリキーモデル - 更新は即座に可視化され、古い読み取りがない
  • クエリパフォーマンス低下なしで高スループットUPSERT操作をサポート
  • 部分カラム更新により書き込み増幅を最小化
  • ReplacingMergeTreeは結果整合性のみサポート - バックグラウンドマージまで古いデータが可視
  • 整合性読み取りのためにFINALキーワードを使用するとクエリが2-10倍遅くなる
  • 高い更新頻度により過度のマージオーバーヘッドとクエリレイテンシスパイクが発生
トランザクション対応
  • データ取り込みの完全なACIDトランザクション対応
  • アトミックバッチインポート - すべてのデータロードが一緒に成功または失敗
  • 二相コミットが分散ノード間でデータ整合性を保証
  • トランザクション対応なし
  • 失敗したインポート中に部分データが可視になる場合がある
  • データ整合性のためにアプリケーションレベルでの処理が必要
クエリ同時実行
  • 10倍高い同時実行性 - 数千の同時クエリをサポート
  • 効率的なメモリ管理により高負荷下でのOOMを防止
  • ワークロード分離によるクエリキュー管理
  • 限定的な同時クエリサポート(通常100未満)
  • メモリ集約的なクエリがクラスタ不安定を引き起こす
  • 組み込みワークロード管理なし
データAPI
  • Arrow-flightベースの高スループット読み取りAPIを提供し、データサイエンス/AIツールなど他のエンジンとの統合を促進
  • JDBC API経由でのみ非効率なデータ読み取り
オープンレイクハウス構築
  • レイクハウス SQLエンジンとして機能し、Hive、Hudi、Iceberg、Parquetデータレイク形式のクエリをサポート
  • 限定的なレイクハウス統合機能
運用・保守
  • 自動スケールイン、スケールアウト、レプリカバランシングをサポート
  • スケーリング操作時に手動リバランシングが必要
パフォーマンス
  • ワイドテーブルベンチマーク(ClickBench)において、Dorisは2022年10月と2024年10月に1位または2位にランクインし、ClickHouseを上回る性能を発揮
  • 大規模TPC-HおよびTPC-DSテストにおいて、Dorisは最高レベルのパフォーマンスを達成
  • ClickBenchパフォーマンスの観点から、ClickHouseとDorisは交互に主導的地位を占めている
  • 大規模TPC-HおよびTPC-DSテストで多くのOOM(Out of Memory)クエリを経験
コスト効率(Storage-Compute分離)
  • computeとstorageの独立したスケーリングにより最大70%のコスト削減
  • コールドデータは低コストオブジェクトストレージ(S3、HDFS、OSS)に、ホットデータはローカルSSDを使用
  • エラスティックcompute スケーリング - データリバランシングなしでノードを追加/削除
  • 自動データ温度管理を持つマルチティアストレージ
  • 任意の時点で必要なcomputeリソースのみに支払い
  • バージョン3.0からオープンソース機能として利用可能
  • storageとcomputeが密結合 - スケーリングには両方が必要
  • storage-compute分離はプロプライエタリなClickHouse Cloudのみ
  • スケーリングにはノード間での高価なデータリバランシングが必要
  • ピーク負荷に対処するためにcomputeをオーバープロビジョニングする必要
  • 可変ワークロードに対する総所有コストが高い
オープンソース
  • Apache Software Foundationの下で完全にオープンソース;ライセンスとガバナンスはコミュニティ主導であり、単一のエンティティによって変更されることはありません。
  • オープンソースだが、商用会社によって管理されている。

パフォーマンス比較

ClickBenchベンチマーク

ClickBenchは、ClickHouseチームによって作成・保守されている分析データベースのパフォーマンスを評価するベンチマークツールです。

複雑なマルチテーブルjoinではなく、大規模でフラットなテーブルのパフォーマンスをテストすることに焦点を当てています。主要なWebアナリティクスプラットフォームからの実世界データを使用し、クリックストリーム分析や構造化ログなどの典型的なシナリオをカバーしています。

ベンチマークは、複雑なjoinを含まない集計操作とシングルテーブルパフォーマンスをテストする一連のクエリで構成されています。これにより、リアルタイムアナリティクスと大規模データ処理に最適化されたデータベースの評価に特に有用です。

ClickBench  Benchmark

SSB-Flat SF100ベンチマーク

SSB-Flat SF100は、大規模なワイドテーブルの処理における分析データベースのパフォーマンスをテストするために設計されたベンチマークです。

Star Schema Benchmark (SSB)から派生しており、スタースキーマを単一のワイドテーブルにフラット化してシングルテーブルクエリのパフォーマンスに焦点を当てています

SF100は、データスケールがベースサイズの100倍であることを示し、クエリパフォーマンスとシステムスケーラビリティを評価するための重要なテストとなっています。

ClickBench  Benchmark

TPC-H SF100ベンチマーク

スケールファクタ100(SF100)でのTPC-Hベンチマークは、データベースパフォーマンスを評価するために広く使用されている標準です。実世界のビジネスインテリジェンスワークロードをシミュレートするよう設計された複雑なSQLクエリのセットが含まれています。

SF100は、データサイズがベースサイズの100倍であることを示し、クエリパフォーマンスとシステムスケーラビリティを測定するための大規模テストとなっています。

注意:ClickHouseが7つのクエリの実行に失敗したため、総実行時間は、Dorisが全22クエリを実行した時間と、ClickHouseが15クエリのみを実行した時間を指します。

ClickBench  Benchmark

TPC-DS 1TBベンチマーク

TPC-DS 1TBは、データウェアハウスと分析データベースのパフォーマンスを評価するために広く認識されているベンチマークです。24テーブルに分散した約63.5億レコードを含む、約1TBサイズのデータセットが含まれています。

ベンチマークには、join、集計、サブクエリなど、データベースパフォーマンスのさまざまな側面をテストするよう設計された99の複雑なクエリが含まれています。

TPC-DSスキーマはスノーフレークスキーマをベースとし、Web、カタログ、店舗販売などの実世界シナリオを表現しています。1TBスケールはデータウェアハウスにとって中程度のサイズと考えられますが、クエリの複雑さと大量のレコード数により依然として困難です。

注意:TPC-DSは相関サブクエリを多用しており、これはテスト時点(2024年9月)でClickHouseによってサポートされていません。その結果、ベンチマーククエリの約50%がエラーで失敗します。

ClickBench  Benchmark

その他の移行事例