LoginSignup
7
1

More than 1 year has passed since last update.

なぁ、Amazon Athenaのクエリを実行したときにS3へ出力されるcsvとcsv.metadataって消していいん??

Posted at

はじめに

ある日のこと、
「Amazon QuickSightを触ってみたいなぁ〜」
と思い、「BIサービス Amazon QuickSight のセルフハンズオンキット日本語版を公開(随時更新)」というブログにある「QuickSight Basicハンズオン編 (更新 2022/1/7)」というハンズオンをやってみました。

そのハンズオンの
「ハンズオン 4:大規模データを ATHENA 経由で可視化する」
という箇所でAthenaを触っていた際、Athenaのクエリの結果を出力するS3バケット(以下のスクショ参照)を設定しました。

Athena.png

そのままハンズオンを進めていき、Athenaでクエリを実行すると、csvcsv.metadataという文字列が一番後ろについたファイルが設定したS3バケットに作成されておりました。

suzuki-quicksight-handson_-_S3_bucket.png

このファイルたち、Athenaを使い始めた最初はいいかもしれませんが、クエリをたくさん実行して次第に増えていった際にコストとして積み上がってくるのではないかと少し不安になりました。
(まぁS3のストレージコストなんて、たかが知れていますが...)

そこで、作成された csv と metadata.csv ファイルを削除したいと削除したいと思いました。
しかし実際のところ、「削除することによって何か支障が発生するの??」という部分が不明だったため、今回調査/検証してみた次第となります。

結論

Athenaのマネジメントコンソールで結果が表示できなくなりました。

スクリーンショット_2022-12-30_18_15_55.png

なお、通常は以下のスクリーンショットのようにクエリの結果が表示されます。

スクリーンショット_2022-12-30_18_16_11.png

調査内容

Athenaの公式ドキュメントを確認すると「QueryID.csv.metadata」の説明に以下のような記載があり、削除は推奨されていないことは分かります。

DML and DDL query metadata files are saved in binary format and are not human readable. The file extension corresponds to the related query results file. Athena uses the metadata when reading query results using the GetQueryResults action. Although these files can be deleted, we do not recommend it because important information about the query is lost.

訳:
DML および DDL クエリ メタデータ ファイルはバイナリ形式で保存され、人間が判読することはできません。ファイル拡張子は、関連するクエリ結果ファイルに対応しています。
Athena は、GetQueryResultsアクションを使用してクエリ結果を読み取るときにメタデータを使用します。
これらのファイルは削除できますが、クエリに関する重要な情報が失われるため、お勧めしません。

GetQueryResultsアクションなので、クエリ結果を確認する際に支障が出るようです。

さらに調査をした結果、「Amazon Athena 初心者向けハンズオンの資料およびQA公開」というブログ記事を発見し、そのQAの箇所に以下のような記載がありました。

Q: 結果格納バケットに入っている *.csv.metadata のファイルは何ですか?
A: クエリの結果を Athena のマネジメントコンソール状で表示する際に必要となる,メタデータが含まれたファイルになります.こちらを削除すると,結果がマネジメントコンソール上で正しく表示できなくなりますのでご注意ください

実際に試した結果は、すでに結論で書いた通りですが、コンソールでクエリ結果を確認する際に裏でGetQueryResultsアクションが実行されているということを意味します。

おわりに

削除したファイルと同じクエリを再度実行すると新たに csv と metadata.csv ファイルが作成されるので、あまり気にしすぎる必要もないのかなとも思います。
ただ、毎回クエリを実行している方がS3に保存しているより費用的に高くなると思うので、「クエリの実行履歴を見返そう」という予定がある方は削除しない方が良いかと思います。

ハンズオンをやっていて、ちょっと気になったので検証してみただけですが、もし同じことが気になった方がいた時の参考になればと思います。

7
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
7
1