文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>产品数据分析 ( x兄版 ) - 1 属性归并统计

产品数据分析 ( x兄版 ) - 1 属性归并统计

时间:2010-08-05  来源:liukaiyi


帮算 产品 X  (产品为  给 手机下的免费软件 供用户 使用 ) 下的 -
   月份、内容名称、所属栏目名称、资费、PV、访问UV、下载UV 吧

一个 产品集中分析开始了 :
  我: 日志能支撑此次的数据
              月份、内容名称、所属栏目名称、UV 、PV 、 下载PV
                                 (  日志应为产品特殊原因,下载日志中没有 对于用户ID  )
   x兄 : 行吧 ,先出 再看看
  .......  脚本编写 运行  中 (脚本-1) ............
  我 :  数据出来了 , 5 ,6,7 月份的数据出来了 ,一个大大的长尾
  x兄 : 哦 看看先 ... 
  我 : 感觉 这几个月 排行靠前的 这些产品 在这几个月 变化不大 。感觉用户 至少我们接触到的用户他们的 兴趣爱好比较稳定 .
  x兄 : 来个 月份 用户登入数吧 ,对比 产品内容数 看 .
        在 统计平台上 每天用户数相加  会虚高
        ( 解释:  如果1号 来了 10 个用户 ,2号 来 5个但 这几人1号也来过 ,算 1-2号 有多少人  10+5 那就 虚高 ,当然这也是 有解决办法 在数据库里)
   .......  脚本编写 运行  中 (脚本-2) ............
  我 : 吃饭去了




(脚本-1)


find . -type f -name "*2010-07-*" -exec cat {} \;|perl -nle '
   chomp;
   my $m = {};
   # 由于日志 是 key=val<|>key=val<|>....
   # 日志切割 到 map 里
   map{ $m{$1}=$2 if /(.*)=(.*)/ } split /<\|>/ ;

   next if not ($m{aop} eq "be" or $m{aop} eq "d") ;

   $h{$m{bn}} { $m{pn} }{ be }{ $m{auid} } ++ ;
   $h{$m{bn}} { $m{pn} }{ d }{ $m{auid} } ++ ;
   
  END{
    use List::Util qw(sum);

    foreach $bn (keys %h ){
        foreach $pn (keys %{$h{$bn}} ){
            my $f_uv = scalar keys %{$h{$bn}{$pn}{be}};
            my $f_pv = sum values %{$h{$bn}{$pn}{be}};
            
            my $d_uv = scalar keys %{$h{$bn}{$pn}{d}};

            print "$bn\t$pn\t$f_uv\t$f_pv\t$d_uv";
        }
    }
  }
  ' > /tmp/2010-07.100040.txt




(脚本-2)
 

find ./login ./test_login -type f -exec cat {} \; |perl -nle '

 $h{$1}{$2}++ if /at=(\d{4}-\d{2}).*?adid=(.*?)<.*/;

 END{
    use List::Util qw(sum);
    
    foreach my $bn (keys %h ){
       my %be = %{ $h{$bn} } ;
       
       my $f_uv = scalar keys %be;
       my $f_pv = sum(values %be);
       
       print "$bn\t$f_uv\t$f_pv";
    }
  
 }
'


相关阅读 更多 +
排行榜 更多 +
百炼英雄抽卡技巧指南

百炼英雄抽卡技巧指南

休闲益智 下载
英雄没有闪滚雷旋风技能如何搭配

英雄没有闪滚雷旋风技能如何搭配

休闲益智 下载
英雄没有闪雷旋风BD构筑推荐

英雄没有闪雷旋风BD构筑推荐

休闲益智 下载