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

Apache Doris vs Trino / Presto

Apache DorisとTrino/Prestoはどちらも人気のデータレイクハウスクエリエンジンですが、DorisはTrino/Prestoよりもパフォーマンス面で優れています。Trino/Prestoが主にクエリエンジンである一方、Dorisはスタンドアロンデータウェアハウスとしても機能できます。これにより、企業はDorisでデータウェアハウスとレイクハウスクエリエンジンを統合でき、データアーキテクチャを簡素化できます

  • 統合: Dorisはデータウェアハウスとレイクハウスクエリエンジンを統合し、技術スタックを簡素化します

  • 10倍のクエリパフォーマンス: Dorisネイティブテーブルは、Presto/Trinoと比較してクエリパフォーマンスを最大10倍向上させます

  • 2~3倍高速: レイクハウスエンジンとしてのDorisは、Presto/Trinoより2~3倍高速です

主要な移行事例

tencent-music

"世界的に有名なインターネット大手企業として、我々の初期のデータプラットフォームはTrino、Pinot、Iceberg、Kyuubiを使用していましたが、複雑性、冗長性、パフォーマンスの悪さに直面していました。これらをApache Dorisに置き換えることで、データレイクハウスとクエリエンジンを統合し、パフォーマンスを向上させ、コストを30%削減しました。"

tencent-music

"PrestoからDorisに切り替えた後、クエリパフォーマンスが大幅に改善され、クエリ時間が20~40秒から1~2秒に短縮されました。 一般的なデータディメンションに基づいて2~3つのマテリアライズドビューを設計することで、Dorisはクエリに最適なビューを自動的にマッチングでき、パフォーマンスをさらに向上させることができます。"

tencent-music

"TrinoとSparkSQLを使用していた時は、クエリレイテンシが分単位で、パフォーマンスが低かったです。Dorisに切り替えた後、パフォーマンスが2倍向上しました。 Dorisはまた技術スタックを統合し、リアルタイムおよびインタラクティブ分析ツールの管理を簡素化しました。"

Apache Doris vs. Trino / Presto

Apache DorisTrino / Presto
アーキテクチャ
  • 統合アーキテクチャ: データウェアハウスとレイクハウスクエリエンジンの機能を結合
  • フェデレーテッドクエリ: データ移動なしで複数の異種データソース間でのクエリに優れているが、内蔵ストレージは不足
実行エンジン
  • C++で実装された完全ベクトル化実行エンジンで、高性能データ処理を実現
  • 主にJavaで実装され、ベクトル化は現在Hummingbirdプロジェクトの一部として開発中
クエリオプティマイザ
  • 結合、集約、ソートなどの複雑なSQL操作に対するコストベース最適化を備えた高度なクエリオプティマイザ
  • コストベース最適化をサポートしているが、統計収集が高度でなく、手動での完全収集が必要
キャッシュメカニズム
  • メタデータキャッシュ: TTL、自動更新、増分同期を備えたインメモリメタデータキャッシュ
  • データキャッシュ: ネットワークI/Oを削減するためのローカルSSD上のホットデータキャッシュ
  • クエリキャッシュ: クエリ結果キャッシュ用のSQL Cacheとパーティション Cache
  • データキャッシュ: Alluxioなどの外部キャッシュソリューションに依存
マテリアライズドビュー
  • 増分更新: 増分更新と複数の更新戦略をサポート
  • 透明な高速化: クエリオプティマイザが自動的に最適なマテリアライズドビューにクエリをルーティング
  • 手動更新: 手動での完全更新のみで、高度な機能は制限的
使用事例
  • 高並行リアルタイム分析
  • インタラクティブ分析
  • インタラクティブ分析のみ

パフォーマンス比較

TPC-DS 1TBベンチマーク

TPC-DS 1TBベンチマークは、24テーブルにわたる63.5億レコードを含む1TBデータセットを使用してデータウェアハウスパフォーマンスを評価します。結合、集約、サブクエリをテストする99の複雑なクエリが含まれています。スノーフレークスキーマに基づいて、実世界の販売シナリオをシミュレートします。クエリの複雑性により、1TBスケールは挑戦的です。

テスト環境は以下で構成されています:

  • 1つのFE/Coordinatorノードと5つのBE/Workerノード。
  • 各ノードは64コア、1.5TBのメモリ、SSDストレージを持っています。
  • HDFSはこれらのノードに共存しており、Hiveテーブルが作成されています。

このテストでは、同じデータセットと同等のコンピューティングサービスを使用して、結果は以下を示しています:

  • データがDorisの内部テーブルにインポートされ、Dorisを使用してクエリされる場合、最短の実行時間を達成します。
  • DorisとTrinoがそれぞれHiveテーブルから直接データをクエリする場合、Dorisはデータレイクにおいて優れたクエリ高速化パフォーマンスを実証します。
TPC-DS 1TB  Benchmark