quicksightを使ってデータを分析する

今回はquicksightを利用してデータを分析したのでまとめます。

分析したデータはコロナの感染者に関するデータになります。

quicksightとは

AWSのサービスの一つでデータを分析できるツールになっています。

データベースにあるデータに対してsql文を投げて抽出。あとはいい感じにグラフにしてくれる優れものです。

いい感じってどんなのかというと↓こんな感じです。

sqlで抽出するだけでこんな感じになるわけです。Amazon様様です。

quicksightの使い方

流れとしてはこうです。

  1. 分析したいデータをS3に上げる
  2. athenaを利用してデータカタログへの登録、テーブルの作成等
  3. quicksightでsqlを投げて欲しいデータを抽出

今回はこのような流れでデータの分析を行っておりますが、S3のデータだけでなくいろんな場所からのデータも取得できるようなので見てみてください。

分析したいデータをS3に上げる

今回はコロナに関するデータを分析したいと考え、厚生労働省が上げているオープンデータを利用させていただ来ました。

オープンデータ

こちらのcsvをダウンロードしてS3に上げます。

athenaを利用してデータカタログへ登録、テーブルの作成

athenaを開けば、テーブルの作成を行っていきます。
[create table]→[from s3 bucket date]

ここからどんどん進んでいきますね。

  • データベースの作成
  • table名を決める
  • 参照先のS3の場所を指定
  • データのフォーマットの指定
  • columnsの作成
  • partitionsの作成

上記の項目を終わらせるとテーブルが作成されます。必要なデータ分のテーブルを作成することができたら、さっそくquicksightの方に行きましょう。

quicksightでデータ分析

データセットの作成

quicksightにログインしたらまずはデータセットの作成を行います。

今回はAthenaしたのでAthenaを選択。ほかにもmysql等、自分で作成したデータソースを参照することができます。

では、Athenaを選択。

データソース名を決めて、データソースの作成へ。

するとAthenaで作成したものを選択していきます。今回はsql文を叩いて、データを抽出したいので「カスタムSQLを使用」

ここにSQLを書いていきます。

今回はこのようなselect文でデータを抽出しました。

改行をしないと読みにくいのは重々承知です…

SELECT 
  * 
FROM 
  (
    (
      covid_data.postive 
      LEFT OUTER JOIN covid_data.death ON postive.pos_date = death.death_date
    ) 
    LEFT OUTER JOIN covid_data.tested ON postive.pos_date = tested.tested_date
  )

そしてクエリの確認

今回はデータクエリを直接実行にチェックして、「visualize」

グラフ化

ではこれからグラフ化していきます。といってもほとんど自動でグラフを作成してくれるので、フィールドリストを選択とビジュアルタイプを選択するのみです。

まずは軸となるpos_dateを選択。その後、各データを選択します。

でもこのままだといまいち僕が作りたいグラフではありません。

ということでグラフのタイプを変えます。現在は「autograph」が選択されているので別グラフを選択。

折れ線グラフで確認したいなあ。

ということでこれを選択!

そうそう、こんな感じ。

でもこれを僕は過去から今に至る右肩上がりのグラフを見たいわけなので、少しいじります。

pos_dateを選択して、並び替えを行います。

ああ、これです。これです。私が見たかったのは。

というわけでquicksightでグラフを作成することが完成しました。

といってもこれ横軸がすごいでかい桁になってしまっていますよね。

PCR検査を受けている人がたくさんいるから。ということでPCR検査を受けた人はグラフから外してみましょう。

すると、初めに共有したようなグラフができます。

まとめ

意外と分析的なことってやり始めると面白かったです。

ただ、いろいろ詰まった部分などあるのでこちらも今後共有していきます。

参考サイト

3テーブル以上の表をOUTER JOINする方法

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA