アクセス解析システムの裏側 (公開用)

52
アクセス解析システムの裏側 三上俊輔 1 12923日日曜日

Upload: shunsuke-mikami

Post on 27-Jun-2015

28.200 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: アクセス解析システムの裏側 (公開用)

アクセス解析システムの裏側

三上俊輔

112年9月23日日曜日

Page 2: アクセス解析システムの裏側 (公開用)

目次

1. 自己紹介

2. ユーザーローカルとアクセス解析

3. アクセス解析の基礎

4. アクセス解析システムの裏側- リアルタイム集計- 小バッチ集計- 大規模バッチ集計

2スライド49枚

12年9月23日日曜日

Page 3: アクセス解析システムの裏側 (公開用)

自己紹介•三上俊輔 •株式会社ユーザーローカル•今年3月に筑波大学院を卒業•大学では分散ファイルシステムの研究•学生の時はCookpadのデータマイニング部門で2ヶ月ほどインターン

3

12年9月23日日曜日

Page 4: アクセス解析システムの裏側 (公開用)

過去の研究、発表

•研究ブログ:http://shun0102.net/•発表:「分散ファイルシステムGfarm上でのHadoop MapReduce」など- http://www.slideshare.net/shun0102/

4

12年9月23日日曜日

Page 5: アクセス解析システムの裏側 (公開用)

株式会社ユーザーローカル

•早稲田発技術ベンチャー

•無料アクセス解析ツール運営

•商用アクセス解析ツールの開発/販売

•データ調査(総務省などの仕事)ex. 日本のブログ実態調査など

5

12年9月23日日曜日

Page 6: アクセス解析システムの裏側 (公開用)

•PCサイト解析事業•「ユーザーインサイト」•「なかのひと」•モバイル解析事業•ケータイ解析•ソーシャル解析事業•ソーシャルメディア解析

6

12年9月23日日曜日

Page 7: アクセス解析システムの裏側 (公開用)

アクセス解析は

ビッグデータ!月間50億PVを、解析してます

7

12年9月23日日曜日

Page 8: アクセス解析システムの裏側 (公開用)

ユーザーインサイト

•有料のアクセス解析ツール•ヒートマップ機能と属性解析機能

商用ツール

8

12年9月23日日曜日

Page 9: アクセス解析システムの裏側 (公開用)

よく聞かれる疑問

【アクセス解析】を提供している会社は

いっぱいあるんじゃないの???

9

12年9月23日日曜日

Page 10: アクセス解析システムの裏側 (公開用)

国内でも50社以上

10

12年9月23日日曜日

Page 11: アクセス解析システムの裏側 (公開用)

11

12年9月23日日曜日

Page 12: アクセス解析システムの裏側 (公開用)

海外有名企業が提供。

11

12年9月23日日曜日

Page 13: アクセス解析システムの裏側 (公開用)

にもかかわらず、国内大手企業が次々導入。

12

12年9月23日日曜日

Page 14: アクセス解析システムの裏側 (公開用)

User Insightでは、どこをどう見られているかがわかる

13

12年9月23日日曜日

Page 15: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 16: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 17: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 18: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 19: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 20: アクセス解析システムの裏側 (公開用)

✓クリックが多い場所はどこ?

✓どこまで読まれている?

✓熟読されている段落は?

ブラウザの挙動からユーザーの動きをヒートマップ表示

訪問者がページの中をどう見たのかを、可視化

14

12年9月23日日曜日

Page 21: アクセス解析システムの裏側 (公開用)

今日のメインはこの有料アクセス解析ではなくて、

無料のアクセス解析ツールに関して

15

12年9月23日日曜日

Page 22: アクセス解析システムの裏側 (公開用)

うごくひと2

•10万サイト以上が利用

•月間30億PV

•主にガラケー向け

16

12年9月23日日曜日

Page 23: アクセス解析システムの裏側 (公開用)

なぜリニューアル?

•スマートフォン•リアルタイム•ビッグデータ 今の40億PVから100億PVへスケール

17

12年9月23日日曜日

Page 24: アクセス解析システムの裏側 (公開用)

新卒で入ってからのミッション

• 100億PVまでスケールするアクセス解析システムのバックエンド

•アクセスをうけるビーコンと集計するバッチをどう構築するか

18

12年9月23日日曜日

Page 25: アクセス解析システムの裏側 (公開用)

まずはアクセス解析の基本から

19

12年9月23日日曜日

Page 26: アクセス解析システムの裏側 (公開用)

ビーコン型アクセス解析

サイト閲覧一般ユーザー ウェブサイト

アクセス解析事業者情報送信(Javascriptで情報を送る、

携帯などは画像を読み込ませる)

20

12年9月23日日曜日

Page 27: アクセス解析システムの裏側 (公開用)

基本的な指標

• PV ・・・ アクセス回数

• VISIT・・・ セッション回数

• UU・・・ ユニークユーザー数

21

12年9月23日日曜日

Page 28: アクセス解析システムの裏側 (公開用)

セッションって何?• 一定時間(30分が多い)途切れずに続く一連のアクセス

0:00 0:50 1:10

2セッション

0:00 0:20 0:40

1セッション

1:00

22

12年9月23日日曜日

Page 29: アクセス解析システムの裏側 (公開用)

アクセス解析システム実装の悩み

• 大量のアクセスを受け付けてリアルタイム集計もするフロントエンド

• リアルタイムでやるには重い処理(JOINなど)

• 離脱の判定などのセッション単位の集計• 人気ページランキングなどの1日単位の大規模集計• 全て1日一回のバッチで済ませれば構成はシンプルになるが、バッチが数時間かかるのはつらい

23

12年9月23日日曜日

Page 30: アクセス解析システムの裏側 (公開用)

集計処理の分類

• リアルタイム集計

• 小バッチ集計(30分に一回)

• 大バッチ集計(一日一回)

24

12年9月23日日曜日

Page 31: アクセス解析システムの裏側 (公開用)

リアルタイムサマリー

25

12年9月23日日曜日

Page 32: アクセス解析システムの裏側 (公開用)

リアルタイム足跡

26

12年9月23日日曜日

Page 33: アクセス解析システムの裏側 (公開用)

これらの機能を実現するために、、、

• カウントアップするためのストレージ• 秒間1000~2000アクセス

• 1回のアクセスで数回のreadとwrite

• 直近のアクセスを見るためのストレージ• readよりwriteが多い

• 集計処理27

12年9月23日日曜日

Page 34: アクセス解析システムの裏側 (公開用)

これらの機能を実現するために、、、

• カウントアップするためのストレージ• 秒間1000~2000アクセス

• 1回のアクセスで数回のreadとwrite

• 直近のアクセスを見るためのストレージ• readよりwriteが多い

• 集計処理

速さと安定性

27

12年9月23日日曜日

Page 35: アクセス解析システムの裏側 (公開用)

これらの機能を実現するために、、、

• カウントアップするためのストレージ• 秒間1000~2000アクセス

• 1回のアクセスで数回のreadとwrite

• 直近のアクセスを見るためのストレージ• readよりwriteが多い

• 集計処理

速さと安定性

高い書き込み性能と柔軟な集計処理

27

12年9月23日日曜日

Page 36: アクセス解析システムの裏側 (公開用)

フロントのシステム構成

Memcached

PV, VISIT, UUのカウントアップ

ログ書き込み

28

12年9月23日日曜日

Page 40: アクセス解析システムの裏側 (公開用)

集計処理の分類

• リアルタイム集計

• 小バッチ集計(30分に一回)

• 大バッチ集計(一日一回)

30

12年9月23日日曜日

Page 41: アクセス解析システムの裏側 (公開用)

通常の集計処理の結果画面

31

12年9月23日日曜日

Page 42: アクセス解析システムの裏側 (公開用)

組織からの訪問回数

32

12年9月23日日曜日

Page 43: アクセス解析システムの裏側 (公開用)

小バッチ処理でやらないといけないこと

• 離脱の判断

• 組織やユーザエージェントの情報などとのJOIN

• 集計結果をDBに保存

33

12年9月23日日曜日

Page 44: アクセス解析システムの裏側 (公開用)

小バッチ処理の流れ

組織、ユーザーエージェント情報DB

集計結果格納DB 最終的にログをHDFSに保存

バッチサーバー

34

12年9月23日日曜日

Page 45: アクセス解析システムの裏側 (公開用)

集計処理の分類

• リアルタイム集計

• 小バッチ集計(30分に一回)

• 大バッチ集計(一日一回)

35

12年9月23日日曜日

Page 46: アクセス解析システムの裏側 (公開用)

大バッチじゃないとできないこと

• 集計結果としてランキング上位の結果だけ残したい

• 人気ページランキングや参照元のランキング

36

12年9月23日日曜日

Page 47: アクセス解析システムの裏側 (公開用)

必然的にHadoopを使用

• 1日1億PV

• 非圧縮のJSONログで1日100GB

• ビッグデータ

37

12年9月23日日曜日

Page 48: アクセス解析システムの裏側 (公開用)

MapReduce言語 何をつかう?

• Java MapReduce- 性能は良い、工数がかかる、一部ではアセンブリ言語と呼ばれる

• Hive- SQLライク、スキーマ定義必要、効率の良いファイルフォーマット(RCFile)

• Pig- 独自言語、スキーマ定義不要

• Hadoop Streaming- 好きな言語で書ける、性能は悪い

38

12年9月23日日曜日

Page 49: アクセス解析システムの裏側 (公開用)

RCFileが魅力的なのでHiveを使用それぞれのRow Groupの中でカラム指向のフォーマット

必要なカラムだけのread、高い圧縮率

最近ではPigもRCFileを使える?

39

12年9月23日日曜日

Page 50: アクセス解析システムの裏側 (公開用)

大バッチ処理の流れ

集計結果格納DB

JSONテキストログをRCFileに変換

(100GBのログが十数GB

程度まで圧縮)

ランキング集計バッチ処理

Hive Server

40

12年9月23日日曜日

Page 51: アクセス解析システムの裏側 (公開用)

Hiveでは細かい処理はしにくい?

• SQLだけでは出来ることに限りがある

• UDF (User-Defined Function)

• UDAF (User-Defined Aggregation Function)

• UDF, UDAFを使うことによって柔軟な処理!

• 簡単です

41

12年9月23日日曜日

Page 52: アクセス解析システムの裏側 (公開用)

まとめ

• アクセス解析は、ビッグデータとリアルタイムの両立が重要に

• リアルタイム、小バッチ、大バッチの3段階集計で処理

ユーザーローカルではウェブ解析に興味のあるエンジニアを募集中です!

42

12年9月23日日曜日