今日を知り、明日を変えるシステム運用メディア

【AWS実践】Amazon AthenaとQuickSightで統計データをお手軽分析!

【AWS実践】Amazon AthenaとQuickSightで統計データをお手軽分析!

はじめに

Amazon AthenaとQuickSightで統計データをお手軽分析!

Amazon Web Service(以下「AWS」)の強力なデータ分析基盤を使用してみたい、という方は非常に多くいらっしゃるのではないでしょうか。AWSは一般的なクラウドストレージサービスとは異なり、データ分析に特化したストレージと併用ツールを備えています。いずれのツールも導入ハードルが低く、気軽に利用を開始したいところです。

そこで本記事では実例として、Amazon S3のバケットに配置したcsv形式データに対してAmazon Athenaからクエリ実行、その後Amazon QuickSightから分析するという一連の流れを紹介しています。

記事内では実施にあたっての結果や操作手順などを中心に紹介しております。

特に「今までクラウドのリソースを使ってデータ分析をしたことがない」という方や、「AWSは使ったことがあるけどAmazon AthenaやAmazon QuickSightは使ったことが無くてよく分からない」という方にぜひ参考にしていただきたい内容の記事です!

どうぞ最後までご覧ください!

Amazon S3、Athena、QuickSightって何?

Amazon S3、Athena、QuickSightって何?

まずここでは、今回紹介するAmazon S3とAmazon Athena、Amazon QuickSightについてざっくりサービス概要を紹介します。

既にこれらがどんなサービスなのかご存知の方は、次の「3.AWSでデータ分析を行うメリットは?」からお読みください。

Amazon S3概要

Amazon S3(Simple Storage Service)とは、データの保存やバックアップ、アーカイブ、ビッグデータの貯蔵などに使用できるオブジェクトストレージサービスです。一般的なクラウドストレージサービスとは異なり、保存するデータをオブジェクト単位に分割してデータ管理を行う点が同サービスの特徴です。データの個性をあえて均一化することにより、一般的なストレージサービスでは難しい、優れたデータ管理能力を有しています。

単なるストレージ用途のみならず、静的なWebページのホスティング、データレイク用途等もこなせる多機能性と、非常に高い耐久性(99.999999999%)や可用性を誇るサービスとなっています。

今回はこのAmazon S3にcsv形式の統計データを保管します。

参考:公式ドキュメント

Amazon Athena概要

Amazon Athenaとは、サーバーレスでインタラクティブなクエリサービスです。Amazon S3に保存されているデータを、直接分析にかけられる点が高く評価されています。Amazon S3に保管されているデータに対して、インフラの管理をすることなく標準SQLで簡単にクエリを実行できます。SQLはポピュラーなプログラミング言語であるのに加え、サーバー不要で運用が可能な点も、広く普及している理由の一つです。なお、料金はスキャンしたデータの量や実行したクエリの回数に基づく従量課金制です。

今回は先述したAmazon S3に保管したcsvデータに対して、このAmazon Athenaを用いてクエリを実行します。

参考:公式ドキュメント

Amazon QuickSight概要

Amazon QuickSightとは、Amazon AthenaやAmazon S3などと連携してデータ分析環境を作成することのできるBI(ビジネスインテリジェンス)サービスです。ブラウザからアクセスし、すぐに蓄積したデータの分析を始められる手軽さが特徴と言えます。規模の大きなデータであっても、S3からの直接データ分析に対応しているため、ストレージ移行などの面倒な処理を必要とせず、データと向き合うための時間をしっかりと確保可能です。

手軽にわかりやすい形でデータを可視化することができ、さらにはレポートの生成・メール配信等も可能です。

今回はAWSを用いたデータ分析の一例として、Amazon Athenaのクエリ結果に対してこのAmazon QuickSightを用いたデータ分析を行います。

参考:公式ドキュメント

Amazon AthenaとQuickSightでデータ分析を行うメリットは?

Amazon AthenaとQuickSightでデータ分析を行うメリットは?

ここでは実際の操作に移る前に、Amazon AthenaとAmazon QuickSightでデータ分析基盤を作り、分析することのメリットについてご紹介します。

Amazon Athenaで分析する良さは何か?

Amazon Athenaを使った分析によって、以下のようなメリットが得られます。

サーバーレスインフラ構築にコストをかけずにクエリを実行できます
標準SQL対応学習コストがかかりません
従量課金制初期費用や維持費用が不要で、使った分だけ支払えばよいというスケーラビリティがあります

上でも少し触れていますが。Athenaを利用する場合、サーバーレスのためインフラ構築の負担が発生しません。リソースが限られているという組織でも安心して利用できます。標準SQL対応なので学習コストを抑え、エンジニア探しに困ることもないでしょう。

また、初期費用や維持費用を抑えた従量課金制を採用し、使った分だけお金がかかるという、サステナブルな運用体制を整備できるメリットもポイントです。

Amazon QuickSightを使って嬉しいことは?

続いて、QuickSightを使うことで得られるメリットにも目を向けてみましょう。

視覚的な分析さまざまな形式のグラフを用いてデータを視覚的に分析できます
AWSリソースとの連携他のAWSリソースと簡単に連携し、クラウド上にデータ分析基盤を手軽に作成できます

AuickSightはその使い勝手の良さとは裏腹に、視覚的な分析能力に長けているのが特徴です。必要に応じて多様な形式のグラフを使い分けながら、納得感のあるデータ分析に役立てられます。

他のAWSリソースとの互換性にも長けている点も、メリットと言えます。データ管理が煩雑になるのを回避しながら、手軽に充実のデータ分析基盤を構築し、運用を進められます。

Amazon AthenaとQuickSightを運用する際の注意点

Amazon AthenaとQuickSightの併用は強力なパフォーマンスを発揮しますが、注意点もあります。

AthenaはS3上のデータを活用でき、S3は分散型の運用が可能ですが、Athena本体は分散型のシステムではありません。実施の際にはクエリの最適化を行い、パフォーマンスの低下を回避しましょう。

QuickSightは、BIソリューションとしては後発のサービスであるため、他のBIツールから移行してきた場合、不便を感じることがあります。AWSとしての統一感を保つ上では有効ですが、必ずしもBIツール単体で見た時に最高の製品であるとは限らない点は知っておくと良いでしょう。

実際に使ってみた!

実際に使ってみた!

ここでは実際に使用している様子を、実際の画面キャプチャとともに紹介しています。

※画面キャプチャは執筆時点(2024年7月)のものです。AWSのコンソールのUIは頻繁に変更されますので、実際に使用される際はご注意ください。

Amazon S3のバケットを作成、分析対象のデータを設置

まずはAmazon S3を開き「バケットを作成」をクリック、必要情報を入力してバケットを作成します。バケットとは、Amazon S3上でファイルを管理する上での基本単位となるコンテナを意味します。

バケットの作成2
バケット作成完了

これでバケットを作成できましたね!

ファイルアップロード

次は、作成したバケットに分析対象のファイルを設置します。

このバケットを選択してアップロードボタンを押すと、アップロードのための画面が表示されます。「ファイルを追加」からアップロードしたいファイルを選び、アップロードを行います。
※今回はサンプルとして政府統計ポータルサイトの「年齢(5歳階級),男女別人口-都道府県(大正9年~平成27年)」を使用しています。

ファイルを追加

また、この時にAmazon Athenaのクエリ実行結果を保存するためのバケットを別で作成しておくとデータの管理がしやすくなります。

バケット別で作成

Amazon AthenaでS3のデータにクエリ実行

次はAmazon Athenaから先ほどアップロードしたcsvファイルに対してクエリを実行します。Amazon Athenaを開いて、「クエリエディタを起動」してみます。

S3のデータにクエリ実行

Amazon Athenaを初めて開いた状態ではクエリ結果を保存する場所が指定されていないので、クエリを実行できません。

「設定」タブを選択して「管理」画面を開き、クエリ結果の保存場所を先に指定してあげましょう。ここでは先ほど作ったクエリ結果保存用のAmazon S3バケットを選択します。

S3バケットを選択

クエリ結果保存場所の設定ができれば、次はテーブルを作成します。「作成」ボタンを押し、「S3バケットデータ」を選択します。

S3バケットデータ

作成画面が出てきました。

「入力データセットの場所」には先ほどcsvファイルを置いた場所を、今回分析するファイルはcsv形式のため「ファイル形式」はCSVを選択します。

「列の詳細」は分析するファイルの列の内容やデータ形式に応じて設定しましょう。今回は「列の一括追加」から「prefecture_code int, prefecture string, age string, japanese_calender string, japanese_calender_year int, anno_domini int, total_population int, male_population int, female_population int」と設定しています。

参考までに設定後の画面と元データの画面のキャプチャを掲載します。

元の画面
設定後の画面

これでテーブルが作成されました。「テーブルをプレビュー」をクリックします。

テーブルのプレビュー

テーブルをプレビューすると、分析対象のcsvファイルの先頭10行を取得する以下のクエリが実行されます。

SELECT * FROM "default"."テーブル名" limit 10;
テーブルプレビュー

これでAmazon Athenaから正常にcsvファイルを取得できていることが確認できます。無事確認できたらクエリのタブの右端の「+」マークから新たなタブを生成し、必要に応じてさまざまなクエリを実行できます。

今回はcsvファイルの中からSELECTで「都道府県名、年齢5歳階級、西暦(年)、人口(総数)」のカラムを抽出、WHEREで「年齢5歳階級」が「総数」(つまり全体の人口)となっているレコードを取り出すクエリを実行します。

レコードを取り出すクエリを実行

このようにクエリを実行することができました。

クエリを実行

Amazon QuickSightで分析してみた

最後に、Amazon QuickSightでAmazon Athenaのクエリ結果を視覚的に分析してみましょう。

まずAmazon Athena上で、先ほど行ったクエリの冒頭に以下の文言をつけ足して新たなテーブルを作成します。このときクエリ結果の出力先として事前に新たなS3バケットを作成するか、もしくは新たなフォルダを作成しておきます。

CREATE TABLE IF NOT EXISTS 〓新たなテーブル名〓
WITH (external_location='s3://〓クエリ出力先にしたいS3バケット名〓/〓クエリ出力先にしたいフォルダのパス〓/') AS」

※この画像の例では新たなAmazon S3バケットを事前に作成しています。

新たなS3バケットを事前に作成

次に「テーブルをプレビュー」して意図した通りの出力が得られるかを確認しましょう。

テーブルをプレビューする

問題なければ、今度はAmazon QuickSightを立ち上げます。 アカウントを作成出来たら、まず「QuickSightを管理」から「セキュリティとアクセス許可」の項目を選び、今回必要なサービス(Amazon AthenaとAmazon S3のバケット)のアクセス許可を付与します。

アクセス制限
セキュリティとアクセス許可

次に、「新しい分析」から「新しいデータセット」を、「データセット」にはAmazon Athenaを選定の上、先ほどクエリを行ったデータベースとテーブルを選択します。

これでAmazon QuickSightから先ほどのクエリ結果を分析することが出来ます。

例1:西暦1920-2015年の人口の各都道府県の合計の棒グラフを用いた比較例2:西暦1920-2015年の間の各都道府県の人口の散布図

このように、Amazon QuickSightでは手軽に他のサービスと連携して、データを視覚的に表示することができます。

また今回は実践しませんでしたが、レポートを生成したりメールで送信したりする機能も搭載されており、非常に利便性の高いBIツールであると言えます。 こうした手軽さや利便性より、ビジネスチャンス創出に有効なデータを抽出する用途や、社内の財務分析を視覚的に実施する用途など、さまざまな用途が想定できます。

まとめ

今回は、AWSを用いたデータ分析の実践として、Amazon AthenaやAmazon QuickSightを取り上げました。 最後にポイントをまとめると以下のようになります。

  • Amazon Athenaではサーバーレスで簡単にクエリを実行できる
  • Amazon QuickSightではデータを手軽に視覚化・分析できる
  • これらのツールを効率的に使うことで商機創出や財務分析など様々なことができる

データの分析をする際、このようにAWSなどクラウドのリソースを有効活用してみるのはいかがでしょうか?

人気の記事

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録