大数据之数据采集
本篇主要介紹目前網站數據采集的主流方式,之后篇章會介紹客戶端數據采集目前主流的實現方式。
目前有很多數據采集云平臺,如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采集數據方案:
lg.js腳本引入頁面中
通過gif圖片請求到后端服務器
服務器記錄請求參數到日志文件
日志文件實時抓取到消息隊列
實時計算系統消費隊列消息,完成分析整理
分析結果入ES,kibana二次開發展示
ES歷史數據入Hadoop
總結
- 上一篇: mybatis-plus clickho
- 下一篇: HPLC工作原理及仪器组成