S3内の様々な形式のCSVを1つのデータセットにして分析をする方法はありますか?

S3バケット内に分析したいCSVがあり、Athenaでクエリをかけることが出来ないディレクトリ構造になっています。S3のフォルダやファイルを1つずつデータソースとする方法は理解しています。
ディレクトリ構造を見直し、Athenaで1つのテーブルに結合するか、Quicksight内でデータソース同士を結合するかしか思いつきません。
他に方法がありましたらご教授ください。

まずいずれか1つのCSVファイル(もしくはそれに対応するAthena)を元にしたQuickSightのデータセットを作成し、その後データセットの編集画面上で、画面右上「データを追加」から結合させたいCSVファイル(もしくはそれに対応するAthena)を選択することでQuickSight上は”1つのデータセット”という形で取り扱いが可能になるかと思います。
具体的なイメージは添付資料をご覧ください。

こちらで答えになっていますでしょうか?
もし答えになっているようでしたら、Solutionをマークしていただけると助かります。

もしこの方法だと課題がある場合は、その旨お知らせ頂きその課題の詳細についてご教示頂ければ幸いです。

※ご質問内のQuicksight内でデータソース同士を結合するというのはこちらの方法を仰っていたのでしょうか?その場合もこの方法に課題感があるようでしたらお知らせ頂ければと思います。

2 Likes

ご質問だけではイメージできない部分があるので、様々な形式のCSVがどのように複数のディレクトリに保存されているか、をもう少し記載いただいた方がより具体的な回答が得られると思いおます。

代替案になりそうなのはSPICEの利用ですね。SPICEにS3からデータを取り込む際にJSONでmanifestファイルを書くのですが、ここで複数のprefix(ディレクトリ)を記載して、複数のprefixからデータをSPICEに読み込むことが可能です。

またAthenaを使う場合でも、ファイルを連結する必要はないです。1つのprefixに全てのCSVファイルが入っているようにすれば、連結しなくても1つの表としてアクセスが可能です。

ちらばったファイルを集める方法としてはGlue等でETLジョブを書く方法もありますし、S3にデータがPUTされた時のEventをトリガーにLambdaを実行する等の方法も考えられます。

3 Likes

その後いかがでしょうか?Masahito-san, shimosak-sanの回答で解決しておりますでしょうか?もし解決しているようでしたら、返答の下にチェックボックスをクリックし、Solutionを選択いただけると幸いです。

1 Like

皆さん回答ありがとうございました。
拙い知識で質問した為皆さんを混乱させてしまい申し訳なく思っております。
結果として、manifestファイルで複数ディレクトリ、ファイルURIを指定し、まとめてデータソースとする方針となりました。