ベース Amazon Athena Amazon Athena Federated Query Amazon 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と同一リージョンでないと接続ができない。