雅酷SEO论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 692|回复: 0
打印 上一主题 下一主题

大规模SEO数据分析

[复制链接]

402

主题

0

好友

3200

积分

论坛元老

Rank: 8Rank: 8

  • TA的每日心情

    2016-3-31 23:45
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    跳转到指定楼层
    楼主
    发表于 2013-12-9 21:35:07 |只看该作者 |倒序浏览
    大网站有大网站的好处——数据极其之丰富;大网站也有大网站的坏处——数据处理极其之麻烦。处理海量数据至今也算略有些经验了,稍总结下:


    1. 数据简化

    这里的“数据简化”,指的是采用相对更容易计算的数据指标。比如说两个最常用指标:UV与Visits(此处定义为类似于服务器日志里面的单条数据),因为两者数值接近、趋势一般情况下等同,所以对于SEO流量的多数分析,两个指标都可以。

    但在大规模数据处理中,通常一开始的原始数据是Visits,需要通过user的id来排序等计算非常耗时的步骤,才能计算出UV。所以一般情况下,UV没必要去额外计算。

    2. 数据精简

    对于一个大网站,一天几十几百G的数据是不奇怪的。如此庞大的数据,定时生成报表或还能实现,但已经不太可能用作及时性的分析了。所以需要将数据的体积最小化。

    比如说只需要去除后续访问的SEO流量数据,它在总流量数据中的占比往往是很小的,立马一大堆数据就精简了。然后SEO流量还可以继续精简,比如User-Agent、请求文件大小等数据往往不需要;Referer也没必要完整存下来,可以只提取出其中的来源关键词等信息。

    这样精简下来,原来一天几十几百G的文件,就变成一天几十几百M的文件了,哪怕一台小VPS都能撑得住。

    3. 基础数据分析

    如果单条grep命令能搞定分析需求的话,它往往是个很理想的解决方案。活用^$等,可以精确匹配到预计的字段。

    用grep分析的前置需求是,数据必须被分隔成一个个小文件(通常按日分隔),不然计算效率会极慢。

    4. top-n数据分析

    top-n,简言之就是流量最高的100个页面、流量最高的100个关键词之类的。Python可以比较简单的完成这个工作,且内置堆排序算法(top-n的高效计算算法);Ruby可以用比Python还少的代码量完成前半段工作,但内置的排序算法比较少,堆排序还要到其它地方找。

    我的大致代码是,创建个hash表,key为关键词、URL之类的,value来计数。遍历数据文件的每一行,看到不符合要求的数据,continue。最终侥幸没有被continue掉的那部分数据,就往hash表去计数。最终排序下,就得到想要的结果了。代码行数也挺少。

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    百度SEO教程|谷歌SEO学术|百度SEO谷歌|网站SEO优化|雅酷SEO论坛  

    GMT+8, 2024-11-17 17:30

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部