Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cookpad TechConf 2016 - DWHに必要なこと

39,652 views

Published on

Cookpad TechConf 2016での青木の発表資料。大量のデータを最大限に活用するためのデータ処理システムの構築方針について

Published in: Technology
  • Be the first to comment

Cookpad TechConf 2016 - DWHに必要なこと

  1. 1. DWHに必要なこと ∼1人で始めるCIO∼ Minero Aoki
  2. 2. 自己紹介 ‣ 青木峰郎(あおき みねろう) ‣ 元Rubyコミッター ‣ 分析システム「たべみる」開発 ‣ データ分析基盤エンジニア ‣ 著書多数→
  3. 3. データ活用基盤 今日のテーマ
  4. 4. やりたいこと 大量のデータを
 最高に活用したい
  5. 5. やりたいこと 大量のデータを
 最高に活用したい ユーザーコンタク トの一元管理 ターゲティング広告 ユーザー行動の分析 アプリのA/Bテスト
  6. 6. DWH (Data Warehouse) が その解となる
  7. 7. DWHとは ‣ 90年代に提唱されたデータ分析アーキテクチャ ‣ 大量のデータを集めて部署横断で分析 ‣ Bill Inmonが定義(DWHの父と呼ばれている)
  8. 8. DWH = 分析用のきれいなDB
  9. 9. (DWHでない) 普通のDBは汚い
  10. 10. DWHをどう作るか
  11. 11. がんばる
  12. 12. 基本方針1. データは一箇所に集める
  13. 13. アプリB ターゲティ ング広告 DB アプリC 行動分析 DB アプリD ABテスト DB アプリA コンタクト 管理 DB 乱立する分析システム
  14. 14. アプリB ターゲティ ング広告 DB アプリC 行動分析 DB アプリD ABテスト DB アプリA コンタクト 管理 DB 乱立する分析システム ダメ
  15. 15. なぜダメか ‣ データを集めるのがつらすぎ…… ‣ 指標の定義が違う!(PVって? UUって?) ‣ 元データがよくわからない
  16. 16. あるべきすがた アプリA アプリB アプリC アプリD コンタクト 管理 ターゲティ ング広告 行動分析 ABテスト データベース
  17. 17. DBなににする? • クックパッドでは全面的にRedshiftをDWHとして 使うことにした • 速い • 安い • 普通のSQLが使える
  18. 18. アーキテクチャ Redshift (DWH) マスター Cookpad 広告配信システム ログ マスター ログ マスター ログ マスター ログ ログ マスター 各種サービス ログ マスター 連携システム Re:dash Jupyter Tableau 独自バッチシステム (Bricolage)
  19. 19. データを集めれば DWHか?
  20. 20. もちろん違う
  21. 21. データを集めただけ
  22. 22. DWH
  23. 23. データは加工しないと DWHにはならない
  24. 24. どのように加工するか?
  25. 25. DWHの4つの条件 Integrated Subject- Oriented Time- Variant Non- Volatile
  26. 26. DWHの4つの条件 Integrated Subject- Oriented Time- Variant Non- Volatile略
  27. 27. 10年戦える データ分析入門 青木峰郎著 ソフトバンククリエイティブ 詳細は本で
  28. 28. 基本方針2. DWHはなりゆきで作る
  29. 29. アプリケーションが先! DWHがあと! Redshift 元データ DWH 活用先ごと Cookpad 広告配信 動画配信 …… コンタクト 管理 ターゲティ ング広告 ユーザー 行動分析 ABテスト as-is 3NF 3NF/Star 構築順(1) 構築順(2)構築順(3)
  30. 30. 共通ライブラリ としてのDWH
  31. 31. 基本方針3. SQLですべてを処理する
  32. 32. よい例 Redshift テーブル テーブル テーブル INSERT SELECT INSERT SELECT
  33. 33. Redshift テーブル テーブル テーブル ダメな例 RubyRuby SELEC T IN SER T SELEC T IN SER T
  34. 34. ポイント ウェブとDWHでは
 同じSQL/RDBでも
 使いかたが違う
  35. 35. まとめ
  36. 36. DWHに必要なこと
  37. 37. データは 一箇所に集める
  38. 38. DWHは なりゆきでつくる
  39. 39. すべてをSQLで処理
  40. 40. 同じSQLでも ウェブとDWHは別物

×