大数据之数据采集
本篇主要介紹目前網(wǎng)站數(shù)據(jù)采集的主流方式,之后篇章會介紹客戶端數(shù)據(jù)采集目前主流的實現(xiàn)方式。
目前有很多數(shù)據(jù)采集云平臺,如Google anylytics,百度統(tǒng)計,騰訊統(tǒng)計等等,還有一些平臺也非常不錯:
?一.友盟+,支持移動端和web端數(shù)據(jù)采集,個性化場景數(shù)據(jù)定制采集方案。官網(wǎng)給的一些demo可以參考來設(shè)計大數(shù)據(jù)的分析展現(xiàn),例如:友盟的:
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,移動端數(shù)據(jù)采集,并且所有相關(guān)源碼都是開放的,地址:https://github.com/Countly,可以從源代碼看一下數(shù)據(jù)采集實現(xiàn)的思路,基本上和其他家的采集實現(xiàn)方案類似。
三. growingio(除了web外,主推移動端無埋點可配置數(shù)據(jù)采集)
四。cobub(代碼開源,但是github上好久沒更新了,貌似~~)
五.神策數(shù)據(jù),支持web和移動端數(shù)據(jù)采集,提供多種語言的sdk。而且支持可視化埋點方案,web數(shù)據(jù)采集也支持可視化配置埋點.更多內(nèi)容:https://www.sensorsdata.cn/manual/vtrack_intro.html#
六。heap,可視化配置事件(Heap并不自動采集各種行為,而且要你配置,但是它提供了一個非常方便的可視化配置功能)
七。Mouseflow,可記錄所有的鼠標(biāo)滑動軌跡,點擊動作,表單項操作等。
還有很多很多...
對于網(wǎng)站采集數(shù)據(jù)的主流實現(xiàn)方式是通過javascript腳本引入,記錄頁面動作與變化,搜集數(shù)據(jù)后作為參數(shù),通過gif圖片(gif圖片格式請求可以解決跨域問題)請求上報。
比如一些大型網(wǎng)站,可以看到他們的數(shù)據(jù)采集方式:
淘寶:
https://log.mmstat.com/1.gif?logtype=1&title=淘寶網(wǎng) - 淘!我喜歡&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)-正品低價、品質(zhì)保障、配送及時、輕松購物!$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
? ? ?基本實現(xiàn)方式都是類似的,比如google Analytics,使用的時候先需要在采集數(shù)據(jù)的頁面中引入下面腳本:
<!-- 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 -->
頁面加載的時候會執(zhí)行腳本,下載analytics.js,這個js文件中定義了數(shù)據(jù)搜集的函數(shù)和變量,用戶可以自定義事件,基本通過一個ga函數(shù)不同傳參即可實現(xiàn),上面就初始化了ga的create和send兩個動作,一個創(chuàng)建跟蹤器對象,一個發(fā)送頁面瀏覽的動作給服務(wù)器,send函數(shù)的實現(xiàn)就是發(fā)送一個gif圖片請求,把搜集的參數(shù)拼接到url中。你可以定義自己的事件,詳細可以參考:
https://developers.google.com/analytics/devguides/collection/analyticsjs/
另外可以看一下google analytics的js分析代碼(之前版本ga.js)實現(xiàn)來加深了解,下載地址
http://download.csdn.net/detail/xuannxuan/5276625
個人設(shè)計的web采集數(shù)據(jù)方案:
lg.js腳本引入頁面中
通過gif圖片請求到后端服務(wù)器
服務(wù)器記錄請求參數(shù)到日志文件
日志文件實時抓取到消息隊列
實時計算系統(tǒng)消費隊列消息,完成分析整理
分析結(jié)果入ES,kibana二次開發(fā)展示
ES歷史數(shù)據(jù)入Hadoop
總結(jié)
- 上一篇: mybatis-plus clickho
- 下一篇: HPLC工作原理及仪器组成