ベースAmazon AthenaAmazon Athena Federated QueryAmazon Athena Federated Queryの設定画面Lambdaの新規作成SAM用の定義Lambdaの作成AthenaからDDBの検索Athnaの検索結果Amazon QuickSightさいごに新規起動する場合の注意点そのほか
ベース
AWSの基礎を学ぼう 特別編の特別編 最新サービスをみんなで AthenaとQuickSight にて実施している内容を元にまとめています。
Amazon Athena
Amazon S3上のデータに対して 標準SQL によるインタラクティブなクエリを投げて、データの分析を行うことができる サーバレス のサービス
Amazon Athena Federated Query
- コネクタを自作することで普段業務で利用しているデータソースとの接続も可能になる
- Lambdaを事前に作成して、Athenaから接続することでデータソースにクエリを発行することが可能になる
- AWS公式のにもコネクタ は紹介されている
- v2の利用可能なリージョンに注意
- スキャンに対する課金となるので検索対象のデータが大きい場合は圧縮するとコストを軽くすることが可能
- 100MBを超えるサイズのデータを分析する場合には有効
- Athenaのパーティショニングも選択肢もある
- GlueでCSVをparquet形式に変換も選択肢としてある
- 100MBを超えるサイズのデータを分析する場合には有効
Amazon Athena Federated Queryの設定画面
Lambdaの新規作成
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の作成
AthenaからDDBの検索
- 裏側でLambdaが複数起動してRCU(Region Capacity Unit)を消費する(=コストが発生する😍)
- Athenaは内部でPrestoでエンジンとして稼働している(RDBMSのユーザがクエリを書くのにこれまでの知識を生かすことができる)
Athnaの検索結果
- クエリの実行結果もS3にエクスポートされているので都度都度実行しなくてもいい
- Prestoの構文に従うもののTableのJOINも容易
Amazon QuickSight
- ブラウザだけで管理者、編集者、閲覧者の操作が完結する
- VPNや専用線接続サービスを経由してオンプレミスのデータソースにも接続可能
- AWS内の他のサービスとも接続が(当然)可能
- AWS外のSaaS系サービスとも接続可能
- 内部ではSPICE(Super-fast, Parallel, In-memory Calculation Engine)で稼働している
- 画面を30分接続すると1セッション扱いになる
- 使いこなしても、最大 5USD
- 使わなかったら 0 USD
- QuickSightのAthena設定
- Athenaにアクセス許可
- アクセスさせるS3とLambdaの設定(S3編)
- アクセスさせるS3とLambdaの設定(Lambda編)
- 2021年4月時点で接続できるデータソース一覧
- Athenaにクエリを発行してQuichSightに連携(1/3)
- Athenaにクエリを発行してQuichSightに連携(2/3)
- Athenaにクエリを発行してQuichSightに連携(3/3)
- インポート状況の確認(1/2)
- インポート状況の確認(2/2)
- グラフを選択するとドリルダウンも可能
- グラフを選択するとドリルアップも可能(逆もまた然り)
- 予測も可能(1/2)
- 予測も可能(2/2)
さいごに
- QuickSight は 1 ユーザであれば無料で利用可能
- Athena についてもクエリを動かさなければ費用は発生しない
新規起動する場合の注意点
2021年4月時点でAmazon QuickSightを新規で登録したのち、
外部データを読み込めるようになるまで少し時間がかかるケースがある
また、QuickSightにはキャパシティリージョンという考え方がある。
AWSアカウントで最初にQuickSightを起動したリージョンがキャパシティリージョン。
QuickSightの起動しているリージョンがAthenaと同一リージョンでないと接続ができない。