Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第126回 雲勉【オンライン】Amazon Athena入門 ~基本の使い方&QuickSig...
Search
iret.kumoben
January 25, 2024
Technology
0
71
第126回 雲勉【オンライン】Amazon Athena入門 ~基本の使い方&QuickSightと連携させてみよう~
下記、勉強会での資料です。
https://youtu.be/N49mVAx1ItA
iret.kumoben
January 25, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
23
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
64
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
54
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
21
第2回 雲勉LT大会 AWS Control Tower の「コントロール」って何? という謎から AWS Control Tower を知る
iret
0
19
第2回 雲勉LT大会 AWS/Google Cloud/Wasabi ストレージサービスを比較したい
iret
0
21
第2回 雲勉LT大会 クラウド時代は CRUD ではなく CQRS で考えよう
iret
0
36
第2回 雲勉LT大会 コスト最適化のサイクルを回す クラウド時代のコスト最適化戦略
iret
0
19
第140回 雲勉 今度こそ AWS CDK で構築してみたくなるようなCDK活用集
iret
0
52
Other Decks in Technology
See All in Technology
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
X-Correlation Injections (or How to break server-side contexts)
fransrosen
0
360
APIのドキュメント化何使ってますか?
miu_crescent
2
160
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
9.3k
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
2
560
実践的なバグバウンティ入門
scgajge12
4
2.1k
スーパーマリオRPGのリメイク版の変更点からみるUX
nishiharatsubasa
1
110
中規模・ミドルTier開発組織におけるDevRelの戦略と実行と成果 - DevRel Guild Conference Mini -
leveragestech
2
260
Our Journey from in-House CD System to Open Source
ffjlabo
0
100
20240828_EM_Fest
kzkmaeda
4
360
分野に潜むツールの紹介
pojiro
1
330
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Rails Girls Zürich Keynote
gr2m
93
13k
The Cult of Friendly URLs
andyhume
76
5.9k
How GitHub (no longer) Works
holman
309
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
33
1.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
The Pragmatic Product Professional
lauravandoore
30
6.2k
Transcript
第126回 雲勉【オンライン】 Amazon Athena⼊⾨ ~基本の使い⽅&QuickSightと連携させてみよう〜
0.講師⾃⼰紹介 2 n 沖⼿ 彩⾹ • クラウドインテグレーション事業部 開発第⼆セクション • アイレット歴は1年半ほど
• 今年はAWS、GCPの資格取得をもっとがんばりたい • 好きなもの︓⾳楽・お笑い・お酒
アジェンダ 3 0. ⾃⼰紹介 1. Amazon Athena とは︖ 2. Amazon
Athena を使ってみる 3. コスト削減⽅法 4. 応⽤してみる(Amazon QuickSightとの連携) 5. まとめ
本⽇のゴール 4 n Amazon Athenaの概要についての理解 n Amazon Athenaを使ってどんなことができるかイメージできるようになること ※ Amazon
Athenaをほとんど触ったことがない、という初⼼者の⽅向けの内容となります。
1. Amazon Athena とは︖ 5
1. Amazon Athena とは︖ 6 n 標準的なSQLを使⽤して、Amazon S3上のデータ分析を⾏うことができる n サーバレスのためすぐに利⽤開始できる
n 実⾏した分だけ料⾦がかかる 引⽤︓https://aws.amazon.com/jp/athena/
1. Amazon Athena とは︖ 7 n ユースケース • その他の分析サービス︓Amazon Redshift、Amazon
EMRなど ⇨ ⼤量のデータを常時分析する場合などに活⽤ • Amazon Athenaはスポット的な分析に適している
1. Amazon Athena とは︖ 8 n ユースケース 例えば・・・ ・S3に蓄積されたログを分析してパフォーマンス改善を⾏いたい ・⼀時的に必要なデータや、コストの問題でDBに格納していないデータを分析したい
Athenaを使ってみよう︕
1. Amazon Athena とは︖ 9 n 料⾦体系 • クエリ単位でスキャンされたデータのバイト数で課⾦される •
1TBあたり、5USD • バイト数はMB単位で切り上げ • クエリごとに最⼩10MB分が課⾦される • 正常に実⾏されなかった場合は、課⾦されない ※コストの削減⽅法について、後ほどご説明します。
1. Amazon Athena とは︖ 10 n 画⾯イメージ クエリを書き込む データソース データベース
テーブル などを選択 クエリ結果表⽰ ← 実⾏ボタンなど
2. Amazon Athena を使ってみる 11
2. Amazon Athena を使ってみる 12 n 例︓複数の店舗を持つ企業の、店舗別の来店⼈数・売上の⼀覧 • A~Dの店舗の中から、売上上位の2店舗のデータを抽出します athena_test.csv
項⽬︓店舗、来店⼈数、売上 売上上位の 店舗のみ抽出
2. Amazon Athena を使ってみる 13 n 作業の流れ • ⼀覧からデータを抽出するための、作業の流れは以下の通り S3バケットと
データ準備 Athena 環境準備 クエリ実⾏ 結果確認
2. Amazon Athena を使ってみる 14 n S3バケットとデータ準備 • S3に対象データ格納⽤のバケット作成 「バケットを作成」を
クリック
2. Amazon Athena を使ってみる 15 n S3バケットとデータ準備 • S3に対象データ格納⽤のバケット作成 任意のバケット名を⼊⼒
「バケットを作成」を クリック
2. Amazon Athena を使ってみる 16 n S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 作成したバケットを開き、
「アップロード」をクリック
2. Amazon Athena を使ってみる 17 n S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 「ファイルを追加」をクリック
もしくは ドラック&ドロップでファイルをアップロード 「アップロード」をクリック
2. Amazon Athena を使ってみる 18 n S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード アップロードされてることを
確認
2. Amazon Athena を使ってみる 19 n S3バケットとデータ準備 • S3に結果格納⽤のバケットを作成
2. Amazon Athena を使ってみる 20 n Athena 環境準備 • 結果格納先S3バケットの設定
「設定」をクリック
2. Amazon Athena を使ってみる 21 n Athena 環境準備 • 結果格納先S3バケットの設定
「管理」をクリック
2. Amazon Athena を使ってみる 22 n Athena 環境準備 • 結果格納先S3バケットの設定
結果を格納する S3バケットのパスを指定 「保存」をクリック
2. Amazon Athena を使ってみる 23 n Athena 環境準備 • 結果格納先S3バケットの設定
2. Amazon Athena を使ってみる 24 n Athena 環境準備 • データベース作成
「実⾏」をクリック 任意のデータベース名
2. Amazon Athena を使ってみる 25 n Athena 環境準備 • データベース作成
作成したデータベースを 選択
2. Amazon Athena を使ってみる 26 n Athena 環境準備 • テーブル作成
「実⾏」をクリック データベース名.任意のテーブル名 フィールドの定義 対象データのS3バケットのパス 区切り⽂字、改⾏コード指定
2. Amazon Athena を使ってみる 27 n Athena 環境準備 • テーブル作成
作成したテーブルが 表⽰されます
2. Amazon Athena を使ってみる 28 n クエリ実⾏ 「実⾏」をクリック
2. Amazon Athena を使ってみる 29 n 結果確認 上位2店舗の情報が 出⼒された!
2. Amazon Athena を使ってみる 30 n 結果確認 • 結果をダウンロード 「結果をダウンロード」を
クリック
2. Amazon Athena を使ってみる 31 n 結果確認 • 結果をダウンロード
2. Amazon Athena を使ってみる 32 n クエリ履歴 • 「最近のクエリ」タブを開くと、実⾏したクエリが確認できる
2. Amazon Athena を使ってみる 33 n クエリの保存 • 「エディタ」タブからクエリが保存できる クエリ名横の…でメニューを開き、
「名前を付けて保存」をクリック クエリ名・説明を⼊⼒し、 「クエリを保存」をクリック
2. Amazon Athena を使ってみる 34 n クエリの保存
2. Amazon Athena を使ってみる 35 n エラー発⽣時のイメージ 項⽬名を`で囲わないと いけなかった… エラー内容が表⽰されるの
でここで原因を確認︕
3.コスト削減⽅法 36
3.コスト削減⽅法 37 n 主なコスト削減⽅法は、以下の3つ • パーティショニング ⇨ 必要なデータのみ処理する • データ圧縮
⇨ 処理するデータ量が少なくなる • 列指向形式 ⇨ 必要な列のみ読み込まれる
3.コスト削減⽅法 38 n パーティショニング • 複数ファイルを対象とする場合、S3のバケット内をフォルダ分け • 例︓”dt” をキーとして、⽇付ごとのフォルダを作成 dt=(⽇付)でフォルダを作成
3.コスト削減⽅法 39 n パーティションの⽅法 • 個別のフォルダ内にファイルを格納
3.コスト削減⽅法 40 n パーティションの⽅法 • Athenaでのテーブル作成時に、PARTITIONED BY の設定を追加する
3.コスト削減⽅法 41 n パーティションの⽅法 「パーティション化済み」 と表⽰される
3.コスト削減⽅法 42 n パーティションの⽅法 • MSCK REPAIR TABLEコマンドでパーティション情報を読み込む テーブル名
3.コスト削減⽅法 43 n パーティションの⽅法 • クエリ実⾏ WHERE句で⽇付を指定 指定した⽇付のデータのみ スキャンされる
3.コスト削減⽅法 44 n パーティションの⽅法 注意︓MSCK REPAIR TABLEをしないと、データが出⼒されない
3.コスト削減⽅法 45 n データ圧縮 • S3に格納するデータを圧縮することで、スキャンする容量が減るため、コスト削減できる • 現時点では、以下の圧縮形式がサポートされている Ø BZIP2
Ø DEFLATE Ø GZIP Ø LZ4 Ø LZO Ø SNAPPY Ø ZLIB Ø ZSTD ※詳細はこちら︓ https://docs.aws.amazon.com/ja_jp/athena/latest/ug/compression-formats.html
3.コスト削減⽅法 46 n 列指向形式 • データを列指向形式に変換することでパフォーマンスが向上する • Athenaでは CREATE TABLE
AS クエリを実⾏して列指向形式 (Parquet or ORC) に変換 S3バケットのパス 変換元のテーブル名
3.コスト削減⽅法 47 n 列指向形式 注意︓CREATE TABLE AS クエリの実⾏では、指定するS3のバケットは空でないとNG
4.応⽤してみる (Amazon QuickSightとの連携) 48
4.応⽤してみる(Amazon QuickSightとの連携) 49 n QuickSightとは︖ • AWSのビジネスインテリジェンス (BI) サービス •
さまざまなデータソースからデータを結合し、ダッシュボードによって可視化する ことでデータ分析に活⽤できる
4.応⽤してみる(Amazon QuickSightとの連携) 50 n サインアップ(初めて利⽤する場合のみ) • コンソールからQuickSightにアクセス • 初めて利⽤する場合、以下のようなサインアップ画⾯が表⽰される 「Sign
up for QuickSight」 をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 51 n サインアップ(初めて利⽤する場合のみ) • Editionを選択する Standard Editionを使⽤する場合は、 画⾯下部にリンクがある
Standard→Enterpriseへは アップグレード可能なので、 まずはStandardから始めるのがおすすめ
4.応⽤してみる(Amazon QuickSightとの連携) 52 n サインアップ(初めて利⽤する場合のみ) Standard Editionは 「here」をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 53 n サインアップ(初めて利⽤する場合のみ) リージョンを選択 任意のアカウント名を⼊⼒ メールアドレスを⼊⼒ (QuickSightのお知らせが届きます)
4.応⽤してみる(Amazon QuickSightとの連携) 54 n サインアップ(初めて利⽤する場合のみ) 連携するリソースを選択 S3とAthenaにチェックを⼊れる
4.応⽤してみる(Amazon QuickSightとの連携) 55 n サインアップ(初めて利⽤する場合のみ) • リソース選択でS3にチェックすると、バケットの選択画⾯が開く Athenaで使⽤している S3バケットにチェック 「Athena
Workgroupの 書き込みアクセス許可」 にもチェック
4.応⽤してみる(Amazon QuickSightとの連携) 56 n サインアップ(初めて利⽤する場合のみ) • 「完了」をクリックすると、作成中→サインアップ完了のメッセージが表⽰される 「Amazon QuickSight に移動する」
をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 57 n 連携⼿順 「新しいデータセット」を クリック 「データセット」を選択
4.応⽤してみる(Amazon QuickSightとの連携) 58 n 連携⼿順 「Athena」をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 59 n 連携⼿順 任意のデータソース名を⼊⼒ 「データソースを作成」を クリック ワークグループを選択
4.応⽤してみる(Amazon QuickSightとの連携) 60 n 連携⼿順 Athenaで作成したDBを選択 Athenaで作成したテーブルを選択 「選択」をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 61 n 連携⼿順 「Visualize」をクリック
4.応⽤してみる(Amazon QuickSightとの連携) 62 n 連携⼿順 グラフの種類を選択 Athenaで定義したフィールド が表⽰される
4.応⽤してみる(Amazon QuickSightとの連携) 63 n 連携⼿順 フィールドを ドラッグ&ドロップ 店舗別の情報が グラフに表⽰される
4.応⽤してみる(Amazon QuickSightとの連携) 64 n 以下のようにさまざまなグラフ・表などを配置できます
5.まとめ 65
5.まとめ 66 n 所感 • Athenaは、使った分だけ課⾦される&すぐに開始できるという点で、 気軽に始められるのでとても良い︕ • ⼯夫次第でコスト削減できる(公式では90%も削減できるとのこと)ので、 分析する対象や、どういった内容を出⼒したいのかをしっかり検討することが重要
• ⼩さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ