SlideShare a Scribd company logo
アクセス解析システムの裏側


              三上俊輔



               1
12年9月23日日曜日
目次

              1. 自己紹介

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

              3. アクセス解析の基礎

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

              スライド49枚
                                   2

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分が多い)途切れずに続く一連のアクセス



                                                2セッション

                  0:00            0:50   1:10

                                                1セッション

                   0:00 0:20 0:40 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日日曜日
フロントのシステム構成

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




                                 Memcached



                   ログ書き込み




                       28
12年9月23日日曜日
Fluentdでのログリレー
                                 UUなどカウントアップ




                Fluentd      Fluentd                                Memcached



                                         ログ書き込み



                  Fluentd      Fluentd
                   (slave)    (master)




              参考:http://docs.treasure-data.com/articles/td-agent-high-availability
                                                 29
12年9月23日日曜日
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日日曜日
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日日曜日
集計処理の分類




      • リアルタイム集計
      • 小バッチ集計(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日日曜日
大バッチ処理の流れ

                                         JSONテキストログを
                                           RCFileに変換
                                        (100GBのログが十数GB
              Hive Server                  程度まで圧縮)




                ランキング集計バッチ処理        集計結果格納DB
                               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日日曜日

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日日曜日
  • 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日日曜日
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy