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
62
第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
第140回 雲勉 今度こそ AWS CDK で構築してみたくなるようなCDK活用集
iret
0
33
第139回 雲勉 Amazon Q Developerで安全快適な IaC with Terraform
iret
0
32
第138回 雲勉 Google Cloudではじめるプラットフォームエンジニアリング
iret
0
30
第137回 雲勉 Google Cloud Vertex AIとLangGraphを味方につけてRAGを改善したひ
iret
0
78
第136回 雲勉 AIに構成図を読み込ませてサーバー作成(Amazon Bedrock)
iret
0
86
第135回 雲勉 AWS Verified Access 入門 ~ VPNを利用せずに拠点/端末からAWSへアクセス ~
iret
1
120
第134回 雲勉 未経験クラウドエンジニア1年生(社会人1年生)の奮闘記
iret
0
60
第133回 雲勉 【オンライン】今度こそ既存のAWSリソースをいい感じにコードに落とし込みたい!
iret
0
55
第132回 雲勉【オンライン】春の生成AI祭り
iret
1
73
Other Decks in Technology
See All in Technology
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.7k
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
Azure AI ことはじめ
tsubakimoto_s
0
130
サービス開発を前に進めるために 新米リードエンジニアが 取り組んだこと / Steps Taken by a Novice Lead Engineer to Advance Service Development
nologyance
0
180
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
terara
0
380
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
AOAI Dev Day - Opening Session
yoshidashingo
2
440
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
Featured
See All Featured
Become a Pro
speakerdeck
PRO
15
4.8k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
The Cult of Friendly URLs
andyhume
75
5.9k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Adopting Sorbet at Scale
ufuk
71
8.8k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
Unsuck your backbone
ammeep
666
57k
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%も削減できるとのこと)ので、 分析する対象や、どういった内容を出⼒したいのかをしっかり検討することが重要
• ⼩さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ