Weitere ähnliche Inhalte
Ähnlich wie プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
Ähnlich wie プランニングツールにおけるインタラクティブな可視化を支えるバックエンド (20)
Mehr von Yahoo!デベロッパーネットワーク
Mehr von Yahoo!デベロッパーネットワーク (20)
プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
- 1. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
2017年9月15日
データ事業推進本部プロダクト開発1部データプラットフォーム 稲場朋大
プランニングツールにおける
インタラクティブな可視化を支えるバックエンド
- 2. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
1
• 自己紹介
• 背景
• インタラクティブな可視化
• DWH
• システム構築
• 実際に開発をして
• まとめ
- 3. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
2
- 4. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
• 稲場 朋大(いなば ともひろ)
• 2015年度新卒入社 エンジニア
• 所属:
マーケティングソリューションズカンパニー データ事業推進本部
• 担当:
データ分析基盤のバックエンド、インフラ
3
- 5. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
背景
4
- 6. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
担当業務: プランニングツール
• 広告プランナー、マーケター向けプラットフォーム
• いわゆるデータ分析基盤
• ヤフーのデータ(e.g. 検索クエリ、流出URL、デモグラ、興味関心)
• 機能例:
ユーザセグメント可視化、広告配信連携、モデリング、データ連携
5
- 7. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
6
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
- 8. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
7
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
- 9. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
8
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
- 10. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
9
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
- 11. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
10
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
- 12. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構成
11
サービスログ
→: データフロー
HDFS
DWH
データ連携
モデリング
広告配信連携
ヤフーユーザ
プランナーUIサーバ
プランニングツール
ログ集計
データ利用
インタラクティブに返す
- 13. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
今日お話すること
• インタラクティブな可視化を実現するためのバックエンド
• 構築する際に考えていること
• どうやって実現したか
• 実際に開発して得られた知見
12
- 14. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
インタラクティブな可視化
13
- 15. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ユーザセグメント
• プランニングツールでプランナーに見せている値
• ある条件に一致するユニークユーザ数とその掛け合わせ(分析系のクエリ)をインタラク
ティブに(数秒のレイテンシで)出す
• 例: 以下を一度に出す
A: 直近7日間で車について検索した20代男性 => 100,000人
B: 旅行に興味がある20代男性 => 50,000人
C: AかつBのユーザ数 => 20,000人
(数値はイメージです)
• 目的: ユーザを知り施策に繋げる、広告配信対象のボリュームを確認、etc.
14
AB C
- 16. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ビッグデータの可視化
• ビッグデータ処理
• リソース(マシン、人、時間)がかかる
• 有効に活用し、トライ&エラーを繰り返すためには
• クエリの自由度
• write/read時間のトレードオフ
• UI/UX
• 画面で見たい情報が簡単に見られるか
• 操作時のレスポンスタイム
15
write read
- 17. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
クエリの自由度
16
→ 以上のトレードオフとサービス設計と突き合わせてインフラ構成を考える
クエリの自由度 write時間 read時間 クエリ例
高い 短い 長い 分析
低い 長い 短い レポート
- 18. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
UI/UX
• 見せ方
• ビッグデータシステムはUIから選択するものが多くなりがち
• 結果も見やすく/読み取りやすくする
• 使い心地
• 操作時のレイテンシを軽快にすることで、トライ&エラーを繰り返しやすくなる
17
→ フロントエンド、デザイナーとの協業
- 19. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
データ構造、クエリ
• データ構造
• (user_id, date) => {ev0: val0, ev1: val1, …}
• SQLでの例(ある期間内に特定行動を特定回数起こしたユニークユーザ数)
• SELECT COUNT(1)
FROM (
SELECT user_id
FROM data_set
WHERE date BETWEEN from_date AND to_date
GROUP BY user_id
HAVING SUM(ev0) >= count
);
18
- 20. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
DWH
19
- 21. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Data WareHouse
• プランニングツール内で可視化バックエンドを担当するコンポーネント
• データウェアハウスは、意思決定のため、目的別に編成され、統合された時
系列で、削除や更新しないデータの集合体
• https://ja.wikipedia.org/wiki/データウェアハウス
20
分析/レポート
ログを集約
- 22. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
よく使われるミドルウェア
• クラウド
• BigQuery, Redshift
• エンタープライズ
• Teradata, Greenplum
• OSS
• Presto, Spark, Impala, Kylin, Elasticsearch, Solr
21
- 23. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
システム構築
22
- 24. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Solr
• Apache Solr
• http://lucene.apache.org/solr/
• OSSの検索エンジン
• インデキシング部分はlucene, サーバ機能がSolr
• SolrCloudで容易にクラスタ構築が可能
• pluginで検索ロジックやクラスタ制御ロジック等を拡張可能
• Java
23
- 25. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Solr選定理由
• オンプレ(BigQuery, Redshift, Presto等が準備できなかった)
• json-facet(Solr5.x-)でやりたいことができそう
• ユーザidでの分散(ノードをまたぐ計算が必要ない)
• 既存システムでの運用経験
• 速い
24
- 26. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SolrCloud構成
• サーバ
• vm400台
• 200shards, 2replication
• メモリ
• 64GB
• インデックスはon-memory
• インデックス
• 30-40億レコード
• 約6TB
25
- 27. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
plugin開発
• 条件にマッチするユニークユーザ数をカウンティング
• 既存のjson-facetのI/Fだとアプリケーションに合わなかったため
• json-facetの実装を参考にluceneのAPIを叩く
• 性能試験で苦労…
26
- 28. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
実際に開発をして
27
- 29. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能試験
• まずはナイーブに実装
→ 計測 → ボトルネック特定 → チューニング → 計測 → …
の繰り返しで、ひとまずはOK?
• データ量を増やしたところレイテンシが悪化
FullGCで1-2分程停止、目標は数秒
28
- 30. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
更に性能試験
• オブジェクトの使い回し、GCチューニング(G1GC)
• 入力データを10%サンプリング、不要なキーをフィルタ
• クラスタ全体の90%のノードが結果を返した時点で計算を切り上げ
• → 数秒まで短縮
29
- 31. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
プランニングツールならではの要件
• プランニング目的なので厳密な数値は必要無い。概算でOK
• もともと個人情報保護の観点から下数桁は丸める
30
- 32. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
学び・面白かった点
• ビジネス知識・ドメイン知識もチューニングに役立つ
• アルゴリズムだけでなくデータサイズも気にしてコーディングする
• データ工学、簡潔データ構造、確率的データ構造のような知識も活用出
来る場面が業務中に多くあり、サービスの改善に繋げることが出来る
31
- 33. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
32
- 34. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
• プランニングツールにおける可視化バックエンドについて説明
• SolrCloudを使用してDWHを構築し、pluginを実装
• チューニングではビジネス知識、データ内容、データサイズも大切
33