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*****