More Related Content
Similar to アクセス解析システムの裏側 (公開用)
Similar to アクセス解析システムの裏側 (公開用) (10)
More from shunsuke Mikami
More from shunsuke Mikami (8)
アクセス解析システムの裏側 (公開用)
- 2. 目次
1. 自己紹介
2. ユーザーローカルとアクセス解析
3. アクセス解析の基礎
4. アクセス解析システムの裏側
- リアルタイム集計
- 小バッチ集計
- 大規模バッチ集計
スライド49枚
2
12年9月23日日曜日
- 3. 自己紹介
• 三上俊輔
• 株式会社ユーザーローカル
• 今年3月に筑波大学院を卒業
• 大学では分散ファイルシステムの研究
• 学生の時はCookpadのデータマイニン
グ部門で2ヶ月ほどインターン
3
12年9月23日日曜日
- 4. 過去の研究、発表
• 研究ブログ:http://shun0102.net/
• 発表:「分散ファイルシステムGfarm
上でのHadoop MapReduce」など
- http://www.slideshare.net/shun0102/
4
12年9月23日日曜日
- 5. 株式会社ユーザーローカル
•早稲田発技術ベンチャー
•無料アクセス解析ツール運営
•商用アクセス解析ツールの開発/販売
•データ調査(総務省などの仕事)
ex. 日本のブログ実態調査など
5
12年9月23日日曜日
- 6. •PCサイト解析事業
•「ユーザーインサイト」
•「なかのひと」
•モバイル解析事業
•ケータイ解析
•ソーシャル解析事業
•ソーシャルメディア解析
6
12年9月23日日曜日
- 7. アクセス解析は
ビッグデータ!
月間50億PV
を、解析してます
7
12年9月23日日曜日
- 8. 商用ツール
ユーザーインサイト
•有料のアクセス解析ツール
•ヒートマップ機能と属性解析機能
8
12年9月23日日曜日
- 9. よく聞かれる疑問
【アクセス解析】を
提供している会社は
いっぱいあるんじゃないの???
9
12年9月23日日曜日
- 13. にもかかわらず、
国内大手企業が次々導入。
12
12年9月23日日曜日
- 15. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
14
12年9月23日日曜日
- 16. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
14
12年9月23日日曜日
- 17. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
14
12年9月23日日曜日
- 18. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
14
12年9月23日日曜日
- 19. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
14
12年9月23日日曜日
- 20. 訪問者がページの中を
どう見たのかを、可視化
✓クリックが多い場所はどこ?
✓どこまで読まれている?
✓熟読されている段落は?
ブラウザの挙動から
ユーザーの動きを
ヒートマップ表示
14
12年9月23日日曜日
- 22. うごくひと2
•10万サイト以上が利用
•月間30億PV
•主にガラケー向け
16
12年9月23日日曜日
- 23. なぜリニューアル?
• スマートフォン
• リアルタイム
• ビッグデータ
今の40億PVから100億PVへスケール
17
12年9月23日日曜日
- 24. 新卒で入ってからのミッション
• 100億PVまでスケールするアクセス解
析システムのバックエンド
• アクセスをうけるビーコンと集計する
バッチをどう構築するか
18
12年9月23日日曜日
- 26. ビーコン型アクセス解析
一般ユーザー ウェブサイト
サイト閲覧
アクセス解析事業者
情報送信
(Javascriptで情報を送る、
携帯などは画像を読み込ませる)
20
12年9月23日日曜日
- 27. 基本的な指標
• PV ・・・ アクセス回数
• VISIT・・・ セッション回数
• UU・・・ ユニークユーザー数
21
12年9月23日日曜日
- 28. セッションって何?
• 一定時間(30分が多い)途切れずに続く一連のアクセス
2セッション
0:00 0:50 1:10
1セッション
0:00 0:20 0:40 1:00
22
12年9月23日日曜日
- 29. アクセス解析システム実装の悩み
• 大量のアクセスを受け付けてリアルタイム集計もするフロ
ントエンド
• リアルタイムでやるには重い処理(JOINなど)
• 離脱の判定などのセッション単位の集計
• 人気ページランキングなどの1日単位の大規模集計
• 全て1日一回のバッチで済ませれば構成はシンプルにな
るが、バッチが数時間かかるのはつらい
23
12年9月23日日曜日
- 30. 集計処理の分類
• リアルタイム集計
• 小バッチ集計(30分に一回)
• 大バッチ集計(一日一回)
24
12年9月23日日曜日
- 33. これらの機能を実現するために、、、
• カウントアップするためのストレージ
• 秒間1000~2000アクセス
• 1回のアクセスで数回のreadとwrite
• 直近のアクセスを見るためのストレージ
• readよりwriteが多い
• 集計処理
27
12年9月23日日曜日
- 34. これらの機能を実現するために、、、
• カウントアップするためのストレージ
• 秒間1000~2000アクセス 速さと安定性
• 1回のアクセスで数回のreadとwrite
• 直近のアクセスを見るためのストレージ
• readよりwriteが多い
• 集計処理
27
12年9月23日日曜日
- 35. これらの機能を実現するために、、、
• カウントアップするためのストレージ
• 秒間1000~2000アクセス 速さと安定性
• 1回のアクセスで数回のreadとwrite
• 直近のアクセスを見るためのストレージ
高い書き込み性能と
• readよりwriteが多い
柔軟な集計処理
• 集計処理
27
12年9月23日日曜日
- 36. フロントのシステム構成
PV, VISIT, UUのカウントアップ
Memcached
ログ書き込み
28
12年9月23日日曜日
- 37. Fluentdでのログリレー
UUなどカウントアップ
Fluentd Fluentd Memcached
ログ書き込み
Fluentd Fluentd
(slave) (master)
参考:http://docs.treasure-data.com/articles/td-agent-high-availability
29
12年9月23日日曜日
- 38. Fluentdでのログリレー
UUなどカウントアップ
Fluentd Fluentd Memcached
ポイント1. 次のfluendに書き込めない時は待ってリトライする
ログ書き込み
Fluentd Fluentd
(slave) (master)
参考:http://docs.treasure-data.com/articles/td-agent-high-availability
29
12年9月23日日曜日
- 39. Fluentdでのログリレー
UUなどカウントアップ
Fluentd Fluentd Memcached
ポイント1. 次のfluendに書き込めない時は待ってリトライする
ログ書き込み
Fluentd Fluentd
(slave) (master)
ポイント2. MongoDBへの書き込みはチャンク単位で行う
参考:http://docs.treasure-data.com/articles/td-agent-high-availability
29
12年9月23日日曜日
- 40. 集計処理の分類
• リアルタイム集計
• 小バッチ集計(30分に一回)
• 大バッチ集計(一日一回)
30
12年9月23日日曜日
- 44. 小バッチ処理の流れ
組織、ユーザーエージェント情報DB
バッチサーバー
集計結果格納DB 最終的にログをHDFSに保存
34
12年9月23日日曜日
- 45. 集計処理の分類
• リアルタイム集計
• 小バッチ集計(30分に一回)
• 大バッチ集計(一日一回)
35
12年9月23日日曜日
- 46. 大バッチじゃないとできないこと
• 集計結果としてランキング上位の結果だけ残
したい
• 人気ページランキングや参照元のランキング
36
12年9月23日日曜日
- 47. 必然的にHadoopを使用
• 1日1億PV
• 非圧縮のJSONログで1日100GB
• ビッグデータ
37
12年9月23日日曜日
- 48. MapReduce言語 何をつかう?
• Java MapReduce
- 性能は良い、工数がかかる、一部ではアセンブリ言語と呼ばれる
• Hive
- SQLライク、スキーマ定義必要、効率の良いファイルフォーマット(RCFile)
• Pig
- 独自言語、スキーマ定義不要
• Hadoop Streaming
- 好きな言語で書ける、性能は悪い
38
12年9月23日日曜日
- 49. RCFileが魅力的なのでHiveを使用
それぞれのRow Groupの中でカラム指向のフォーマット
必要なカラムだけのread、高い圧縮率
最近ではPigもRCFileを使える?
39
12年9月23日日曜日
- 50. 大バッチ処理の流れ
JSONテキストログを
RCFileに変換
(100GBのログが十数GB
Hive Server 程度まで圧縮)
ランキング集計バッチ処理 集計結果格納DB
40
12年9月23日日曜日
- 51. Hiveでは細かい処理はしにくい?
• SQLだけでは出来ることに限りがある
• UDF (User-Defined Function)
• UDAF (User-Defined Aggregation Function)
• UDF, UDAFを使うことによって柔軟な処理!
• 簡単です
41
12年9月23日日曜日
- 52. まとめ
• アクセス解析は、ビッグデータとリアルタイムの両
立が重要に
• リアルタイム、小バッチ、大バッチの3段階集計で
処理
ユーザーローカルではウェブ解析に興味のあるエンジ
ニアを募集中です!
42
12年9月23日日曜日