[MUSASHI-users 449] Re: アクセスログの複数条件による集計

アーカイブの一覧に戻る

Hiroko Ishikura s04ma****@sub*****
2004年 12月 22日 (水) 14:40:02 JST


海老澤様

石倉です

> こんな計算がmusashiで一発でできるとうれしいのですが、xtclassify
> を利用することで実現できそうでしょうか?

xtclassifyでは目的が違いますので利用しても実現できません。

下記に一発でできるスクリプトを書いてみました。
もっとシンプルにすることはできると思いますが、ご参考までに。

ーーースクリプトサンプルーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#!/bin/bash

#==================================================
#各URLのユニークユーザ数を求める
#--IDなしのユーザ処理
#==================================================

#text形式のデータをxmlTbl形式のデータに変換
txt2xt -a ID,URL,TIME,REF -l test -i logfile.txt -o logfile.xt

#ID有のユニークユーザをカウント
xtcut    -f ID -i logfile.xt                     |
xtselstr -f ID -v "null" -r                      |
xtuniq   -k ID                                   |
xtcount  -a usrCnt1                              |
xtcut    -f usrCnt1                              -o xxusrCnt

#ID有のページビューをカウント
xtcut    -f ID,URL -i logfile.xt                 |
xtselstr -f ID -v "null" -u usrNull.xt -r        |
xtcount  -k ID -a prevCnt1                       |
xtcut    -f ID,prevCnt1                          -o xxprevCnt1

#ID無のページビューをカウント
xtcount  -k ID -a prevCnt0 -i usrNull.xt         |
xtcut    -f ID,prevCnt0                          -o xxprevCnt0

#ID有の(ユニーク)ユーザ数,ID有無ページビュー数項目を結合
xtproduct -m xxprevCnt1 -f prevCnt1 -i xxusrCnt  |
xtproduct -m xxprevCnt0 -f prevCnt0              |
xtbest    -R 1                                   -o xxmaster

#ID有のページビュー数,ユーザ数の割合でID無のユーザ数を算出
#注)*このサンプル例では推計値は、基準値の倍数のある範囲内での切捨て
xtcal -c'down($prevCnt0*($usrCnt1/$prevCnt1),1)' -a usrCnt0 -i xxmaster 
-o xxdat

#ページビューの総計とユニークユーザの推計値を求める
xtcal -c'($prevCnt0+$prevCnt1)' -a ページビュー数   -i xxdat -o xxtotalprev
xtcal -c'($usrCnt0+$usrCnt1)'   -a ユニークユーザ数 -i xxdat -o xxtotalID

#ページビュー数,ユニークユーザ数項目を結合
xtproduct -m xxtotalprev -f ページビュー数 -i xxtotalID |
xtbest    -R 1                                          |
xtcut     -f ページビュー数,ユニークユーザ数 -o result.xt

#rm -rf xx*
#==================================================

ーーーーーここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーー



On 2004/12/22, at 0:53, Sumio Ebisawa wrote:

> 海老澤と申します。お世話になります。
>
>
> 現在、Webサーバのアクセスログ解析システムを構築中です。ログ
> ファイルは「会員ID URL 時間 参照元」という形にならんでいます。
>
> 001 /a.html 2月1日 www.yahoo.co.jp
> 001 /b.html 2月1日 www.yahoo.co.jp
> 001 /a.html 2月1日 www.yahoo.co.jp
> 002 /a.html 2月1日 www.yahoo.co.jp
> 003 /a.html 2月1日 www.yahoo.co.jp
>
>
> このデータを利用して、各URLのユニークユーザ数を数えたいのです。
> ユニークユーザ数を出すには、URLに対して会員IDが何種類あるかを
> 数えると出てきます。それ自体はxtaggを利用することで計算できます。
> 問題は、会員IDがないユーザの場合です。会員IDは登録者のみ発行
> されるため、一般の人がアクセスした場合には会員IDは記録されま
> せん。つまり
>
> null /a.html 2月1日 www.yahoo.co.jp
> null /b.html 2月1日 www.yahoo.co.jp
> null /a.html 2月1日 www.yahoo.co.jp
> null /a.html 2月1日 www.yahoo.co.jp
> null /a.html 2月1日 www.yahoo.co.jp
>
> というレコードが発生します。会員IDがないレコードからユニークユーザ
> 数を算出するために、次のロジックを利用します。
>
> 1 ID有りのレコードをカウントし、ページビュー数とユニークユーザ数を
>   カウントする(例:ページビュー数が100/ユニークユーザ数が10)
>
> 2 ID無しのレコードをカウントし、ページビュー数だけをカウントする
>   (例:ページビュー数が20/ユニークユーザ数は「?」)
>
> 3 ID有りで算出したページビュー数とユニークユーザ数の割合を、
>   ID無しの結果に当てはめる
>   (例:100:10=20:「?」 「?」=2)
>
> 4 ID有りの結果とID無しの推計値を足す
>   (例:ページビュー数は120、ユニークユーザ数は12)
>
> こんな計算がmusashiで一発でできるとうれしいのですが、xtclassify
> を利用することで実現できそうでしょうか?
>
>
>
>
>
>
> _______________________________________________
> MUSASHI-users mailing list
> MUSAS****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/musashi-users
>
>
---
Hiroko Ishikura  s04ma****@sub*****




MUSASHI-users メーリングリストの案内
アーカイブの一覧に戻る