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

Weitere ähnliche Inhalte

Was ist angesagt?

データの見える化で進めるデータドリブンカンパニー #devsumiC
データの見える化で進めるデータドリブンカンパニー #devsumiCデータの見える化で進めるデータドリブンカンパニー #devsumiC
データの見える化で進めるデータドリブンカンパニー #devsumiCYahoo!デベロッパーネットワーク
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みYahoo!デベロッパーネットワーク
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①Yahoo!デベロッパーネットワーク
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋Yahoo!デベロッパーネットワーク
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo!デベロッパーネットワーク
 
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4Yahoo!デベロッパーネットワーク
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Yahoo!デベロッパーネットワーク
 
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていることYahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていることYahoo!デベロッパーネットワーク
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreadingDataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreadingYahoo!デベロッパーネットワーク
 
Spring Cloud Data Flow で構成される IIJ IoTサービス
Spring Cloud Data Flow で構成される IIJ IoTサービスSpring Cloud Data Flow で構成される IIJ IoTサービス
Spring Cloud Data Flow で構成される IIJ IoTサービスKenji Kondo
 

Was ist angesagt? (20)

データの見える化で進めるデータドリブンカンパニー #devsumiC
データの見える化で進めるデータドリブンカンパニー #devsumiCデータの見える化で進めるデータドリブンカンパニー #devsumiC
データの見える化で進めるデータドリブンカンパニー #devsumiC
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
 
AMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmuAMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmu
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
 
絶対にタダでは転ばない広告エンジニア #yjmu
絶対にタダでは転ばない広告エンジニア #yjmu絶対にタダでは転ばない広告エンジニア #yjmu
絶対にタダでは転ばない広告エンジニア #yjmu
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
 
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
 
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
 
市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①
 
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
Yahoo! JAPANのOSS Cassandra貢献の今までとこれからYahoo! JAPANのOSS Cassandra貢献の今までとこれから
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
 
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
 
kukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコンkukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコン
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb
 
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていることYahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreadingDataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
 
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnightPresto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
 
Spring Cloud Data Flow で構成される IIJ IoTサービス
Spring Cloud Data Flow で構成される IIJ IoTサービスSpring Cloud Data Flow で構成される IIJ IoTサービス
Spring Cloud Data Flow で構成される IIJ IoTサービス
 

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

大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来Masayuki Ueda
 
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)Ryusuke Ashiya
 
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Yutaka Terasawa
 
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)Insight Technology, Inc.
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門Satoru Ishikawa
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...Insight Technology, Inc.
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PC Cluster Consortium
 
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...Google Cloud Platform - Japan
 
yokyo-unv.
yokyo-unv.yokyo-unv.
yokyo-unv.hirano
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)Developers Summit
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤Google Cloud Platform - Japan
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようShinya Nakajima
 
データ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessデータ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessShoji Shirotori
 
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料Osamu Shimoda
 

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

大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来
 
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
 
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
 
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
 
yokyo-unv.
yokyo-unv.yokyo-unv.
yokyo-unv.
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
 
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjpElasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
 
【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介
 
データ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessデータ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverless
 
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
 
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
 
エンタープライズにおける開発ツールの導入と活用推進
エンタープライズにおける開発ツールの導入と活用推進エンタープライズにおける開発ツールの導入と活用推進
エンタープライズにおける開発ツールの導入と活用推進
 

Mehr von Yahoo!デベロッパーネットワーク

ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかYahoo!デベロッパーネットワーク
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2Yahoo!デベロッパーネットワーク
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcYahoo!デベロッパーネットワーク
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo!デベロッパーネットワーク
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcYahoo!デベロッパーネットワーク
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtcYahoo!デベロッパーネットワーク
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcYahoo!デベロッパーネットワーク
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcYahoo!デベロッパーネットワーク
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcYahoo!デベロッパーネットワーク
 

Mehr von Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

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

  • 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