Upload
ganota-ichida
View
1.524
Download
2
Embed Size (px)
Citation preview
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 > QuickSightclassmethod.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
ご清聴ありがとうございました