プランニングツールにおけるインタラクティブな可視化を支えるバックエンド

>100 Views

September 15, 17

スライド概要

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

プランニングツールにおける インタラクティブな可視化を支えるバックエンド 2017年9月15日 データ事業推進本部プロダクト開発1部データプラットフォーム 稲場朋大 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

2.

アジェンダ 1 • 自己紹介 • 背景 • インタラクティブな可視化 • DWH • システム構築 • 実際に開発をして • まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

3.

自己紹介 2 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

4.

自己紹介 • 稲場 朋大(いなば ともひろ) • 2015年度新卒入社 エンジニア • 所属: マーケティングソリューションズカンパニー データ事業推進本部 • 担当: データ分析基盤のバックエンド、インフラ 3 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

5.

背景 4 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

6.

担当業務: プランニングツール • 広告プランナー、マーケター向けプラットフォーム • いわゆるデータ分析基盤 • ヤフーのデータ(e.g. 検索クエリ、流出URL、デモグラ、興味関心) • 機能例: ユーザセグメント可視化、広告配信連携、モデリング、データ連携 5 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

7.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング データ連携 HDFS サービスログ ログ集計 6 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

8.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング データ連携 HDFS サービスログ ログ集計 7 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

9.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング データ連携 HDFS サービスログ ログ集計 8 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

10.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング データ連携 HDFS サービスログ ログ集計 9 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

11.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング データ連携 HDFS サービスログ ログ集計 10 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

12.

システム構成 データ利用 プランニングツール →: データフロー 広告配信連携 DWH プランナー UIサーバ モデリング インタラクティブに返す データ連携 HDFS サービスログ ログ集計 11 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフーユーザ

13.

今日お話すること • 12 インタラクティブな可視化を実現するためのバックエンド • 構築する際に考えていること • どうやって実現したか • 実際に開発して得られた知見 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

14.

インタラクティブな可視化 13 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

15.

ユーザセグメント • プランニングツールでプランナーに見せている値 • ある条件に一致するユニークユーザ数とその掛け合わせ(分析系のクエリ)をインタラク ティブに(数秒のレイテンシで)出す • 例: 以下を一度に出す A: 直近7日間で車について検索した20代男性 => 100,000人 B: 旅行に興味がある20代男性 => 50,000人 C: AかつBのユーザ数 => 20,000人 (数値はイメージです) • 14 目的: ユーザを知り施策に繋げる、広告配信対象のボリュームを確認、etc. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . B C A

16.

ビッグデータの可視化 • ビッグデータ処理 • • リソース(マシン、人、時間)がかかる 有効に活用し、トライ&エラーを繰り返すためには • クエリの自由度 • • 15 write/read時間のトレードオフ UI/UX • 画面で見たい情報が簡単に見られるか • 操作時のレスポンスタイム Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . write read

17.

クエリの自由度 クエリの自由度 write時間 read時間 クエリ例 高い 短い 長い 分析 低い 長い 短い レポート → 以上のトレードオフとサービス設計と突き合わせてインフラ構成を考える 16 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

18.

UI/UX • • 見せ方 • ビッグデータシステムはUIから選択するものが多くなりがち • 結果も見やすく/読み取りやすくする 使い心地 • 操作時のレイテンシを軽快にすることで、トライ&エラーを繰り返しやすくなる → フロントエンド、デザイナーとの協業 17 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

19.
[beta]
データ構造、クエリ
•

データ構造
•

•

SQLでの例(ある期間内に特定行動を特定回数起こしたユニークユーザ数)
•

18

(user_id, date) => {ev0: val0, ev1: val1, …}

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
);
Co p yrig ht © 2 0 1 7

Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

20.

DWH 19 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

21.

Data WareHouse • プランニングツール内で可視化バックエンドを担当するコンポーネント • データウェアハウスは、意思決定のため、目的別に編成され、統合された時 系列で、削除や更新しないデータの集合体 • https://ja.wikipedia.org/wiki/データウェアハウス ログを集約 分析/レポート 20 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

22.

よく使われるミドルウェア • クラウド • • エンタープライズ • • Teradata, Greenplum OSS • 21 BigQuery, Redshift Presto, Spark, Impala, Kylin, Elasticsearch, Solr Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

23.

システム構築 22 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

24.

Solr 23 • Apache Solr • http://lucene.apache.org/solr/ • OSSの検索エンジン • インデキシング部分はlucene, サーバ機能がSolr • SolrCloudで容易にクラスタ構築が可能 • pluginで検索ロジックやクラスタ制御ロジック等を拡張可能 • Java Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

25.

Solr選定理由 24 • オンプレ(BigQuery, Redshift, Presto等が準備できなかった) • json-facet(Solr5.x-)でやりたいことができそう • ユーザidでの分散(ノードをまたぐ計算が必要ない) • 既存システムでの運用経験 • 速い Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

26.

SolrCloud構成 25 • サーバ • vm400台 • 200shards, 2replication • メモリ • 64GB • インデックスはon-memory • インデックス • 30-40億レコード • 約6TB Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

27.

plugin開発 26 • 条件にマッチするユニークユーザ数をカウンティング • 既存のjson-facetのI/Fだとアプリケーションに合わなかったため • json-facetの実装を参考にluceneのAPIを叩く • 性能試験で苦労… Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

28.

実際に開発をして 27 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

29.

性能試験 • まずはナイーブに実装 → 計測 → ボトルネック特定 → チューニング → 計測 → … の繰り返しで、ひとまずはOK? • データ量を増やしたところレイテンシが悪化 FullGCで1-2分程停止、目標は数秒 28 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

30.

更に性能試験 29 • オブジェクトの使い回し、GCチューニング(G1GC) • 入力データを10%サンプリング、不要なキーをフィルタ • クラスタ全体の90%のノードが結果を返した時点で計算を切り上げ • → 数秒まで短縮 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

31.

プランニングツールならではの要件 30 • プランニング目的なので厳密な数値は必要無い。概算でOK • もともと個人情報保護の観点から下数桁は丸める Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

32.

学び・面白かった点 • ビジネス知識・ドメイン知識もチューニングに役立つ • アルゴリズムだけでなくデータサイズも気にしてコーディングする • データ工学、簡潔データ構造、確率的データ構造のような知識も活用出 来る場面が業務中に多くあり、サービスの改善に繋げることが出来る 31 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

33.

まとめ 32 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

34.

まとめ 33 • プランニングツールにおける可視化バックエンドについて説明 • SolrCloudを使用してDWHを構築し、pluginを実装 • チューニングではビジネス知識、データ内容、データサイズも大切 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .