LoginSignup
6
1

More than 3 years have passed since last update.

Athena engine version 2を試してみた【神アップデート】

Posted at

概要

東京リージョンにも、Athena engine version 2が来ました。
様々な機能追加や改善が書かれていますが、やはり一番気になるのが「Performance Improvements」ですよね。輝いてます。

一覧を見ていても

  • DISTINCT
  • JOIN and AGGREGATE operations
  • LIKE
  • ORDER BY and LIMIT

を始め山ほど列挙されており、かつ期待が高まる項目ばかりで、それもう要するに「ぜんぶ凄く速くなった!」ってことですよね???

と言う訳で、自社で運用しているAthenaのクエリで早速試してみました。

設定方法

既存のワークグループであれば、ワークグループの編集項目に「Query engine version」と言う項目が増えていますので、「Manually choose an engine version now.」→「Athena engine version 2 (recommended)」を選択することでバージョンアップ可能です。
image.png

そう、激熱ポイントとして

1. ワークグループ単位での設定が可能
2. (今は)バージョン1に戻せる

という移行および検証のしやすさがあります。これは滅茶苦茶嬉しいです。

利用したデータセット

こちらの記事と同様のものをベースに複雑なクエリとなったものを利用しまましたが、Athenaを始めこの手のパフォーマンスの話は、ケースバイケースの要素が強いと考えており、参考程度でご覧ください。

使われた履歴の中から、

  • order by limit xxx なしのクエリ
  • order by limit xxx ありのクエリ
  • パフォーマンスが遅くなりがちな難儀なテーブルを含むクエリ

という軸で実行時間を見て適当にピックアップし、バージョン1とバージョン2でそれぞれ設定されたワークグループに対して検証をしてみました。
規模としては、だいたい1億~2億レコードをスキャンすることになるテーブルをいくつかJOINしたりもしています。

結論サマリ

・スキャン量が減るケースが散見(これも嬉しい)
・order by / limit なしのクエリは今回のデータセットでは、速度は変化なし
・order by / limit ありのクエリは目に見えて速くなった
・一番難儀だったテーブルを含むクエリに非常に高い効果が出た(30秒強→20秒弱と、実に倍速近い結果に)

総じて「複雑で無茶をしていたクエリが少し安く、かなり速くなった」という そんなことが許されるのですか... という結果となりました。神か。

結果一覧集

突然のExcelですが、平均実行時間、は少ないですが3回の実行結果を取っています。
なのでバージョン2が遅くなっているように見えるものは、単に試行回数によるものと思われます。また、パーセンテージにしちゃったので見辛いですが、order by limit なしはほぼ結果変わっておらず、ありはどれも数秒以上速くなってます。
ケース10~12の改善具合がえぐいですね。

image.png

感想

実運用への適用に向けて、互換性のチェックはしていかないといけないのですが、性能面においては「逆に遅くなる」などの懸念が無い感触で、アップデートに向けて期待はあるがデメリットの無い、すなわちそれは神アップデートと言えるのではないでしょうか。
re:Invent 2020でもFINRAでAthenaを超活用している事例が紹介されておりましたが、更にAthenaが盛り上がっていけば良いな!と思いました。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1