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