S3に保存した大量のデータをAthenaで触ってみた

S3に保存した大量のデータをAthenaで触ってみた:


やったこと

この記事で作った電力予測システムをしばらく触っていなかったのでどれくらい学習データがたまったのかなぁ...とふと思いせっかくだしAthenaで見てみよう!ということでAthenaを触ってみました。


ファイルの構成

現在以下のような構成で学習データは保存されています

BUCKET_NAME 
  └ electric-predict 
    └ train_data 
      └ train_data.csv 


テーブルを作成する

コンソールのデザインが変わっている可能性があるので参考までに

(なぜか日本語のコンソールが最初でなくて一旦英語設定にして日本語設定に戻したら日本語で表示されました...)



athena_dashboard_make_database.png


Athenaのダッシュボードを開いて左にあるテーブルの作成を選択します



athena_from_s3.png


上の画像のような選択肢が出てきます。今回はS3にためているデータを使うのでfrom S3 bucket dataを選択



athena_name_and_place.png


必要事項を記入します



athena_csv.png


今回はcsvを使用しているのでcsvにチェックをつけます



athena_retsu.png


今回はcsvのヘッダにあるMONTHを列名として登録します。

パーティションの追加は今回必要ないのでこれでテーブルを作成できます。



make_table_query.png


こんな感じでクエリを作成してくれます。

このクエリを実行したらテーブルが作成されます。


件数を数えてみる

コンソール上でAthenaを使おうと思ったら基本的にコンソール上にあるクエリエディタにクエリを書いて投げるだけでいいみたいです。

まずは件数を数えてみました

select count(*) from sampledb.hoge; 
上記のクエリをクエリエディタに入力して実行すると...



athena_record_val.png


わずか約1.6秒でレスポンスが!!!

どうやら16273件データを蓄積できていたようです。

お恥ずかしいことに初期の件数を覚えていないのですが...

順調に蓄積できていそう...

何故かファイルが残っていた2018年5月1日の学習ファイルには14760件のデータがあったので無事にシステムは動いている。と信じている...

クエリの書き方に関しては大学時代に講義で習った気がするけど殆ど覚えていないのでAWSのドキュメントを調べて書いてみました。

select count(*) from sampledb.hoge where MONTH='1'; 
ためしに1月のデータは何件あるか調べてみました。



athena_jan_count.png


なるほど...

これも1.3秒ほどで出力されたしすごいな...

クエリの書き方を勉強するともっと便利に使えそう...


まとめ

会社の先輩に教えてもらって使ってみたのですが初期設定がすごく簡単だしレスポンス早いし便利だし、

dynamoDBしか触ったことのないぺーぺーからしたらクエリをちょちょっと書いて件数が2秒弱で出てきた瞬間感動しましたwww

データベースの設計とかクエリの書き方とかに興味をもちました。

(このあとDQLの存在も教えていただき更に感動したのはまた別の話...)

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)