38
Amazon Athenaって何? re:Growth 2016 Osaka classmethod.jp 1 2016.12.12 クラスメソッド株式会社 市田善久

What's Amazon Athena? - re:Growth 2016 Osaka

Embed Size (px)

Citation preview

Page 1: What's Amazon Athena? - re:Growth 2016 Osaka

Amazon Athenaって何?

re:Growth 2016 Osaka

classmethod.jp 1

2016.12.12 クラスメソッド株式会社

市田善久

Page 2: What's Amazon Athena? - re:Growth 2016 Osaka

Who are you?

classmethod.jp 2

• 市田善久

• 大阪オフィス勤務Solutions Architect

• 前職:レンタルサーバ

• Interest : Network / Security BigData / DevOps

Athena,AI,X-Ray …

classmethod.jp 2

Page 3: What's Amazon Athena? - re:Growth 2016 Osaka

Amazon Athena

classmethod.jp 3

Page 4: What's Amazon Athena? - re:Growth 2016 Osaka

What‘s Amazon Athena?

標準SQLを用いてAmazon S3上にあるデータを簡単に分析できるインタラクティブなクエリサービス

ザックリ表現で、

「S3のデータに直接SQL投げられるサービス」

classmethod.jp 4

Page 5: What's Amazon Athena? - re:Growth 2016 Osaka

どういうこと?

• マネジメントコンソールで数アクション

• 標準SQLでアドホッククエリ実行

• 結果は数秒

classmethod.jp 5

Page 6: What's Amazon Athena? - re:Growth 2016 Osaka

特徴その1/4

• すぐ使える。直接クエリできる– ETLやデータのロードが不要

– Athenaにデータを移す必要がない

– S3上のファイルにテーブル定義を適用するだけで、ファイルに変更を加える必要なく、高速にクエリを実行可能

• サーバレス–セットアップや管理用インフラは不要

–高可用性、運用性

classmethod.jp 6

Page 7: What's Amazon Athena? - re:Growth 2016 Osaka

特徴その2/4

• 数秒で結果が得られる

–クエリを自動で並列化し、何百、何千コアに分散し、高速処理

–パフォーマンス改善

• データの圧縮

• カラムナ形式のフォーマット

• 詳細は後程

classmethod.jp 7

Page 8: What's Amazon Athena? - re:Growth 2016 Osaka

特徴その3/4

• 分散SQLエンジンPrestoでクエリ実行

• 様々なデータフォーマットに対応

– JSON、CSV、TSV、ログファイル、AWSサービスログ、カスタム区切りのテキスト、Apache Parquet(パーケイ)、Apache ORC等

classmethod.jp 8

Page 9: What's Amazon Athena? - re:Growth 2016 Osaka

特徴その4/4

• S3へのストリームデータも対応

• Athena自体が未対応のリージョンのS3に対しても実行可能

–東京リージョンのバケットに対して利用可能

• 従量課金

–実行したクエリのみ課金(詳細は後程)

classmethod.jp 9

Page 10: What's Amazon Athena? - re:Growth 2016 Osaka

圧縮データのサポート

S3上のデータが圧縮されていても解析可能

• Snappy

– Google製のオープンソースの圧縮ライブラリ

• Zlib

• GZIP

classmethod.jp 10

Page 11: What's Amazon Athena? - re:Growth 2016 Osaka

組み合わせ

• Amazon QuickSightとの連携(確認中)

–容易に可視化

• JDBC接続

– BIツールやSQLクライアントからクエリ実行可能(Workbenchなど)

• 様々なサードパーティ製ツールとの連携可能

– Amazon Athena用のJDBCドライバはS3で公開済み

classmethod.jp 11

Page 12: What's Amazon Athena? - re:Growth 2016 Osaka

Workbench利用例

classmethod.jp 12

Page 13: What's Amazon Athena? - re:Growth 2016 Osaka

クエリについて

• マネジメントコンソールのAthena Query EditorやSQLクライアントから照会

• DDL文やSQLクエリを実行可能– 実行不可なものも(CREATE TABLE AS SELECT等)

• 結果はコンソールへストリームされる

• 結果はS3に保存される– アクセス可能

• 1アカウントあたり同時に5つのクエリを実行可– デフォルト

– 上限緩和申請で拡張可能

classmethod.jp 13

Page 14: What's Amazon Athena? - re:Growth 2016 Osaka

簡単な使い方

1. マネジメントコンソールにログイン

2. CREATE TABLE(2通り)

– マネジメントコンソールでウィザード利用

– DDL文の利用 (Hive DDL)

3. クエリー開始

classmethod.jp 14

Page 15: What's Amazon Athena? - re:Growth 2016 Osaka

サンプルデータ

classmethod.jp 15

Page 16: What's Amazon Athena? - re:Growth 2016 Osaka

1. Name & Location

classmethod.jp 16

Page 17: What's Amazon Athena? - re:Growth 2016 Osaka

2. Data Format

classmethod.jp 17

Page 18: What's Amazon Athena? - re:Growth 2016 Osaka

3. Columns

classmethod.jp 18

Page 19: What's Amazon Athena? - re:Growth 2016 Osaka

4. Partitios

classmethod.jp 19

Page 20: What's Amazon Athena? - re:Growth 2016 Osaka

Create Table

classmethod.jp 20

Page 21: What's Amazon Athena? - re:Growth 2016 Osaka

Run Query

classmethod.jp 21

Page 22: What's Amazon Athena? - re:Growth 2016 Osaka

コスト

• 実行したクエリのみに対する課金

–各クエリでスキャンされたデータ量

• S3上のデータ1TBスキャン毎に$5

• 失敗クエリは課金対象外

classmethod.jp 22

Page 23: What's Amazon Athena? - re:Growth 2016 Osaka

コスト削減のポイント

データスキャンを減らしコスト節約

• データ圧縮

• カラムナフォーマット– Parquet等の利用でデータ転送量を縮小し、データスキャンを縮小

– (必ずしもParquetの方が速くなる訳では無い?)

• パーティショニング– スキャン対象を指定

– 詳細は後程

classmethod.jp 23

Page 24: What's Amazon Athena? - re:Growth 2016 Osaka

これまでの課題と解決

• シンプルなパイプライン– S3 > EMR > S3 > Redshift > QuickSight

– S3 > Athena > QuickSightclassmethod.jp 24

• データ分析の大量作業、大量な知識必要

Page 25: What's Amazon Athena? - re:Growth 2016 Osaka

適切な選択

• Amazon Redshift– データウェアハウス– 膨大な構造化データに対して複雑なクエリに対して高速に結果を得られる

• Amazon EMR– Hadoop, Spark, Prestoの利用– これらの分散処理フレームワークを効率的に高いコスト効率で利用できる

• Amazon Athena– S3へのアドホッククエリを実行する最も簡単な方法

要件や環境に応じた最適な選択

classmethod.jp 25

Page 26: What's Amazon Athena? - re:Growth 2016 Osaka

事例

• DataXu社180TB/日を可視化

classmethod.jp 26

Page 27: What's Amazon Athena? - re:Growth 2016 Osaka

国内事例 - Gunosy

• 株式会社Gunosy–日本の大手ニュースキュレーションアプリ・プロバイダ

• Athenaの評価–使用してきたシステムよりも高速にクエリ結果を得られた

–今後、Amazon Athena を分析プラットフォームの中核に据えるつもり

classmethod.jp 27

Page 28: What's Amazon Athena? - re:Growth 2016 Osaka

国内事例 - JapanTaxi

• JapanTaxi株式会社– タクシー配車アプリ等の交通関連アプリ提供– 毎月200万人アクティブユーザ

• Athenaの評価– 既に保存されているデータを移動させることなく、クエリの実行が可能

– 費用を抑えながら最も細かいレベルでデータをクエリ処理できる

– Amazon EMR のような、その他のソリューションで同じデータを活用し、相互運用することも可能

– 特別な管理者を必要としない

classmethod.jp 28

Page 29: What's Amazon Athena? - re:Growth 2016 Osaka

パーティショニング

• データ分割手法の1つ

• 検索効率の向上

• アプリケーションの修正が不要

• など

classmethod.jp 29

Page 30: What's Amazon Athena? - re:Growth 2016 Osaka

Athenaでパーティショニング

• Athenaで利用可能

• スキャン対象を指定できる

• パフォーマンスの向上

• スキャン対象の削減によるコスト節約!

パーティショニング活用しましょう!

classmethod.jp 30

Page 31: What's Amazon Athena? - re:Growth 2016 Osaka

パーティション設定

設定方法は2通りに別れる

• S3上のデータが、Hive形式でパーティション化されている場合

• S3上のデータが、Hive形式を考慮されていない場合

classmethod.jp 31

Page 32: What's Amazon Athena? - re:Growth 2016 Osaka

パーティション化されている場合

• テーブル作成時に「PARTITIONED BY」を指定

– PARTITIONED BY(dt STRING)

• パーティション用のkeyを指定

classmethod.jp 32

Page 33: What's Amazon Athena? - re:Growth 2016 Osaka

パーティションの考慮がない場合

classmethod.jp 33

Page 34: What's Amazon Athena? - re:Growth 2016 Osaka

パーティションの考慮がない場合

• ALTER TABLE ADD PARTITIONを実行して、パーティションを追加

• 日付フォルダ毎に実行する必要がある

• 手動でやるには限界

– JDBCで自動処理

• 上限20,000/テーブル

classmethod.jp 34

Page 35: What's Amazon Athena? - re:Growth 2016 Osaka

パーティショニング要不要

• Athenaは気軽に使えてとても便利

• 事前にパーティショニングは検討した方がいい

テーブル定義やデータフォーマットが変更できるなら、パーティショニングは要検討!

classmethod.jp 35

Page 36: What's Amazon Athena? - re:Growth 2016 Osaka

Athenaの利用用途

• データ分析向け

– CREATE TABLE AS SELECTといった構文に対応していない

–参照用途での利用が想定されている

• JDBCやBIツールからの参照

• QuickSightとの連携(確認中です)

–簡単にデータ分析

classmethod.jp 36

Page 37: What's Amazon Athena? - re:Growth 2016 Osaka

やってみたブログ

Athena 特集カテゴリー | Developers.IO

• Amazon AthenaでCloudFrontログをSQLで解析する

• Amazon Athena に JDBC 接続する

• AthenaのJDBCドライバを使ってS3のデータにSQL Workbench経由でアクセスする

• Amazon Athena: カラムナフォーマット『Parquet』でクエリを試してみた

• Amazon AthenaでELBログをSQLで解析する

• AWS AthenaでCloudTrailのS3オブジェクトログを解析をしてみました!

• 他多数!!

classmethod.jp 37

Page 38: What's Amazon Athena? - re:Growth 2016 Osaka

classmethod.jp 38

ご清聴ありがとうございました