Amazon Athenaって何?
re:Growth 2016 Osaka
classmethod.jp 1
2016.12.12 クラスメソッド株式会社
市田善久
Who are you?
classmethod.jp 2
• 市田善久
• 大阪オフィス勤務
Solutions Architect
• 前職:レンタルサーバ
• Interest :
Network / Security
BigData / DevOps
Athena,AI,X-Ray …
classmethod.jp 2
Amazon Athena
classmethod.jp 3
What‘s Amazon Athena?
標準SQLを用いてAmazon S3上にあるデータ
を簡単に分析できるインタラクティブなクエリ
サービス
ザックリ表現で、
「S3のデータに直接SQL投げられるサービス」
classmethod.jp 4
どういうこと?
• マネジメントコンソールで数アクション
• 標準SQLでアドホッククエリ実行
• 結果は数秒
classmethod.jp 5
特徴その1/4
• すぐ使える。直接クエリできる
– ETLやデータのロードが不要
– Athenaにデータを移す必要がない
– S3上のファイルにテーブル定義を適用するだ
けで、ファイルに変更を加える必要なく、高
速にクエリを実行可能
• サーバレス
– セットアップや管理用インフラは不要
– 高可用性、運用性
classmethod.jp 6
特徴その2/4
• 数秒で結果が得られる
– クエリを自動で並列化し、何百、何千コアに
分散し、高速処理
– パフォーマンス改善
• データの圧縮
• カラムナ形式のフォーマット
• 詳細は後程
classmethod.jp 7
特徴その3/4
• 分散SQLエンジンPrestoでクエリ実行
• 様々なデータフォーマットに対応
– JSON、CSV、TSV、ログファイル、AWS
サービスログ、カスタム区切りのテキスト、
Apache Parquet(パーケイ)、Apache ORC
等
classmethod.jp 8
特徴その4/4
• S3へのストリームデータも対応
• Athena自体が未対応のリージョンのS3
に対しても実行可能
– 東京リージョンのバケットに対して利用可能
• 従量課金
– 実行したクエリのみ課金(詳細は後程)
classmethod.jp 9
圧縮データのサポート
S3上のデータが圧縮されていても解析可能
• Snappy
– Google製のオープンソースの圧縮ライブラリ
• Zlib
• GZIP
classmethod.jp 10
組み合わせ
• Amazon QuickSightとの連携(確認中)
– 容易に可視化
• JDBC接続
– BIツールやSQLクライアントからクエリ実行
可能(Workbenchなど)
• 様々なサードパーティ製ツールとの連携可能
– Amazon Athena用のJDBCドライバはS3で公
開済み
classmethod.jp 11
Workbench利用例
classmethod.jp 12
クエリについて
• マネジメントコンソールのAthena Query Editor
やSQLクライアントから照会
• DDL文やSQLクエリを実行可能
– 実行不可なものも(CREATE TABLE AS SELECT等)
• 結果はコンソールへストリームされる
• 結果はS3に保存される
– アクセス可能
• 1アカウントあたり同時に5つのクエリを実行可
– デフォルト
– 上限緩和申請で拡張可能
classmethod.jp 13
簡単な使い方
1. マネジメントコンソールにログイン
2. CREATE TABLE(2通り)
– マネジメントコンソールでウィザード利用
– DDL文の利用 (Hive DDL)
3. クエリー開始
classmethod.jp 14
サンプルデータ
classmethod.jp 15
1. Name & Location
classmethod.jp 16
2. Data Format
classmethod.jp 17
3. Columns
classmethod.jp 18
4. Partitios
classmethod.jp 19
Create Table
classmethod.jp 20
Run Query
classmethod.jp 21
コスト
• 実行したクエリのみに対する課金
– 各クエリでスキャンされたデータ量
• S3上のデータ1TBスキャン毎に$5
• 失敗クエリは課金対象外
classmethod.jp 22
コスト削減のポイント
データスキャンを減らしコスト節約
• データ圧縮
• カラムナフォーマット
– Parquet等の利用でデータ転送量を縮小し、デー
タスキャンを縮小
– (必ずしもParquetの方が速くなる訳では無い?)
• パーティショニング
– スキャン対象を指定
– 詳細は後程
classmethod.jp 23
これまでの課題と解決
• シンプルなパイプライン
– S3 > EMR > S3 > Redshift > QuickSight
– S3 > Athena > QuickSight
classmethod.jp 24
• データ分析の大量作業、大量な知識必要
適切な選択
• Amazon Redshift
– データウェアハウス
– 膨大な構造化データに対して複雑なクエリに対して高速に
結果を得られる
• Amazon EMR
– Hadoop, Spark, Prestoの利用
– これらの分散処理フレームワークを効率的に高いコスト効
率で利用できる
• Amazon Athena
– S3へのアドホッククエリを実行する最も簡単な方法
要件や環境に応じた最適な選択
classmethod.jp 25
事例
• DataXu社180TB/日を可視化
classmethod.jp 26
国内事例 - Gunosy
• 株式会社Gunosy
– 日本の大手ニュースキュレーションアプリ・
プロバイダ
• Athenaの評価
– 使用してきたシステムよりも高速にクエリ結
果を得られた
– 今後、Amazon Athena を分析プラット
フォームの中核に据えるつもり
classmethod.jp 27
国内事例 - JapanTaxi
• JapanTaxi株式会社
– タクシー配車アプリ等の交通関連アプリ提供
– 毎月200万人アクティブユーザ
• Athenaの評価
– 既に保存されているデータを移動させることなく、
クエリの実行が可能
– 費用を抑えながら最も細かいレベルでデータをクエ
リ処理できる
– Amazon EMR のような、その他のソリューションで
同じデータを活用し、相互運用することも可能
– 特別な管理者を必要としない
classmethod.jp 28
パーティショニング
• データ分割手法の1つ
• 検索効率の向上
• アプリケーションの修正が不要
• など
classmethod.jp 29
Athenaでパーティショニング
• Athenaで利用可能
• スキャン対象を指定できる
• パフォーマンスの向上
• スキャン対象の削減によるコスト節約!
パーティショニング活用しましょう!
classmethod.jp 30
パーティション設定
設定方法は2通りに別れる
• S3上のデータが、Hive形式でパーティ
ション化されている場合
• S3上のデータが、Hive形式を考慮されて
いない場合
classmethod.jp 31
パーティション化されている場合
• テーブル作成時に「PARTITIONED BY」
を指定
– PARTITIONED BY(dt STRING)
• パーティション用のkeyを指定
classmethod.jp 32
パーティションの考慮がない場合
classmethod.jp 33
パーティションの考慮がない場合
• ALTER TABLE ADD PARTITIONを実行し
て、パーティションを追加
• 日付フォルダ毎に実行する必要がある
• 手動でやるには限界
– JDBCで自動処理
• 上限20,000/テーブル
classmethod.jp 34
パーティショニング要不要
• Athenaは気軽に使えてとても便利
• 事前にパーティショニングは検討した方が
いい
テーブル定義やデータフォーマットが変更で
きるなら、パーティショニングは要検討!
classmethod.jp 35
Athenaの利用用途
• データ分析向け
– CREATE TABLE AS SELECTといった構文に
対応していない
– 参照用途での利用が想定されている
• JDBCやBIツールからの参照
• QuickSightとの連携(確認中です)
– 簡単にデータ分析
classmethod.jp 36
やってみたブログ
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
classmethod.jp 38
ご清聴ありがとう
ございました

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