🏹

出力先のS3なしでAthenaのクエリを実行が可能になった

に公開

株式会社モリサワでは分析のためのツールの一つとしてAthenaを利用しています。これまでAthenaを利用するにあたっては出力先のS3バケットを指定する必要がありました。そのため出力先のS3バケットの管理が必要でした。具体的にはS3に対する権限の付与や、不要な課金を避けるためにライフサイクルポリシーを設定して古いクエリ結果を定期的に掃除する必要がありました。

今回発表された機能によってクエリ結果をS3ではなくAWSが管理するストレージに保存できるようになりました。これを利用すれば出力先のS3バケットを指定せずに、Athenaのクエリを実行でき、S3の管理が不要になります。

AWSマネージド ワークグループを使うための設定

Athenaのコンソール上に Athena マネージド という項目が追加されており、ここから設定を行うことができます。

これまではワークグループの設定においては出力先のS3バケットを指定する項目がありました。

また設定を変更するためにワークグループを再作成する必要はなく、 Athena マネージド のワークグループに移行することができました。移行の結果、コンソールでは クエリ結果の場所 がS3バケットではなく Athena マネージドストレージ となっています。

AWSマネージド ワークグループの制限

クエリ結果の保持期間は24時間

クエリ結果が保持されるのは24時間で、それを超えるとクエリ結果は削除されます。通常の利用では問題ないと思いますが、それ以上にクエリ結果を保持したい場合は従来の設定を使ってS3に出力する必要があります。

クエリ結果の再利用は出来ない

これまでの設定であったクエリ結果の再利用(キャッシュ)機能は利用できません。(ボタンはあるが押せない)

クエリ結果のコンソールからのダウンロードは200MBまで

クエリ結果のダウンロードをコンソールから行えるのは200MBまでです。それ以上になるとダウンロードはできません。ただサンプルのダウンロードはできるようです。Athenaから分析者が一度データをダウンロードして、pandasで分析する...みたいな利用の場合は少し困るかもしれません。一方でCLI経由でクエリ結果を取得する場合は、200MBを超えても問題なく取得することができます。

CTASクエリは実行できない

他にもS3バケットを指定していない仕様上、Selectの結果から新しいテーブルをS3に作成する CTASクエリは実行できません。

まとめ

一部の機能に制限はありますが、Athenaのクエリを実行するためにS3バケットを用意する必要がなくなり、S3の管理が不要になりました。これにより、Athena利用にあたってのハードルが下がり、またより低コストでAthenaを利用できるようになりました。

モリサワ Tech Blog

Discussion