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.

データ分析基盤を支えるエンジニアリング

8,138 views

Published on

・リクルートライフスタイルのデータ分析基盤の紹介
・データ分析基盤に必要なエンジニアリング
リクルートライフスタイル 白鳥昇治

Published in: Data & Analytics
  • Have you ever used the help of ⇒ www.HelpWriting.net ⇐? They can help you with any type of writing - from personal statement to research paper. Due to this service you'll save your time and get an essay without plagiarism.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2F4cEJi ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

データ分析基盤を支えるエンジニアリング

  1. 1. データ分析基盤を支えるエンジニアリング 白鳥 昇治 テクノロジープラットフォームユニット データマネジメントグループ データ基盤チーム 2017/12/12 0
  2. 2. 今日お話すること • 自己紹介 • リクルートライフスタイルのデータ分析基盤の紹介 • データ分析基盤に必要なエンジニアリング • さいごに 1
  3. 3. 自己紹介 • 白鳥 昇治(しろとり しょうじ) • 略歴 • インフラエンジニア@SIer 2013/4〜 • 社内プライベートクラウドの構築・運用 • ソフトウェア開発ツールの社内ホスティングサービス開発・運用 • データエンジニア@リクルートライフスタイル 2017/7〜 • データ基盤チーム • 美容データプロデュースチーム(兼務) • 趣味 • バイク / 登山 / 仮想通貨トレード / Splatoon 2
  4. 4. Engineering for data Business with data 技術でビジネスを ドライブする Stable Infrastructure Continual Innovation+ リクルートライフスタイルにおけるエンジニアの役割
  5. 5. 今日お話すること • 自己紹介 • リクルートライフスタイルのデータ分析基盤の紹介 • データ分析基盤に必要なエンジニアリング • さいごに 4
  6. 6. リクルートライフスタイルのプロダクト 5
  7. 7. どういうデータが集まるの? • 事業DBデータ • じゃらん、ホットペッパーグルメなどの各事業DBのテーブルそのもの や、そのスナップショットデータ • マスターデータ • 地理情報などの外部データから取得できるマスターデータ • 管理者が手動で管理しているのでmaster_handスキーマと呼ばれる • データマート • 事業データ、マスターデータを駆使して分析・モニタリングしやすい ように加工したもの。データプランナーが事業と一緒に考えて作成。 • 誰でも音速でBIできるのでbi_smh(BIシューマッハ)スキーマと呼ば れる • サイトアクセスログ • Adobe Analyticsによる各事業のアクセスログ 6
  8. 8. どう使う分析基盤なの? • アドホック分析 • データが必要になったときに。 • 例:昨日のこのエリアの宿のじゃらん予約数を知りたい • KPI・KGIモニタリング • 主にTableauでモニタリング、出力ファイル提供もする • 例:アクティブユーザー数の推移を見たい • 施策のためのデータ抽出 • 売上に直結するような施策のためのデータ抽出をバッチ実行 • データサイエンティストが考えたモデルを動かして使ったりする • 例:キャンペーンのポイント付与対象者リストが欲しい 7 プロダクトごとに 分析フローは様々
  9. 9. データウェアハウス データ分析基盤 データ分析基盤 超概要 8 データ データ レイク データ データ 格納 データ 格納 データ マート BIツール 集計 集約 分析 ローデータを一元的に格納 データを構造的に格納 分析しやすいように データを加工する データ基盤チーム 分析ユーザー orシステム 事業
  10. 10. データ分析基盤BLT 概要 9 S3 HPB JLN HPG TSV CSV Cloud Storage Redshift(本番) Redshift(退避) アクセスログ CSV 事業データ 外部データ Exadata Bigquery (スナップショット から再作成) ETL処理 ロード ETL処理 ロード ETL処理 マート作成 ETL処理 展開 BIツール JLN JLN
  11. 11. 実装ポイント3つ • データレイク構成 • 4つのデータウェアハウス • ETLのための独自フレームワーク 10
  12. 12. データレイク構成 11 HPB JLN HPG TSV CSV Cloud Storage Redshift(本番) Redshift(退避) アクセスログ CSV 事業データ 外部データ Exadata Bigquery (スナップショット から再作成) ETL処理 ロード ETL処理 ロード ETL処理 マート作成 ETL処理 展開 BIツール JLN JLN S3
  13. 13. データレイク構成 • ローデータはすべてS3に保管(=データレイク構成) • データレイク構成にしておくことによって、新しいエンジンや新 しいニーズが出てきた際もある程度柔軟に対応出来る 12 S3 Load OK!
  14. 14. 4つのデータウェアハウス 13 HPB JLN HPG TSV CSV Cloud Storageアクセスログ CSV 事業データ 外部データ (スナップショット から再作成) ETL処理 ロード ETL処理 ロード ETL処理 マート作成 ETL処理 展開 BIツール S3 Redshift(本番) Redshift(退避) Exadata Bigquery JLN JLN
  15. 15. 4つのデータウェアハウス • Exadata • 施策バッチの専用実行環境 • オンプレ • 売上に直結するため、通常の分析環境とリソースを分離して安 全安心を確保 • 利用についてはマネージャー承認制 14
  16. 16. 4つのデータウェアハウス • Redshitf(本番) • メインの分析環境 • データロードとマート作成が常に走っており激重 • 重要指標のモニタリングによく使われる • データ鮮度:日次 15
  17. 17. 4つのデータウェアハウス • Redshift(退避) • アドホック分析環境その2 • 本番のRedshiftが遅すぎたため作った環境 • 週次で本番Redshiftのスナップショットから再作成される • 最新のデータをテーブル単位でS3からロードすることもできる • データ鮮度:週次 16
  18. 18. 4つのデータウェアハウス • BigQuery • アドホック分析環境その2 • アクセスログが毎時で連携されている • 最近Redshiftのデータも連携されるようになったのでRedshift 退避環境の退役も近い • 安いし使いやすいし最高でしかない • データ鮮度:毎時or日次 17
  19. 19. (スナップショット から再作成) BIツールRedshift(本番) Redshift(退避) Exadata Bigquery JLN JLN ETL(Extract Transform Load)処理 18 HPB JLN HPG TSV CSV Cloud Storageアクセスログ CSV 事業データ 外部データ S3 ETL処理 マート作成 ETL処理 ロード ETL処理 ロード ETL処理 展開
  20. 20. ETL処理のためのフレームワーク① • 通称、h2framework • 独自で実装した ETLのフレームワークを用意し、SQLとYAMLを作るだけ でデータの移動を出来るようにしている。Python製。スケジューラーは JP1。 19
  21. 21. ETL処理のためのフレームワーク② • 通称、bq-loader • S3にデータが配置されると、自動的にBigQueryにロードされる。ジョブ の中身はPython製。イベントドリブンでイケてる。 20
  22. 22. 今日お話すること • 自己紹介 • リクルートライフスタイルのデータ分析基盤の紹介 • データ分析基盤に必要なエンジニアリング • さいごに 21
  23. 23. データ分析基盤に必要なエンジニアリング このデータ分析基盤で達成したいこと とにかくどんどん分析してもらって 売上を上げてもらう! そのために… 22
  24. 24. 23 #1 ユーザビリティを上げる
  25. 25. ユーザビリティを上げる • 使ってもらわないことには始まらない • アクティブユーザー数は150〜200、ユニークユーザーは1000以上 • ユーザーのバックグラウンドも様々 • ディレクター、マーケター、セールス、エンジニア、データサイエン ティスト、etc... 24
  26. 26. ユーザビリティを上げる • データをいい感じにする • データソースを増やす • たとえば業務で使っているクラウドサービスのデータ • データ鮮度を上げる • Weekly→Daily→Hourly→リアルタイム • ここはまだ要望に答えきれていない… 25
  27. 27. ユーザビリティを上げる • ユーティリティツールを公開する • チャットでつぶやくとで最新データをロードするインターフェース • データの更新時間がわかるダッシュボード • Slackの質問チャンネル開設 • メタ情報の公開 26
  28. 28. 27 • 事業DBやDWH、Adobe Analyticsのメタデータを一元的に管理 • カラムに対してのコメント機能もあるため、単純なDDLよりもわかりやすい情報が載っている
  29. 29. #2 パフォーマンスを上げる 28
  30. 30. パフォーマンスを上げる • クエリが数分間返ってこない分析基盤なんて使っても らえない • ユーザー「ボルト?遅っ!!」 29
  31. 31. パフォーマンスを上げる • ビッグデータ、データ分析関連のソフトウェアやサービスはも のすごい勢いでローンチ/アップデートされている • Redshift Spectrum, AWS Glue, Dataflow, Data studio... • 良さそうなものは検証して基盤を進化させ続け、その時想像で きる最適を目指す 30
  32. 32. 31 Amazon EMR Amazon Athena AWS Glue 役目を終えた OR 我々の基盤に今はマッチしなかったサービス・ツール達
  33. 33. パフォーマンスを上げる • マネージドサービスとは仲良く、フィードバックする • もちろん最初はSQLチューニングやベストプラクティス適用な ど、基本からやりましょう 32
  34. 34. 33 #3 運用コストを下げる
  35. 35. 運用コストを下げる • ユーザビリティやパフォーマンスのための開発ができ るようにする 34
  36. 36. 運用コストを下げる • なるべく運用は自動化しておく • ETLのリトライは単純リランで済むように、冪等な処理に • 故障チケットは自動で起票、チケット起票おじさんがいなくて済むように • Infrastructure as a code/自動テスト/自動デプロイ • 定常作業はすべて自動化するつもりで • まだまだ道半ば>< • 魔改造しない、マネージドサービスに乗れるところは乗る • まだまだオンプレのバッチサーバがあったりします • とはいえミドルウェアを自分でいじれないのはちょっとさみしい>< 35
  37. 37. #4 モニタリングする 36
  38. 38. モニタリングする • データ分析基盤自体もデータ分析が必要 • モニタリングをして改善しないとダメです • まだきちんとできておりません>< 37
  39. 39. 38 クエリ状況 障害状況 DWH負荷状況 UU推移(日足) クエリ数推移(日足) クエリ実行時間推移(日足) クエリ内容 UU推移(月足) クエリ数推移(月足) クエリ実行時間推移(月足) サマリ
  40. 40. #5 自分で分析する 39
  41. 41. 自分自身でも分析する • せっかく目の前に面白いデータがあるのに、遊ばない 分析しない手はない • 使う側になってみないとわからないこと、たくさんあ ると思います • 自分がマーケター、ディレクターの役割で事業課題を発見・解決する データを作ってみよう • 誰が、何のために、どんなデータを分析してるのか認 識しないと、最適なデータ分析基盤は作れない • =データプランナーの視点も必要 40
  42. 42. データ分析基盤に必要なエンジニアリング このデータ分析基盤で達成したいこと とにかくどんどん分析してもらって 売上を上げてもらう! そのために… 1. ユーザビリティを上げる 2. パフォーマンスを上げる 3. 運用コストを下げる 4. モニタリングする 5. 自分で分析する 41
  43. 43. 今日お話すること • 自己紹介 • リクルートライフスタイルのデータ分析基盤の紹介 • データ分析基盤に必要なエンジニアリング • さいごに 42
  44. 44. さいごに • 進化を続けることができる基盤は作っていて、エンジニアとして とても楽しい • 新しいマネージドサービスや技術はキャッチアップ必須! • リクルートライフスタイルのデータ分析基盤はまだ発展途上 • お話したとおり改善ポイントはいくらでもある • 実はアプリやサーバーログのリアルタイム収集・分析基盤は別にあったり… • リクルートライフスタイル、ひいてはリクルート全体の分析基盤 を一緒に作ってくれる方をお待ちしています! 43
  45. 45. 44
  46. 46. 45

×