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

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 Benchmark

TPC-DS 1TB Benchmarkは、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