📊

AWSの可視化ツールを触ってみる

2021/04/17に公開

ベース

AWSの基礎を学ぼう 特別編の特別編 最新サービスをみんなで AthenaとQuickSight にて実施している内容を元にまとめています。

Amazon Athena

Amazon S3上のデータに対して 標準SQL によるインタラクティブなクエリを投げて、データの分析を行うことができる サーバレス のサービス

Amazon Athena Federated Query

  • コネクタを自作することで普段業務で利用しているデータソースとの接続も可能になる
  • Lambdaを事前に作成して、Athenaから接続することでデータソースにクエリを発行することが可能になる
  • v2の利用可能なリージョンに注意
  • スキャンに対する課金となるので検索対象のデータが大きい場合は圧縮するとコストを軽くすることが可能
    • 100MBを超えるサイズのデータを分析する場合には有効
      • Athenaのパーティショニングも選択肢もある
    • GlueでCSVをparquet形式に変換も選択肢としてある

Amazon Athena Federated Queryの設定画面

Image from Gyazo

Lambdaの新規作成

Image from Gyazo

SAM用の定義

  AthenaDynamoDBConnector:
    Type: AWS::Serverless::Application
    Properties:
      Location:
        ApplicationId: arn:aws:serverlessrepo:us-east-1:292517598671:applications/AthenaDynamoDBConnector
        SemanticVersion: 2021.14.1
      Parameters: 
        # The name you will give to this catalog in Athena. It will also be used as the function name. This name must satisfy the pattern ^[a-z0-9-_]{1,64}$
        AthenaCatalogName: YOUR_VALUE
        # WARNING: If set to 'true' encryption for spilled data is disabled.
        # DisableSpillEncryption: 'false' # Uncomment to override default value
        # Lambda memory in MB (min 128 - 3008 max).
        # LambdaMemory: '3008' # Uncomment to override default value
        # Maximum Lambda invocation runtime in seconds. (min 1 - 900 max)
        # LambdaTimeout: '900' # Uncomment to override default value
        # The name of the bucket where this function can spill data.
        SpillBucket: YOUR_VALUE
        # The prefix within SpillBucket where this function can spill data.
        # SpillPrefix: 'athena-spill' # Uncomment to override default value  

Lambdaの作成

Image from Gyazo

AthenaからDDBの検索

  • 裏側でLambdaが複数起動してRCU(Region Capacity Unit)を消費する(=コストが発生する😍)

Image from Gyazo

  • Athenaは内部でPrestoでエンジンとして稼働している(RDBMSのユーザがクエリを書くのにこれまでの知識を生かすことができる)

Athnaの検索結果

  • クエリの実行結果もS3にエクスポートされているので都度都度実行しなくてもいい

Image from Gyazo

  • Prestoの構文に従うもののTableのJOINも容易

Image from Gyazo

Amazon QuickSight

  • ブラウザだけで管理者、編集者、閲覧者の操作が完結する

  • VPNや専用線接続サービスを経由してオンプレミスのデータソースにも接続可能

  • AWS内の他のサービスとも接続が(当然)可能

  • AWS外のSaaS系サービスとも接続可能

  • 内部ではSPICE(Super-fast, Parallel, In-memory Calculation Engine)で稼働している

  • 画面を30分接続すると1セッション扱いになる

    • 使いこなしても、最大 5USD
    • 使わなかったら 0 USD
  • QuickSightのAthena設定

Image from Gyazo

  • Athenaにアクセス許可

Image from Gyazo

  • アクセスさせるS3とLambdaの設定(S3編)

Image from Gyazo

  • アクセスさせるS3とLambdaの設定(Lambda編)

Image from Gyazo

  • 2021年4月時点で接続できるデータソース一覧

Image from Gyazo

  • Athenaにクエリを発行してQuichSightに連携(1/3)

Image from Gyazo

  • Athenaにクエリを発行してQuichSightに連携(2/3)

Image from Gyazo

  • Athenaにクエリを発行してQuichSightに連携(3/3)

Image from Gyazo

  • インポート状況の確認(1/2)

Image from Gyazo

  • インポート状況の確認(2/2)

Image from Gyazo

  • グラフを選択するとドリルダウンも可能

Image from Gyazo

  • グラフを選択するとドリルアップも可能(逆もまた然り)

Image from Gyazo

  • 予測も可能(1/2)

Image from Gyazo

  • 予測も可能(2/2)

Image from Gyazo

さいごに

  • QuickSight は 1 ユーザであれば無料で利用可能
  • Athena についてもクエリを動かさなければ費用は発生しない

新規起動する場合の注意点

2021年4月時点でAmazon QuickSightを新規で登録したのち、
外部データを読み込めるようになるまで少し時間がかかるケースがある

また、QuickSightにはキャパシティリージョンという考え方がある。
AWSアカウントで最初にQuickSightを起動したリージョンがキャパシティリージョン。
QuickSightの起動しているリージョンがAthenaと同一リージョンでないと接続ができない。

そのほか

AWSで実践!Analytics modernization~事例祭り編~

Discussion