【レポート】What’s new with Amazon Athena #reinvent #ANT307

2021.12.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どーもsutoです。本記事はAWS re:Invent 2021のセッション「What’s new with Amazon Athena 」のセッションレポートです。

すでにこのセッションはオンデマンドで公開されていますので、興味がある方はぜひそちらもご視聴ください。

セッション概要

Amazon Athena is a highly scalable analytics service that makes it easy to analyze data in Amazon S3 and other data stores. Amazon Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run. This session offers a deep dive into the service, customer use cases, best practices, newly launched features, and what is next for Amazon Athena.

翻訳(DeepL)

Amazon Athenaは、Amazon S3やその他のデータストアにあるデータを簡単に分析できる、拡張性の高い分析サービスです。Amazon Athenaはサーバーレスであるため、管理すべきインフラがなく、実行するクエリに対してのみ料金が発生します。このセッションでは、サービスの深堀り、お客様の使用例、ベストプラクティス、新しく開始された機能、そしてAmazon Athenaの次の展開についてご紹介します。

  • スピーカー(敬称略)
    • Luis Maldonado
    • Ryan Blue
  • セッションレベル: Advanced - 300
  • セッションID: ANT307

アジェンダ

  • Data operations
  • Scale and performance
  • Cost visibility and management
  • User experience

Data operations

  • データオペレーションにおける重要な要素
    • Timeliness:最新のデータを迅速に取得可能であること
    • Evolution:データのフィールドや型を柔軟に変えられること
    • Reliability – クエリの実行結果の整合性を持ち、データの信頼性があること
    • Security – アクセスにおけるセキュリティのバランスがとれていること
  • データレイクなどのデータにはSQLを使ってテーブルベースのデータにアクセスするが、カラム・レコードが大きなテーブルにはその中でもアクセスできるデータに制限が欲しいケースもある
    • Lake Formationの機能を使ってさらに細かいセキュリティを設定できるようになった
    • Lake Formation Governed Tables
    • Lake Formation Fine-grained security

※弊社の速報記事があります。

  • これまでHudiのサポートが充実していましたが、Apache Iceberg によるACID トランザクション(Preview)が発表された
    • row-levelのINSERT INTO、UPDATE、DELETE
    • version and time travelクエリ(FOR [SYSTEM_TIME | SYSTEM_VERSION] AS OF)
    • schema evolutionクエリ(ADD COLUMNS)

  • Icebergの特徴
    • Open data architecture:標準ドキュメントやコミュニティが充実
    • Designed for productivity:信頼性の高いトランザクション(ACID)、クラウドネイティブなパフォーマンス

速報として弊社の検証記事がアップされていますので、興味のある方は参考に。

Scale and performance

  • 価格変わらずに3倍のパフォーマンス向上が出来ている。(最大で18倍近くのパフォーマンス向上をしたクエリもある)
  • 主な改善点として以下がある。
    • JOIN - JOINの順序とアルゴリズムの選択、動的フィルタリング/プルーニング
    • 入れ子(ネスト)構造 - フラット化しないネストフィールドのプルーニング
    • サブクエリ - 等式と不等式の相関性のあるサブクエリ関数:aggregate WINDOW(), grouping() and map-returning
    • S3データの読み込み - APIとdrivの結果ダウンロードを2〜3倍高速化
  • テーブルデータが大きくなっていっても高いパフォーマンスを出すためのデータのパーティションのベストプラクティスを知ることも重要
    • AWS Glue Partition IndexesにAthenaがサポートされているので、これを使用したクエリのパフォーマンス向上ができる

Cost & Visibility

  • データ容量削減としてファイル圧縮形式をサポート
    • DEFLATE, LZ4, LZO, SNAPPY, ZLIB
  • クエリコストが発生するタイミングについて

  • Cloudwatchでメトリクスを見ることができます

User experience

  • AWSコンソールのUIをアップグレード
  • StepfunctionワークフローからAthenaクエリ実行を呼び出せるようになった
  • Grafanaで「Athena Grafana Plug-in」が使える
    • GrafanaからAmazon Managed Grafanaへダッシュボードに移行してみた記事もあります

What’s Next?

2022年に向けて以下の分野に投資する予定。さらに高いパフォーマンスとスケールを実現を目指す

  • 開発ツール:デバッグ、最適化、拡張

  • データエンジニアリング:データソースの設定の簡素化

  • データサイエンス:MLモデルのトレーニングとノートブックの統合
  • アドミニストレーション:ワークロード管理制御

感想

Amazon Athenaとそれに関わる周辺サービスとの関連を合わせて、今年のReinventで発表されたアップデート、最近リリースされたAthenaのアップデート、Athenaサービスの開発の履歴について知ることができるセッションとなっています。

今年の大きなポイントは、Apache Iceberg(ACID Transaction)だと思います。PrestoはIcebergもサポートしていたので、Athenaでも同じくサポートされるようになってよかったですね。