本記事は「Apache Doris on AWS Graviton5: Up to 78% Higher Query Performance」(https://www.velodb.io/blog/apache-doris-on-aws-graviton5-up-to-78-higher-query-performance )を日本語に翻訳・再構成したものです。
TL;DR
- Apache Doris 上で 194 本の分析クエリを、Amazon EC2 M9g(AWS Graviton5) と M7i(第4世代 Intel Xeon) で実行しました。
- 5 つのベンチマークスイートすべてで Graviton5 の方が高速で、向上幅は 18%(TPC-DS)から 78%(ClickBench) でした。
- 個々のクエリで見ても 194 本中 191 本 が Graviton5 で高速化しました。
本記事は講演「Apache Doris on AWS Graviton5: Real-Time OLAP Price-Performance, Benchmarked」の補足記事です。AWS のケーススタディでは x86 から Graviton5 への比較で「最大 78% の性能向上」と紹介されていますが、この 78% は 5 つのスイートのうち ClickBench の結果です。
Graviton5 で何が変わり、なぜ OLAP に効くのか
AWS が公表している Graviton5 の主な仕様は次のとおりです。
- 1 チップあたり最大 192 コア
- L3 キャッシュ総量が Graviton4 の 5 倍(コアあたりでは 2.6 倍)
- クロック 3.3 GHz(Graviton4 は 2.8 GHz)
- コア間レイテンシが最大 33% 低減
また AWS は、データベースワークロードで Graviton4 比最大 30% の性能向上を報告しています。
これらを分析処理に当てはめると、次のように効いてきます。
| 特徴 | 分析処理への効果 |
|---|---|
| キャッシュ | JOIN や集約のハッシュテーブルがキャッシュに収まれば、メインメモリへのアクセスを回避できる |
| コア | 各 vCPU が物理コアに対応するため、Doris のパイプラインタスクが兄弟スレッドとコアを共有しない |
| レイテンシ | 並列タスク間のデータ交換や、部分集約結果のマージが速くなる |
Apache Doris はスキャン、JOIN、集約、ソート、データ交換を Arm 向けに最適化しており、x86 の SSE/AVX 向けベクトル化コードを Arm NEON へ移植する作業も行っています。
テスト方法
- 比較対象:EC2 M9g(Graviton5) vs M7i(第4世代 Intel Xeon Scalable、Sapphire Rapids)
- 両環境で同一バージョンの Doris、同一データ規模を使用
- SSB、TPC-H、TPC-DS はスケールファクタ(SF)100
| スイート | クエリ数 |
|---|---|
| ClickBench | 43 |
| SSB | 13 |
| SSB Flat | 13 |
| TPC-H | 22 |
| TPC-DS | 103 |
| 合計 | 194 |
評価指標はクエリごとのホットラン時間で、スイート単位で合計しています。性能向上率は次の式で定義しています(78% という数字もこの定義に基づき、以前の Graviton4 の検証でも同じ定義を使っています)。
性能向上率 = (x86 の実行時間 ÷ Graviton5 の実行時間) − 1
結果:Graviton5 はどれだけ速いか
すべてのスイートで Graviton5 が上回りました。最も伸びたのは ClickBench(78.3%)、最も小さかったのは TPC-DS(18.0%)です。
| スイート | クエリ数 | x86 M7i (s) | Graviton5 M9g (s) | 性能向上率 | 実行時間削減率 |
|---|---|---|---|---|---|
| ClickBench | 43 | 8.49 | 4.76 | 78.3% | 43.9% |
| SSB Flat SF100 | 13 | 0.79 | 0.52 | 51.2% | 33.9% |
| SSB SF100 | 13 | 1.82 | 1.28 | 42.3% | 29.7% |
| TPC-H SF100 | 22 | 8.90 | 6.73 | 32.2% | 24.4% |
| TPC-DS SF100 | 103 | 39.71 | 33.66 | 18.0% | 15.2% |
「性能向上率」と「実行時間削減率」は同じ結果の別表現です。たとえば ClickBench の「78.3% 高速」は「実行時間が 43.9% 短い」と同じ意味です。
クエリ単位でも成り立つか
- 194 本中 191 本 が Graviton5 で高速化
- クエリ単位の高速化倍率の中央値は 1.48 倍
- ClickBench の 2 本はどちらも 1 ms で同値
- 最大の向上は ClickBench Q40 の 3.64 倍
唯一遅くなったのは TPC-DS Q51 で、Graviton5 では 4,487 ms、x86 では 1,002 ms でした。Q51 はウィンドウ関数と FULL OUTER JOIN を使って累積売上を計算するクエリです。このクエリも合計値に含めており、除外した場合 TPC-DS の向上率は 18.0% ではなく 32.7% になります。
どのワークロードが最も恩恵を受けるか
| スイート | 処理の特徴 | 性能向上率 |
|---|---|---|
| ClickBench | 1 つのワイドテーブルに対するフィルタ、GROUP BY、文字列関数 | 78.3% |
| SSB Flat | SSB のデータを事前に JOIN して 1 テーブル化 | 51.2% |
| SSB | スタースキーマ(ファクト 1、ディメンション 4) | 42.3% |
| TPC-H | 8 テーブル、多段 JOIN とサブクエリ | 32.2% |
| TPC-DS | 24 テーブル、複雑な JOIN とウィンドウ関数 | 18.0% |
最もわかりやすい比較は SSB Flat と SSB です。データは同じで、JOIN を事前計算しているかどうかだけが違います。JOIN をなくすことで向上率は 42.3% から 51.2% に上がりました。
このため、最も大きな効果が期待できるのは、顧客向けダッシュボードや、ワイドテーブル上のログ・イベント分析です。
Doris 向けの Graviton5 インスタンスの選び方
| インスタンスファミリー | 想定ワークロード |
|---|---|
| M9g(汎用) | ダッシュボードとアドホック SQL の混在。今回ベンチマークしたファミリー |
| C9g(コンピューティング最適化) | スキャンや集約が中心のワークロード |
| R9g(メモリ最適化) | 大規模な JOIN、高カーディナリティの集約 |
| M9gd / C9gd / R9gd | 上記にローカル NVMe SSD を追加した「d」バリアント |
選定にあたっての推奨事項は次のとおりです。
- 自社のクエリを、ピーク時の同時実行数で検証する
- Doris のバージョンとデータを比較対象間で揃える
- スループットだけでなくレイテンシも測定する
詳しくは AWS の「AWS Graviton Performance Testing」ホワイトペーパーも参考になります。
FAQ
Q. AWS Graviton5 上の Apache Doris は x86 と比べてどれくらい速いですか?
M9g と M7i の比較で、5 つのスイートは 18%(TPC-DS)から 78%(ClickBench)高速でした。194 本中 191 本のクエリが高速化し、中央値は 1.48 倍です。
Q. 「78% の性能向上」は「実行時間 78% 削減」という意味ですか?
いいえ。同じ結果の別表現です。ClickBench は 1.78 倍速く(性能向上 78.3%)、これは実行時間 43.9% 削減に相当します。
Q. どの Doris ワークロードが Graviton5 の恩恵を最も受けますか?
ワイドテーブルに対するスキャン・集約中心のクエリです(ClickBench 78.3%、SSB Flat 51.2%)。JOIN が多いスイートでは TPC-H 32.2%、TPC-DS 18.0% でした。
Q. Graviton 向けの特別な Doris ビルドは必要ですか?
不要です。doris.apache.org で配布されている標準の ARM64 バイナリがそのまま Graviton で動作します。Arm 向けの最適化はメインラインのコードに含まれています。
Q. Graviton4 と比べるとどうですか?
2025 年の検証では、Graviton4 上の Doris は c6i(x86)インスタンスより平均約 50% 高速でした。ただしこの検証は x86 側のベースラインが古いため、今回の結果と直接比較はできません。AWS は Graviton5 について Graviton4 比でデータベース性能最大 30% 向上と報告しています。
まとめ
今回テストしたすべてのスイートで Graviton5 が上回り、特にダッシュボードやイベントデータのようなスキャン中心の分析で大きな効果が見られました。ARM64 ビルドは doris.apache.org/download からダウンロードできます。マネージドサービスとして使う場合は VeloDB Cloud も利用できます。
関連記事
- AWS ケーススタディ:Apache Doris on Graviton5
- Apache Doris Achieves 70% Better Price-Performance on ARM-based AWS Graviton
- VeloDB on AWS Graviton: a 32% boost in cost efficiency
参考リンク
- 原文:Apache Doris on AWS Graviton5: Up to 78% Higher Query Performance
- Apache Doris 公式サイト:https://doris.apache.org
- GitHub:https://github.com/apache/doris
- VeloDB:https://www.velodb.io

