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
140
第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
第157回 雲勉 AWSインフラ監視をNew Relicで行う際の個人的Tips
iret
0
24
第156回 雲勉 AWS on Windows入門
iret
0
36
第155回 雲勉 サーバレスアーキテクチャを 用いたコスト重視 AI サービス
iret
0
46
第154回 雲勉 AWS Codeシリーズ盛り上げ隊 ~ Codeシリーズは砕けない ~
iret
0
46
第153回 雲勉 トラシューが秒で終わる新機能 Amazon Q Developer operational investigations
iret
0
60
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
50
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
63
第152回 雲勉 シームレスなマルチリージョンへの移行と検討 ~Amazon EKSとAWS Global Acceleratorを使用した環境〜
iret
0
62
第149回 雲勉 AWS ベストプラクティスの最新と実際 AWS Well-Architected
iret
0
96
Other Decks in Technology
See All in Technology
一歩ずつ成長しながら進める ZOZOの基幹システムリプレイス/Growing Stap by Stap ZOZO BackOffice System Replacement
cocet33000
3
540
貧民的プログラミングのすすめ
kakehashi
PRO
2
380
EC-CUBEはサーバレスで動かせるのか?
yukishimada
1
130
RaspberryPi CM4(CM5も)面白いぞ!
nonnoise
1
330
Microsoft_20250311_AzureIoTPortfolio_PDF.pdf
iotcomjpadmin
0
190
アウトカムを最大化させるプロダクトエンジニアの動き
hacomono
PRO
0
290
なぜ「Event Sourcing」を選択したのか〜事実に基づくことの重要性〜/Why did we choose "Event Sourcing"?
bitkey
1
220
AI活用の壁を超える! 開発組織への普及の秘訣
kouryou
0
160
最近のラズピッピいじり / 20250308-rpijam-13th-birthday
akkiesoft
0
370
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
1
540
AI-Driven-Development-20250310
yuhattor
3
360
“常に進化する”開発現場へ! SHIFTが語るアジャイルQAの未来/20250306 Yuma Murase
shift_evolve
0
190
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
A better future with KSS
kneath
238
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
GraphQLとの向き合い方2022年版
quramy
44
14k
Building an army of robots
kneath
303
45k
Typedesign – Prime Four
hannesfritz
41
2.5k
Thoughts on Productivity
jonyablonski
69
4.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Being A Developer After 40
akosma
89
590k
GitHub's CSS Performance
jonrohan
1030
460k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
101
18k
Transcript
第126回 雲勉 Amazon Athena入門 ~基本の使い方&QuickSightと連携させてみよう〜
0.講師自己紹介 2 ◼ 沖手 彩香 • クラウドインテグレーション事業部 開発第二セクション • アイレット歴は1年半ほど
• 今年はAWS、GCPの資格取得をもっとがんばりたい • 好きなもの:音楽・お笑い・お酒
アジェンダ 3 0. 自己紹介 1. Amazon Athena とは? 2. Amazon
Athena を使ってみる 3. コスト削減方法 4. 応用してみる(Amazon QuickSightとの連携) 5. まとめ
本日のゴール 4 ◼ Amazon Athenaの概要についての理解 ◼ Amazon Athenaを使ってどんなことができるかイメージできるようになること ※ Amazon
Athenaをほとんど触ったことがない、という初心者の方向けの内容となります。
1. Amazon Athena とは? 5
1. Amazon Athena とは? 6 ◼ 標準的なSQLを使用して、Amazon S3上のデータ分析を行うことができる ◼ サーバレスのためすぐに利用開始できる
◼ 実行した分だけ料金がかかる 引用:https://aws.amazon.com/jp/athena/
1. Amazon Athena とは? 7 ◼ ユースケース • その他の分析サービス:Amazon Redshift、Amazon
EMRなど ⇨ 大量のデータを常時分析する場合などに活用 • Amazon Athenaはスポット的な分析に適している
1. Amazon Athena とは? 8 ◼ ユースケース 例えば・・・ ・S3に蓄積されたログを分析してパフォーマンス改善を行いたい ・一時的に必要なデータや、コストの問題でDBに格納していないデータを分析したい
Athenaを使ってみよう!
1. Amazon Athena とは? 9 ◼ 料金体系 • クエリ単位でスキャンされたデータのバイト数で課金される •
1TBあたり、5USD • バイト数はMB単位で切り上げ • クエリごとに最小10MB分が課金される • 正常に実行されなかった場合は、課金されない ※コストの削減方法について、後ほどご説明します。
1. Amazon Athena とは? 10 ◼ 画面イメージ クエリを書き込む データソース データベース
テーブル などを選択 クエリ結果表示 ← 実行ボタンなど
2. Amazon Athena を使ってみる 11
2. Amazon Athena を使ってみる 12 ◼ 例:複数の店舗を持つ企業の、店舗別の来店人数・売上の一覧 • A~Dの店舗の中から、売上上位の2店舗のデータを抽出します athena_test.csv
項目:店舗、来店人数、売上 売上上位の 店舗のみ抽出
2. Amazon Athena を使ってみる 13 ◼ 作業の流れ • 一覧からデータを抽出するための、作業の流れは以下の通り S3バケットと
データ準備 Athena 環境準備 クエリ実行 結果確認
2. Amazon Athena を使ってみる 14 ◼ S3バケットとデータ準備 • S3に対象データ格納用のバケット作成 「バケットを作成」を
クリック
2. Amazon Athena を使ってみる 15 ◼ S3バケットとデータ準備 • S3に対象データ格納用のバケット作成 任意のバケット名を入力
「バケットを作成」を クリック
2. Amazon Athena を使ってみる 16 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 作成したバケットを開き、
「アップロード」をクリック
2. Amazon Athena を使ってみる 17 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 「ファイルを追加」をクリック
もしくは ドラック&ドロップでファイルをアップロード 「アップロード」をクリック
2. Amazon Athena を使ってみる 18 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード アップロードされてることを
確認
2. Amazon Athena を使ってみる 19 ◼ S3バケットとデータ準備 • S3に結果格納用のバケットを作成
2. Amazon Athena を使ってみる 20 ◼ Athena 環境準備 • 結果格納先S3バケットの設定
「設定」をクリック
2. Amazon Athena を使ってみる 21 ◼ Athena 環境準備 • 結果格納先S3バケットの設定
「管理」をクリック
2. Amazon Athena を使ってみる 22 ◼ Athena 環境準備 • 結果格納先S3バケットの設定
結果を格納する S3バケットのパスを指定 「保存」をクリック
2. Amazon Athena を使ってみる 23 ◼ Athena 環境準備 • 結果格納先S3バケットの設定
2. Amazon Athena を使ってみる 24 ◼ Athena 環境準備 • データベース作成
「実行」をクリック 任意のデータベース名
2. Amazon Athena を使ってみる 25 ◼ Athena 環境準備 • データベース作成
作成したデータベースを 選択
2. Amazon Athena を使ってみる 26 ◼ Athena 環境準備 • テーブル作成
「実行」をクリック データベース名.任意のテーブル名 フィールドの定義 対象データのS3バケットのパス 区切り文字、改行コード指定
2. Amazon Athena を使ってみる 27 ◼ Athena 環境準備 • テーブル作成
作成したテーブルが 表示されます
2. Amazon Athena を使ってみる 28 ◼ クエリ実行 「実行」をクリック
2. Amazon Athena を使ってみる 29 ◼ 結果確認 上位2店舗の情報が 出力された!
2. Amazon Athena を使ってみる 30 ◼ 結果確認 • 結果をダウンロード 「結果をダウンロード」を
クリック
2. Amazon Athena を使ってみる 31 ◼ 結果確認 • 結果をダウンロード
2. Amazon Athena を使ってみる 32 ◼ クエリ履歴 • 「最近のクエリ」タブを開くと、実行したクエリが確認できる
2. Amazon Athena を使ってみる 33 ◼ クエリの保存 • 「エディタ」タブからクエリが保存できる クエリ名横の…でメニューを開き、
「名前を付けて保存」をクリック クエリ名・説明を入力し、 「クエリを保存」をクリック
2. Amazon Athena を使ってみる 34 ◼ クエリの保存
2. Amazon Athena を使ってみる 35 ◼ エラー発生時のイメージ 項目名を`で囲わないと いけなかった… エラー内容が表示されるの
でここで原因を確認!
3.コスト削減方法 36
3.コスト削減方法 37 ◼ 主なコスト削減方法は、以下の3つ • パーティショニング ⇨ 必要なデータのみ処理する • データ圧縮
⇨ 処理するデータ量が少なくなる • 列指向形式 ⇨ 必要な列のみ読み込まれる
3.コスト削減方法 38 ◼ パーティショニング • 複数ファイルを対象とする場合、S3のバケット内をフォルダ分け • 例:”dt” をキーとして、日付ごとのフォルダを作成 dt=(日付)でフォルダを作成
3.コスト削減方法 39 ◼ パーティションの方法 • 個別のフォルダ内にファイルを格納
3.コスト削減方法 40 ◼ パーティションの方法 • Athenaでのテーブル作成時に、PARTITIONED BY の設定を追加する
3.コスト削減方法 41 ◼ パーティションの方法 「パーティション化済み」 と表示される
3.コスト削減方法 42 ◼ パーティションの方法 • MSCK REPAIR TABLEコマンドでパーティション情報を読み込む テーブル名
3.コスト削減方法 43 ◼ パーティションの方法 • クエリ実行 WHERE句で日付を指定 指定した日付のデータのみ スキャンされる
3.コスト削減方法 44 ◼ パーティションの方法 注意:MSCK REPAIR TABLEをしないと、データが出力されない
3.コスト削減方法 45 ◼ データ圧縮 • S3に格納するデータを圧縮することで、スキャンする容量が減るため、コスト削減できる • 現時点では、以下の圧縮形式がサポートされている ➢ BZIP2
➢ DEFLATE ➢ GZIP ➢ LZ4 ➢ LZO ➢ SNAPPY ➢ ZLIB ➢ ZSTD ※詳細はこちら: https://docs.aws.amazon.com/ja_jp/athena/latest/ug/compression-formats.html
3.コスト削減方法 46 ◼ 列指向形式 • データを列指向形式に変換することでパフォーマンスが向上する • Athenaでは CREATE TABLE
AS クエリを実行して列指向形式 (Parquet or ORC) に変換 S3バケットのパス 変換元のテーブル名
3.コスト削減方法 47 ◼ 列指向形式 注意:CREATE TABLE AS クエリの実行では、指定するS3のバケットは空でないとNG
4.応用してみる (Amazon QuickSightとの連携) 48
4.応用してみる(Amazon QuickSightとの連携) 49 ◼ QuickSightとは? • AWSのビジネスインテリジェンス (BI) サービス •
さまざまなデータソースからデータを結合し、ダッシュボードによって可視化する ことでデータ分析に活用できる
4.応用してみる(Amazon QuickSightとの連携) 50 ◼ サインアップ(初めて利用する場合のみ) • コンソールからQuickSightにアクセス • 初めて利用する場合、以下のようなサインアップ画面が表示される 「Sign
up for QuickSight」 をクリック
4.応用してみる(Amazon QuickSightとの連携) 51 ◼ サインアップ(初めて利用する場合のみ) • Editionを選択する Standard Editionを使用する場合は、 画面下部にリンクがある
Standard→Enterpriseへは アップグレード可能なので、 まずはStandardから始めるのがおすすめ
4.応用してみる(Amazon QuickSightとの連携) 52 ◼ サインアップ(初めて利用する場合のみ) Standard Editionは 「here」をクリック
4.応用してみる(Amazon QuickSightとの連携) 53 ◼ サインアップ(初めて利用する場合のみ) リージョンを選択 任意のアカウント名を入力 メールアドレスを入力 (QuickSightのお知らせが届きます)
4.応用してみる(Amazon QuickSightとの連携) 54 ◼ サインアップ(初めて利用する場合のみ) 連携するリソースを選択 S3とAthenaにチェックを入れる
4.応用してみる(Amazon QuickSightとの連携) 55 ◼ サインアップ(初めて利用する場合のみ) • リソース選択でS3にチェックすると、バケットの選択画面が開く Athenaで使用している S3バケットにチェック 「Athena
Workgroupの 書き込みアクセス許可」 にもチェック
4.応用してみる(Amazon QuickSightとの連携) 56 ◼ サインアップ(初めて利用する場合のみ) • 「完了」をクリックすると、作成中→サインアップ完了のメッセージが表示される 「Amazon QuickSight に移動する」
をクリック
4.応用してみる(Amazon QuickSightとの連携) 57 ◼ 連携手順 「新しいデータセット」を クリック 「データセット」を選択
4.応用してみる(Amazon QuickSightとの連携) 58 ◼ 連携手順 「Athena」をクリック
4.応用してみる(Amazon QuickSightとの連携) 59 ◼ 連携手順 任意のデータソース名を入力 「データソースを作成」を クリック ワークグループを選択
4.応用してみる(Amazon QuickSightとの連携) 60 ◼ 連携手順 Athenaで作成したDBを選択 Athenaで作成したテーブルを選択 「選択」をクリック
4.応用してみる(Amazon QuickSightとの連携) 61 ◼ 連携手順 「Visualize」をクリック
4.応用してみる(Amazon QuickSightとの連携) 62 ◼ 連携手順 グラフの種類を選択 Athenaで定義したフィールド が表示される
4.応用してみる(Amazon QuickSightとの連携) 63 ◼ 連携手順 フィールドを ドラッグ&ドロップ 店舗別の情報が グラフに表示される
4.応用してみる(Amazon QuickSightとの連携) 64 ◼ 以下のようにさまざまなグラフ・表などを配置できます
5.まとめ 65
5.まとめ 66 ◼ 所感 • Athenaは、使った分だけ課金される&すぐに開始できるという点で、 気軽に始められるのでとても良い! • 工夫次第でコスト削減できる(公式では90%も削減できるとのこと)ので、 分析する対象や、どういった内容を出力したいのかをしっかり検討することが重要
• 小さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ