大数据之数据采集

本篇主要介绍目前网站数据采集的主流方式,之后篇章会介绍客户端数据采集目前主流的实现方式。

目前有很多数据采集云平台,如Google anylytics,百度统计,腾讯统计等等,还有一些平台也非常不错:

 一.友盟+,支持移动端和web端数据采集,个性化场景数据定制采集方案。官网给的一些demo可以参考来设计大数据的分析展现,例如:友盟的:

https://web.umeng.com/main.php?c=site&a=frame&siteid=1255975670#!/1493738363987/site/overview/1/1255975670/2017-05-02/2017-05-02

百度的:

https://tongji.baidu.com/web/5473605/overview/index?siteId=1942168

值得借鉴~


二。count.ly,支持web,iot,移动端数据采集,并且所有相关源码都是开放的,地址:https://github.com/Countly,可以从源代码看一下数据采集实现的思路,基本上和其他家的采集实现方案类似。


三. growingio(除了web外,主推移动端无埋点可配置数据采集)


四。cobub(代码开源,但是github上好久没更新了,貌似~~)


五.神策数据,支持web和移动端数据采集,提供多种语言的sdk。而且支持可视化埋点方案,web数据采集也支持可视化配置埋点.更多内容:https://www.sensorsdata.cn/manual/vtrack_intro.html#


六。heap,可视化配置事件(Heap并不自动采集各种行为,而且要你配置,但是它提供了一个非常方便的可视化配置功能)


七。Mouseflow,可记录所有的鼠标滑动轨迹,点击动作,表单项操作等。

还有很多很多...


对于网站采集数据的主流实现方式是通过javascript脚本引入,记录页面动作与变化,搜集数据后作为参数,通过gif图片(gif图片格式请求可以解决跨域问题)请求上报。

比如一些大型网站,可以看到他们的数据采集方式:

淘宝:

https://log.mmstat.com/1.gif?logtype=1&title=淘宝网 - 淘!我喜欢&pre=https://www.taobao.com/&cache=fda9e4a&scr=1680x1050&cna=5Hb+EOi5CB0CAd3Yh2b/NJpD&spm-cnt=a21bo.50862.0.0.jLJLtF&category=&uidaplus=&aplus&yunid=&tfujsVWMaHw7&asid=AQAAAABhqghZIZwQEwAAAABKVzXhhdT/Jw==&thw=cn&p=1&o=mac&b=firefox52&s=1680x1050&w=gecko&ism=mac&lver=7.2.6&jsver=aplus_std&isAplusInternal=Y&tag=1&stag=-1

聚划算:

https://log.mmstat.com/v.gif?logtype=1&title=【聚划算】无所不能聚&pre=https://www.taobao.com/&cache=a33321d&scr=1680x1050&cna=5Hb+EOi5CB0CAd3Yh2b/NJpD&spm-cnt=608.2291429.0.0.jlAKVM&category=&uidaplus=&at_bucketid=jhs_ju_1&aplus&&yunid=&tfujsVWMaHw7&trid=0bb44f8b14937400146176466efb6f&asid=AQAAAADuqQhZBJAqAAAAAAC8/B6w8Q5mBg==&sidx=3oCNVu6pCFl4cac9cTewHKaVaGLLd6xM&ckx=jutaobaocom|wwwtaobaocom&thw=cn&p=1&o=mac&b=firefox52&s=1680x1050&w=gecko&ism=mac&lver=7.3.4&jsver=aplus_std&isAplusInternal=Y&tag=1&stag=-1

京东:

https://mercury.jd.com/log.gif?t=www.100000&m=UA-J2011-1&pin=-&uid=1819884645&sid=1819884645|1&v=je=0$sc=24-bit$sr=1680x1050$ul=zh-cn$cs=UTF-8$dt=京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!$hn=www.jd.com$fl=24.0 r0$os=mac$br=firefox$bv=52.0$wb=1484228834$xb=1484228834$yb=1493740206$zb=1$cb=1$usc=direct$ucp=-$umd=none$uct=-$lt=0$ct=1493740205944$tad=-$pinid=-$jdv=122270672|direct|-|none|-|1493740205947$dataver=0.1&ref=&rm=1493740205948

百度:

http://hm.baidu.com/hm.gif?cc=0&ck=1&cl=24-bit&ds=1680x1050&et=0&fl=24.0&ja=0&ln=zh-cn&lo=0&nv=1&rnd=204781663&si=e9e114d958ea263de46e080563e254c4&st=3&su=https://www.baidu.com/&v=1.2.14&lv=1&ct=!!&tt=百度新闻搜索——全球最大的中文新闻平台&sn=63188


     基本实现方式都是类似的,比如google Analytics,使用的时候先需要在采集数据的页面中引入下面脚本:

<!-- Google Analytics -->

<script>

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXX-Y', 'auto');

ga('send', 'pageview');

</script>

<!-- End Google Analytics -->

页面加载的时候会执行脚本,下载analytics.js,这个js文件中定义了数据搜集的函数和变量,用户可以自定义事件,基本通过一个ga函数不同传参即可实现,上面就初始化了ga的create和send两个动作,一个创建跟踪器对象,一个发送页面浏览的动作给服务器,send函数的实现就是发送一个gif图片请求,把搜集的参数拼接到url中。你可以定义自己的事件,详细可以参考:

https://developers.google.com/analytics/devguides/collection/analyticsjs/

另外可以看一下google analytics的js分析代码(之前版本ga.js)实现来加深了解,下载地址

http://download.csdn.net/detail/xuannxuan/5276625


个人设计的web采集数据方案:

  1. lg.js脚本引入页面中

  2. 通过gif图片请求到后端服务器

  3. 服务器记录请求参数到日志文件

  4. 日志文件实时抓取到消息队列

  5. 实时计算系统消费队列消息,完成分析整理

  6. 分析结果入ES,kibana二次开发展示

  7. ES历史数据入Hadoop


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mawming/article/details/78253952
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭