Slide 1

Slide 1 text

第126回 雲勉 Amazon Athena入門 ~基本の使い方&QuickSightと連携させてみよう〜

Slide 2

Slide 2 text

0.講師自己紹介 2 ◼ 沖手 彩香 • クラウドインテグレーション事業部 開発第二セクション • アイレット歴は1年半ほど • 今年はAWS、GCPの資格取得をもっとがんばりたい • 好きなもの:音楽・お笑い・お酒

Slide 3

Slide 3 text

アジェンダ 3 0. 自己紹介 1. Amazon Athena とは? 2. Amazon Athena を使ってみる 3. コスト削減方法 4. 応用してみる(Amazon QuickSightとの連携) 5. まとめ

Slide 4

Slide 4 text

本日のゴール 4 ◼ Amazon Athenaの概要についての理解 ◼ Amazon Athenaを使ってどんなことができるかイメージできるようになること ※ Amazon Athenaをほとんど触ったことがない、という初心者の方向けの内容となります。

Slide 5

Slide 5 text

1. Amazon Athena とは? 5

Slide 6

Slide 6 text

1. Amazon Athena とは? 6 ◼ 標準的なSQLを使用して、Amazon S3上のデータ分析を行うことができる ◼ サーバレスのためすぐに利用開始できる ◼ 実行した分だけ料金がかかる 引用:https://aws.amazon.com/jp/athena/

Slide 7

Slide 7 text

1. Amazon Athena とは? 7 ◼ ユースケース • その他の分析サービス:Amazon Redshift、Amazon EMRなど ⇨ 大量のデータを常時分析する場合などに活用 • Amazon Athenaはスポット的な分析に適している

Slide 8

Slide 8 text

1. Amazon Athena とは? 8 ◼ ユースケース 例えば・・・ ・S3に蓄積されたログを分析してパフォーマンス改善を行いたい ・一時的に必要なデータや、コストの問題でDBに格納していないデータを分析したい Athenaを使ってみよう!

Slide 9

Slide 9 text

1. Amazon Athena とは? 9 ◼ 料金体系 • クエリ単位でスキャンされたデータのバイト数で課金される • 1TBあたり、5USD • バイト数はMB単位で切り上げ • クエリごとに最小10MB分が課金される • 正常に実行されなかった場合は、課金されない ※コストの削減方法について、後ほどご説明します。

Slide 10

Slide 10 text

1. Amazon Athena とは? 10 ◼ 画面イメージ クエリを書き込む データソース データベース テーブル などを選択 クエリ結果表示 ← 実行ボタンなど

Slide 11

Slide 11 text

2. Amazon Athena を使ってみる 11

Slide 12

Slide 12 text

2. Amazon Athena を使ってみる 12 ◼ 例:複数の店舗を持つ企業の、店舗別の来店人数・売上の一覧 • A~Dの店舗の中から、売上上位の2店舗のデータを抽出します athena_test.csv 項目:店舗、来店人数、売上 売上上位の 店舗のみ抽出

Slide 13

Slide 13 text

2. Amazon Athena を使ってみる 13 ◼ 作業の流れ • 一覧からデータを抽出するための、作業の流れは以下の通り S3バケットと データ準備 Athena 環境準備 クエリ実行 結果確認

Slide 14

Slide 14 text

2. Amazon Athena を使ってみる 14 ◼ S3バケットとデータ準備 • S3に対象データ格納用のバケット作成 「バケットを作成」を クリック

Slide 15

Slide 15 text

2. Amazon Athena を使ってみる 15 ◼ S3バケットとデータ準備 • S3に対象データ格納用のバケット作成 任意のバケット名を入力 「バケットを作成」を クリック

Slide 16

Slide 16 text

2. Amazon Athena を使ってみる 16 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 作成したバケットを開き、 「アップロード」をクリック

Slide 17

Slide 17 text

2. Amazon Athena を使ってみる 17 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード 「ファイルを追加」をクリック もしくは ドラック&ドロップでファイルをアップロード 「アップロード」をクリック

Slide 18

Slide 18 text

2. Amazon Athena を使ってみる 18 ◼ S3バケットとデータ準備 • 作成したバケットに対象ファイルをアップロード アップロードされてることを 確認

Slide 19

Slide 19 text

2. Amazon Athena を使ってみる 19 ◼ S3バケットとデータ準備 • S3に結果格納用のバケットを作成

Slide 20

Slide 20 text

2. Amazon Athena を使ってみる 20 ◼ Athena 環境準備 • 結果格納先S3バケットの設定 「設定」をクリック

Slide 21

Slide 21 text

2. Amazon Athena を使ってみる 21 ◼ Athena 環境準備 • 結果格納先S3バケットの設定 「管理」をクリック

Slide 22

Slide 22 text

2. Amazon Athena を使ってみる 22 ◼ Athena 環境準備 • 結果格納先S3バケットの設定 結果を格納する S3バケットのパスを指定 「保存」をクリック

Slide 23

Slide 23 text

2. Amazon Athena を使ってみる 23 ◼ Athena 環境準備 • 結果格納先S3バケットの設定

Slide 24

Slide 24 text

2. Amazon Athena を使ってみる 24 ◼ Athena 環境準備 • データベース作成 「実行」をクリック 任意のデータベース名

Slide 25

Slide 25 text

2. Amazon Athena を使ってみる 25 ◼ Athena 環境準備 • データベース作成 作成したデータベースを 選択

Slide 26

Slide 26 text

2. Amazon Athena を使ってみる 26 ◼ Athena 環境準備 • テーブル作成 「実行」をクリック データベース名.任意のテーブル名 フィールドの定義 対象データのS3バケットのパス 区切り文字、改行コード指定

Slide 27

Slide 27 text

2. Amazon Athena を使ってみる 27 ◼ Athena 環境準備 • テーブル作成 作成したテーブルが 表示されます

Slide 28

Slide 28 text

2. Amazon Athena を使ってみる 28 ◼ クエリ実行 「実行」をクリック

Slide 29

Slide 29 text

2. Amazon Athena を使ってみる 29 ◼ 結果確認 上位2店舗の情報が 出力された!

Slide 30

Slide 30 text

2. Amazon Athena を使ってみる 30 ◼ 結果確認 • 結果をダウンロード 「結果をダウンロード」を クリック

Slide 31

Slide 31 text

2. Amazon Athena を使ってみる 31 ◼ 結果確認 • 結果をダウンロード

Slide 32

Slide 32 text

2. Amazon Athena を使ってみる 32 ◼ クエリ履歴 • 「最近のクエリ」タブを開くと、実行したクエリが確認できる

Slide 33

Slide 33 text

2. Amazon Athena を使ってみる 33 ◼ クエリの保存 • 「エディタ」タブからクエリが保存できる クエリ名横の…でメニューを開き、 「名前を付けて保存」をクリック クエリ名・説明を入力し、 「クエリを保存」をクリック

Slide 34

Slide 34 text

2. Amazon Athena を使ってみる 34 ◼ クエリの保存

Slide 35

Slide 35 text

2. Amazon Athena を使ってみる 35 ◼ エラー発生時のイメージ 項目名を`で囲わないと いけなかった… エラー内容が表示されるの でここで原因を確認!

Slide 36

Slide 36 text

3.コスト削減方法 36

Slide 37

Slide 37 text

3.コスト削減方法 37 ◼ 主なコスト削減方法は、以下の3つ • パーティショニング ⇨ 必要なデータのみ処理する • データ圧縮 ⇨ 処理するデータ量が少なくなる • 列指向形式 ⇨ 必要な列のみ読み込まれる

Slide 38

Slide 38 text

3.コスト削減方法 38 ◼ パーティショニング • 複数ファイルを対象とする場合、S3のバケット内をフォルダ分け • 例:”dt” をキーとして、日付ごとのフォルダを作成 dt=(日付)でフォルダを作成

Slide 39

Slide 39 text

3.コスト削減方法 39 ◼ パーティションの方法 • 個別のフォルダ内にファイルを格納

Slide 40

Slide 40 text

3.コスト削減方法 40 ◼ パーティションの方法 • Athenaでのテーブル作成時に、PARTITIONED BY の設定を追加する

Slide 41

Slide 41 text

3.コスト削減方法 41 ◼ パーティションの方法 「パーティション化済み」 と表示される

Slide 42

Slide 42 text

3.コスト削減方法 42 ◼ パーティションの方法 • MSCK REPAIR TABLEコマンドでパーティション情報を読み込む テーブル名

Slide 43

Slide 43 text

3.コスト削減方法 43 ◼ パーティションの方法 • クエリ実行 WHERE句で日付を指定 指定した日付のデータのみ スキャンされる

Slide 44

Slide 44 text

3.コスト削減方法 44 ◼ パーティションの方法 注意:MSCK REPAIR TABLEをしないと、データが出力されない

Slide 45

Slide 45 text

3.コスト削減方法 45 ◼ データ圧縮 • S3に格納するデータを圧縮することで、スキャンする容量が減るため、コスト削減できる • 現時点では、以下の圧縮形式がサポートされている ➢ BZIP2 ➢ DEFLATE ➢ GZIP ➢ LZ4 ➢ LZO ➢ SNAPPY ➢ ZLIB ➢ ZSTD ※詳細はこちら: https://docs.aws.amazon.com/ja_jp/athena/latest/ug/compression-formats.html

Slide 46

Slide 46 text

3.コスト削減方法 46 ◼ 列指向形式 • データを列指向形式に変換することでパフォーマンスが向上する • Athenaでは CREATE TABLE AS クエリを実行して列指向形式 (Parquet or ORC) に変換 S3バケットのパス 変換元のテーブル名

Slide 47

Slide 47 text

3.コスト削減方法 47 ◼ 列指向形式 注意:CREATE TABLE AS クエリの実行では、指定するS3のバケットは空でないとNG

Slide 48

Slide 48 text

4.応用してみる (Amazon QuickSightとの連携) 48

Slide 49

Slide 49 text

4.応用してみる(Amazon QuickSightとの連携) 49 ◼ QuickSightとは? • AWSのビジネスインテリジェンス (BI) サービス • さまざまなデータソースからデータを結合し、ダッシュボードによって可視化する ことでデータ分析に活用できる

Slide 50

Slide 50 text

4.応用してみる(Amazon QuickSightとの連携) 50 ◼ サインアップ(初めて利用する場合のみ) • コンソールからQuickSightにアクセス • 初めて利用する場合、以下のようなサインアップ画面が表示される 「Sign up for QuickSight」 をクリック

Slide 51

Slide 51 text

4.応用してみる(Amazon QuickSightとの連携) 51 ◼ サインアップ(初めて利用する場合のみ) • Editionを選択する Standard Editionを使用する場合は、 画面下部にリンクがある Standard→Enterpriseへは アップグレード可能なので、 まずはStandardから始めるのがおすすめ

Slide 52

Slide 52 text

4.応用してみる(Amazon QuickSightとの連携) 52 ◼ サインアップ(初めて利用する場合のみ) Standard Editionは 「here」をクリック

Slide 53

Slide 53 text

4.応用してみる(Amazon QuickSightとの連携) 53 ◼ サインアップ(初めて利用する場合のみ) リージョンを選択 任意のアカウント名を入力 メールアドレスを入力 (QuickSightのお知らせが届きます)

Slide 54

Slide 54 text

4.応用してみる(Amazon QuickSightとの連携) 54 ◼ サインアップ(初めて利用する場合のみ) 連携するリソースを選択 S3とAthenaにチェックを入れる

Slide 55

Slide 55 text

4.応用してみる(Amazon QuickSightとの連携) 55 ◼ サインアップ(初めて利用する場合のみ) • リソース選択でS3にチェックすると、バケットの選択画面が開く Athenaで使用している S3バケットにチェック 「Athena Workgroupの 書き込みアクセス許可」 にもチェック

Slide 56

Slide 56 text

4.応用してみる(Amazon QuickSightとの連携) 56 ◼ サインアップ(初めて利用する場合のみ) • 「完了」をクリックすると、作成中→サインアップ完了のメッセージが表示される 「Amazon QuickSight に移動する」 をクリック

Slide 57

Slide 57 text

4.応用してみる(Amazon QuickSightとの連携) 57 ◼ 連携手順 「新しいデータセット」を クリック 「データセット」を選択

Slide 58

Slide 58 text

4.応用してみる(Amazon QuickSightとの連携) 58 ◼ 連携手順 「Athena」をクリック

Slide 59

Slide 59 text

4.応用してみる(Amazon QuickSightとの連携) 59 ◼ 連携手順 任意のデータソース名を入力 「データソースを作成」を クリック ワークグループを選択

Slide 60

Slide 60 text

4.応用してみる(Amazon QuickSightとの連携) 60 ◼ 連携手順 Athenaで作成したDBを選択 Athenaで作成したテーブルを選択 「選択」をクリック

Slide 61

Slide 61 text

4.応用してみる(Amazon QuickSightとの連携) 61 ◼ 連携手順 「Visualize」をクリック

Slide 62

Slide 62 text

4.応用してみる(Amazon QuickSightとの連携) 62 ◼ 連携手順 グラフの種類を選択 Athenaで定義したフィールド が表示される

Slide 63

Slide 63 text

4.応用してみる(Amazon QuickSightとの連携) 63 ◼ 連携手順 フィールドを ドラッグ&ドロップ 店舗別の情報が グラフに表示される

Slide 64

Slide 64 text

4.応用してみる(Amazon QuickSightとの連携) 64 ◼ 以下のようにさまざまなグラフ・表などを配置できます

Slide 65

Slide 65 text

5.まとめ 65

Slide 66

Slide 66 text

5.まとめ 66 ◼ 所感 • Athenaは、使った分だけ課金される&すぐに開始できるという点で、 気軽に始められるのでとても良い! • 工夫次第でコスト削減できる(公式では90%も削減できるとのこと)ので、 分析する対象や、どういった内容を出力したいのかをしっかり検討することが重要 • 小さなデータであればコストも少ないので、まずはお試しで使ってみるのがオススメ