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

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