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

ClickHouseの代替

Apache DorisとClickHouseは、いずれもカラム型ストレージと高速クエリ機能を備えた主要なリアルタイム分析データベースです。Apache Dorisは、3つの重要な領域でClickHouseに対して大きな優位性を提供します:Cost-Based Optimizerを搭載した高度なMPPアーキテクチャによる10倍高速なjoinクエリパフォーマンス、リソースの独立スケーリングを可能にするcompute-storage separationによるより低いインフラストラクチャコスト、高頻度のデータ変更時にもクエリ速度を維持する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

"ClickHouseをDorisに置き換えることで、Kwaiはレイクハウスアーキテクチャへのアップグレードに成功し、データパイプラインを簡素化し、Dorisがデータレイクデータに直接アクセスできるため、データインポートの必要性を排除しました。"

ハイライト:

  • データレイクデータの直接クエリ。
  • クエリパフォーマンスの向上。
  • materialized viewsによる柔軟なデータガバナンス。

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%削減
  • 透過的なクエリ高速化 - ベーステーブルのクエリが自動的にmaterialized viewsを使用するよう書き換え
  • ClickHouseでOOMを引き起こす複雑なTPC-DSクエリを処理
  • 限定的なjoin機能 - サブクエリと非正規化に依存
  • Cost-Based Optimizerなし;手動でのクエリチューニングが必要
  • Scatter-Gatherアーキテクチャは分散joinのために設計されていない
  • TPC-DSクエリの約50%がサポート対象外の相関サブクエリのため失敗
  • 自動クエリ書き換えなし - materialized viewsを明示的にクエリする必要;ベーステーブルのクエリを高速化できない
  • 大規模マルチテーブルクエリで頻繁なOOMエラー
リアルタイム更新
  • 34倍高速なクエリパフォーマンス - リアルタイム更新ワークロードでClickHouseより高速
  • delete bitmapを用いたMerge-on-Write (MoW)エンジンにより、更新頻度に関係なくクエリパフォーマンスが一定
  • 強一貫性プライマリキーモデル - 更新は即座に可視化され、stale readなし
  • クエリパフォーマンス劣化なしで高スループットUPSERT操作をサポート
  • 部分カラム更新により書き込み増幅を最小化
  • ReplacingMergeTreeは結果整合性のみサポート - バックグラウンドマージまでstaleデータが可視
  • 一貫性読み込みのためのFINALキーワード使用により2-10倍のクエリ速度低下
  • 高頻度更新により過度なマージオーバーヘッドとクエリ遅延スパイクが発生
トランザクションサポート
  • データ取り込みでの完全なACIDトランザクションサポート
  • アトミックバッチインポート - すべてのデータロードが成功または一括失敗
  • Two-phase commitにより分散ノード間でのデータ一貫性を保証
  • トランザクションサポートなし
  • 失敗したインポート時に部分データが可視になる可能性
  • データ一貫性のためのアプリケーションレベルでの処理が必要
クエリ同時実行性
  • 10倍高い同時実行性 - 数千の同時クエリをサポート
  • 効率的なメモリ管理により高負荷下でのOOMを防止
  • ワークロード分離を備えたクエリキュー管理
  • 限定的な同時クエリサポート(通常100未満)
  • メモリ集約的クエリによりクラスターが不安定になる
  • 内蔵ワークロード管理なし
データAPI
  • Arrow-flightベースの高スループット読み取りAPIを提供し、データサイエンス/AIツールなど他エンジンとの統合を促進
  • JDBC API経由での非効率的なデータ読み取りのみ
オープンレイクハウス構築
  • レイクハウスのSQLエンジンとして機能し、Hive、Hudi、Iceberg、Parquetデータレイク形式のクエリをサポート
  • 限定的なレイクハウス統合機能
運用 & メンテナンス
  • 自動スケールイン、スケールアウト、レプリカバランシングをサポート
  • スケーリング操作時の手動リバランシングが必要
パフォーマンス
  • wide tableベンチマーク(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 Separation)
  • 最大70%のコスト削減 - computeとstorageの独立スケーリング
  • コールドデータは低コストオブジェクトストレージ(S3、HDFS、OSS)に、ホットデータはローカルSSDを使用
  • エラスティックcomputeスケーリング - データリバランシングなしでノード追加/削除
  • 自動データ温度管理による多層ストレージ
  • 任意時点で必要なcomputeリソースのみの料金
  • バージョン3.0以降でオープンソース機能として利用可能
  • storageとcomputeの密結合 - スケーリングには両方が必要
  • Storage-compute separationはプロプライエタリなClickHouse Cloudのみ
  • スケーリングには高コストなノード間データリバランシングが必要
  • ピーク負荷処理のためのcomputeオーバープロビジョニングが必要
  • 変動ワークロードでの総所有コストが高い
オープンソース
  • Apache Software Foundation下での完全オープンソース;ライセンスとガバナンスはコミュニティ主導で、単一エンティティによって変更されることはない。
  • オープンソースだが、商用企業によってコントロールされている。

パフォーマンス比較

ClickBench Benchmark

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

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

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

ClickBench  Benchmark

SSB-Flat SF100 Benchmark

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

Star Schema Benchmark (SSB)から派生していますが、スタースキーマを単一のwideテーブルに平坦化し、シングルテーブルクエリのパフォーマンスに焦点を当てます。

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

ClickBench  Benchmark

TPC-H SF100 Benchmark

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

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

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

ClickBench  Benchmark

TPC-DS 1TB Benchmark

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

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

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

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

ClickBench  Benchmark

その他の移行ストーリー