1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Amazon Athena,QuickSightを使って統計データを可視化する

Last updated at Posted at 2024-01-21

概要

AWSにおけるデータ分析サービスについて、理解を深めたいという思いから、Athena,QuickSightを使って何かアウトプットするために本記事を書きました。

今回試してみたこと

「日本のGDPデータを集計して、年毎の推移を見る」
内容自体は単純で、ググってしまえばいくらでも出てくる内容ですが、自身の理解のためにもまずは簡単な内容から始めていきたいと思ったのでこの内容にしました。
(大学時代のゼミでよく日本の経済成長について調べていたので、折角触ってみるなら自分の知識のあるデータの方が良いかな、という背景もありました。)

頭の整理のためにも、今回やることを図に起こしてみました。
スクリーンショット 2024-01-21 144543.png

手順

①可視化する対象のデータを取得

総務省統計局が管理している政府統計ポータルサイトであるe-statの、国民経済計算のページに移動すると、APIというボタンがあるので押下すると、下記のような画面が出てきます。
スクリーンショット 2024-01-21 122912.png

今回は、JSON形式でデータを取得、特定の要素を取得→それをCSVに書き出しgz形式でcsv_converted_dataバケットに格納するようにしました。
スクリーンショット 2024-01-21 144012.png

※詳細には、
レスポンスをJSONファイルに書き出し、そのファイルが、トリガーとなるバケットにアップロードされたらCSV変換されAthenaのクエリ実行用のバケットに格納されるLambdaが起動するようにした、という説明になりますが
ここではその説明は割愛します。(別の記事でまとめようと思います。)

※APIの利用には、事前のユーザー登録、アプリケーションIDの入手が必要です。
(手順についてはこちらが参考になりそうです)

書き出したcsvファイルの中身はこのような形(一部割愛)で、四半期毎の国内総生産(支出側)を1994-2023年まで抽出するようにしました。

年度,四半期,GDP
1994,0103,123456.5
1994,0406,124907.2
1994,0709,125739.3
1994,1012,136813.2
1995,0103,124499.2
1995,0406,127481.3
1995,0709,128698.3
1995,1012,140934.8
1996,0103,128185.1
1996,0406,131526.4
1996,0709,131449

②S3に格納されているバケット内のCSVファイルを使い、Athenaにてテーブル定義

②-1クエリ出力の場所を指定

Athenaにおけるクエリは、S3のバケットに保存されるので指定する必要があります。(参照
このような選択項目があった気がしています。(画面キャプチャがとれておらず記憶が定かではないですが)
スクリーンショット 2024-01-21 132546.png

②-2データベースを作成

クエリエディタにて、まずはデータベースを作成します。標準のSQLと同じく、CREATE DATABASEが使えます。

CREATE DATABASE goverment_statistics;

スクリーンショット 2024-01-21 145126.png

②-3テーブルを作成

テーブル作成時の注意点としては標準のSQLで使用しているCREATE TABLEを使用しない点です。
その理由は、Athenaが外部テーブルを使用するシステムを使用しているからです。
標準SQLとは割と違いそうですが、一つ一つを見ていけばそこまで難しくない印象でした。

-- 各カラムを定義
CREATE EXTERNAL TABLE IF NOT EXISTS goverment_statistics.gdpdata(
    `year` string,
    `quarter` string,
    `gdp_value` double
)
ROW FORMAT DELIMITED   -- 行のフォーマットは区切り文字によって定義=各行は区切り文字によって区別される
FIELDS TERMINATED BY ',' -- 各列はカンマ区切りで区切られる
STORED AS TEXTFILE  -- データの格納形式
LOCATION 's3://athena-test-bucket-maeno/csv_converted_data/' -- データの格納場所(今回はs3バケットのパス)
;

スクリーンショット 2024-01-21 145751.png

外部テーブル
データベース外部にデータが存在する場合に使用。
Athenaにおいては、データ自体はS3の所定のバケット(ユーザーが指定する)に格納されたままの状態。

Apache Hiveにおいても同様の仕組みが採用されているようです。

③QuickSightでデータセット作成、データ加工

QuickSightの初期画面は下の画像のようになっています。
スクリーンショット 2024-01-20 232322.png

画面が表示されたらデータセットを押下します。
右上の新しいデータセットを押下すると、データソースを選択する画面に移動するので、Athenaを選択します。
スクリーンショット 2024-01-21 141005.png
スクリーンショット 2024-01-21 141018.png

データソース名をつけ、取り込みたいデータが入っているテーブルを選択し、Visualizeを押下すると、データセットの作成が完了します。
スクリーンショット 2024-01-21 141033.png
スクリーンショット 2024-01-21 141114.png
スクリーンショット 2024-01-21 141132.png

④データ可視化

④-1データ加工

取り込んだデータを整え、可視化するにあたり少し見やすいように加工します。
今回、year(年度),quarter(四半期(0103)), gdp_value(GDP額【ドル】)という形でAthenaでテーブルを定義していたので、
スクリーンショット 2024-01-21 142215.png

これを年度毎のGDP(四半期GDPの平均をとる)集計にします。
計算フィールドという部分で、可視化対象のデータを加工することができます。
今回は各年、四半期のデータのを平均を取り、各年のデータとしたいので、
avg({gdp_value})という形で計算をします。

スクリーンショット 2024-01-21 142402.png

④-2データ配置、可視化

X軸、Y軸に分析対象のデータを配置してあげます。
今回は年度毎のGDPの推移を見たいので、yearをX軸、GDP(④-1で計算したavg_gdp)をY軸にもっていきます。
分析対象のデータ形式に応じて、可視化のフォーマットもQuickSight側で色々準備されているようです。(折れ線、箱ひげ図、棒グラフ、円グラフ、などなど、、、他にも色々あります。下の画像のビジュアルという部分から選択できます。)
スクリーンショット 2024-01-21 135404.png

今回は折れ線グラフで可視化しました。
対象のデータさえ準備してしまえばあとは勝手に可視化してくれる点が便利だなと感じました。
最終形態はこのような形となりました。
単位が分かりづらかったり、推移が分かりづらいなど、諸々補正したい部分はありましたが、一旦はQuickSightで可視化できることが分かり今回の目的は達成と言うことで修正は行いませんでした。
スクリーンショット 2024-01-21 120120.png

最後に

今回行ったのはあくまでも簡単な分析で、Athenaが得意とする大量データの分析と使いどころはズレているかも知れませんが、大まかな使い方は理解できたので良かったかなと思います。
Athena,Quicksightに関して、今まで使ったことがなく、難しそうだな、というイメージしかなかったのですが、手を動かして触ってみると初学者でも慣れれば使いこなせそうだなという所感でした。

データ分析、活用は今後ますます重要な分野になってくると思うので引き続き学習していきたいなと思っています。

参考文献

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/creating-databases.html
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-hive.html
https://aws.amazon.com/jp/what-is/presto/
https://www.e-stat.go.jp/statistics-by-theme
https://monomonotech.jp/kurage/memo/m230419_register_estat_get_appid.html

クレジット表示

本記事は、政府統計総合窓口(e-Stat)のAPI機能で取得したデータを使用していますが、資料の内容(数値)は国によって保証されたものではありません。

1
1
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?