
(レポート) DAT308: Yahoo!がAmazon Redshiftで毎日大量のイベントを分析する方法 #reinvent
2015.10.17
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは&こんばんは!しんや@サンフランシスコ滞在中です。
当エントリでは、AWS re:Invent 2015のセッションの1つ、Yahoo!のAmazon Redshiftを含めたデータの連携方法等について簡潔にまとめてみたいと思います。
Yahooでの分析
- Yahooにとって『分析』は何を意味するのか?
 - ETLプロセスを学ぶ
 - Amazon Redshiftアーキテクチャについて学ぶ
 - やるべき事、やってはいけない事、Amazon Redshiftに於けるベストプラクティス等
 - 分析応用編/どのように我々がユーザー保持を定義し、レポートしているか
 
Hadoopの稼働状況
- 14クラスタ
 - 42000ノード
 - 3つのデータセンター
 - 500PBのデータ量
 - Hiveの印象:遅い、使いづらい、共有しづらい、繰り返ししにくい。
 - その他のHadoop系サービス(Apache Drill, Spark, TEZ, Cloudera IMPALA, druid)も同様
 
YahooでのAmazon Redshiftの活用状況
- dc1.8xlarge 21ノード
 - 1日あたりのイベント数:2B(20億)
 - 1日あたりのクエリ数:1200
 - データ量:27TB
 
アーキテクチャ
- ETL処理:Hadoop(Pig) → S3(Airflow) → Amazon Redshift(Looker)というフロー。
 - Welcome to Apache Pig!
 - Airflow: a workflow management platform - Airbnb Engineering
 - Looker | Business intelligence for the people who create data-driven companies.
 - upstreamのフロー
 - Hadoop: Clickstreamデータを1時間毎にバッチプロセス(Oozie)でHDFSへ
 - 中間ストレージとなっている(HDFS)からカスタムアップローダ(python/boto)でS3へ
 - downstreamのフロー
 - S3からAmazon Redshiftへのデータフロー。処理及び再分割が行われている。
 
- Airflowの活用。実行中及び完了したタスクの可視化。
 
- スキーマ
 - 夜間のETL
 - 全ての日次集計及びお掃除/VACUUMコマンドを実行
 
やるべき事&べからず集
- 【やる】データのサマリー化
 - 【やる】最適なソートキーを指定
 - 【やる】VACUUM処理は夜間に実施
 - 【やる】可能な限り『JOIN』を避ける(そして結合しなければいけない場合の緩和戦略について学ぶ)
 - JOIN時の緩和:レコードが同じ場所に配置されると、結合が最も早くなる。
 
- 【やる】自動化
 - 【やってはいけない】クラスタのデータ領域を埋めてしまう
 - 【やってはいけない】デフォルトキューでETLを実施(WLMを上手く使おう)
 
- 【やってはいけない】恒久的なテーブルに対し、CREATE TABLE AS構文を使う
 
まとめ
Yahoo!におけるAmazon Redshiftの活用法に関するまとめでした。Amazon Redshiftのべき&べからず集についても参考になりましたが、個人的にはAirflowやLookerと言った関連ツールの内容が気になりました。時間のある時に調べてみようと思います。こちらからは以上です。






