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
99
第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
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
45
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
39
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
84
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
39
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
84
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
200
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
24
第2回 雲勉LT大会 AWS Control Tower の「コントロール」って何? という謎から AWS Control Tower を知る
iret
0
23
第2回 雲勉LT大会 AWS/Google Cloud/Wasabi ストレージサービスを比較したい
iret
0
43
Other Decks in Technology
See All in Technology
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
510
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.6k
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
340
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
120
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
Lambdaと地方とコミュニティ
miu_crescent
2
370
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
200
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Embracing the Ebb and Flow
colly
84
4.5k
Agile that works and the tools we love
rasmusluckow
327
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
4 Signs Your Business is Dying
shpigford
180
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Adopting Sorbet at Scale
ufuk
73
9.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
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%も削減できるとのこと)ので、 分析する対象や、どういった内容を出力したいのかをしっかり検討することが重要
• 小さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ