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入門 ~基本の使い方&QuickSightと連携させてみよう~
Search
iret.kumoben
January 25, 2024
Technology
0
32
第126回 雲勉【オンライン】Amazon Athena入門 ~基本の使い方&QuickSightと連携させてみよう~
iret.kumoben
January 25, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第133回 雲勉 【オンライン】今度こそ既存のAWSリソースをいい感じにコードに落とし込みたい!
iret
0
28
第132回 雲勉【オンライン】春の生成AI祭り
iret
1
45
第17回 雲勉LT【オンライン】Amazon Managed Grafanaを使ってCloudWatchログを分析・可視化する
iret
0
36
Amazon Bedrockのロックな使い方を考えたい
iret
0
25
CloudWatch SyntheticsとAmazon Managed Grafanaを連携する
iret
0
20
Amazon SageMaker Canvasで学ぶ機械学習モデルの構築
iret
0
35
ECR経由でのデプロイ通知を考える〜App Runner編〜
iret
0
29
AWSのサーバーレスでとりあえず開発をはじめてみた時に無知ゆえに陥りがちなこと
iret
1
50
第131回 雲勉【オンライン】AWSを9年触ってきて経験した落とし穴、ハマったポイント
iret
8
640
Other Decks in Technology
See All in Technology
Max out Local LLM in Challenging Environments
sashimimochi
1
110
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
420
競技としてのKaggle、役に立つKaggle
yu4u
6
2.3k
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
150
How to Lead? Testimonial of a Lead Android Engineer
oleur
1
110
Next.js に疲れた私は Vue3 に癒やされた
akagire
0
140
MapLibreとAmazon Location Service
dayjournal
1
190
Cloud Service Mesh に触れ合う
phaya72
1
210
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
160
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
120
Cracking the KubeCon CfP
inductor
2
270
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
450
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Into the Great Unknown - MozCon
thekraken
14
1k
In The Pink: A Labor of Love
frogandcode
138
21k
Scaling GitHub
holman
457
140k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Designing for Performance
lara
602
67k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
We Have a Design System, Now What?
morganepeng
44
6.8k
Writing Fast Ruby
sferik
622
60k
It's Worth the Effort
3n
180
27k
Practical Orchestrator
shlominoach
183
9.7k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
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%も削減できるとのこと)ので、 分析する対象や、どういった内容を出⼒したいのかをしっかり検討することが重要
• ⼩さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ