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
250
0
Share
第126回 雲勉【オンライン】Amazon Athena入門 ~基本の使い方&QuickSightと連携させてみよう~
下記、勉強会での資料です。
https://youtu.be/N49mVAx1ItA
iret.kumoben
January 25, 2024
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
76
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
64
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
94
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
120
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
94
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
100
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
80
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
120
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
160
Other Decks in Technology
See All in Technology
EBS暗号化に失敗してEC2が動かなくなった話
hamaguchimmm
2
200
AI時代のガードレールとしてのAPIガバナンス
nagix
0
260
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
120
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
390
Hacobu Tech Deck
hacobu
PRO
0
110
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
370
AI バイブコーティングでキーボード不要?!
samakada
0
540
The Journey of Box Building
tagomoris
4
2.2k
みんなの「データ活用」を支えるストレージ担当から持ち込むAWS活用/コミュニティー設計TIPS 10選~「作れる」より、「続けられる」設計へ~
yoshiki0705
0
240
AgentCore×VPCでの設計パターンn選と勘所
har1101
3
270
AIエージェントの権限管理 1: MCPサーバー・ツールの Fine grained access control 編
ren8k
3
490
最新の脅威動向から考える、コンテナサプライチェーンのリスクと対策
kyohmizu
1
700
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
It's Worth the Effort
3n
188
29k
So, you think you're a good person
axbom
PRO
2
2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.8k
Raft: Consensus for Rubyists
vanstee
141
7.4k
A better future with KSS
kneath
240
18k
How GitHub (no longer) Works
holman
316
150k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
130
Claude Code のすすめ
schroneko
67
220k
Code Reviewing Like a Champion
maltzj
528
40k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
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%も削減できるとのこと)ので、 分析する対象や、どういった内容を出力したいのかをしっかり検討することが重要
• 小さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ