Submit Search
アクセス解析システムの裏側 (公開用)
•
62 likes
•
20,329 views
shunsuke Mikami
Follow
1 of 52
Download now
Downloaded 90 times
More Related Content
アクセス解析システムの裏側 (公開用)
1.
アクセス解析システムの裏側
三上俊輔 1 12年9月23日日曜日
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日日曜日
10.
国内でも50社以上
10 12年9月23日日曜日
11.
11 12年9月23日日曜日
12.
海外有名企業が提供。
11 12年9月23日日曜日
13.
にもかかわらず、
国内大手企業が次々導入。 12 12年9月23日日曜日
14.
User Insightでは、どこを
どう見られているかがわかる 13 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日日曜日
21.
今日のメインはこの有料アクセス解析
ではなくて、 無料のアクセス解析ツールに関して 15 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日日曜日
25.
まずはアクセス解析の基本から
19 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日日曜日
31.
リアルタイムサマリー
25 12年9月23日日曜日
32.
リアルタイム足跡
26 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日日曜日
41.
通常の集計処理の結果画面
31 12年9月23日日曜日
42.
組織からの訪問回数
32 12年9月23日日曜日
43.
小バッチ処理でやらないといけないこと
• 離脱の判断 • 組織やユーザエージェントの情報などとの JOIN • 集計結果をDBに保存 33 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日日曜日
Download