99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀如何快速搭建一個類似于神策數(shù)據(jù)或諸葛IO的數(shù)據(jù)分析平臺?
如何快速搭建一個類似于神策數(shù)據(jù)或諸葛IO的數(shù)據(jù)分析平臺?
2017-03-16
收藏
Growth Hacking 這個詞在過去一兩年開始迅速從硅谷傳播到國內(nèi),也誕生了一系列專注于企業(yè)數(shù)據(jù)分析業(yè)務(wù)的明星初創(chuàng)公司,如 GrowingIO,神策數(shù)據(jù),諸葛IO 等。
Growth Hacking 簡單的來說就是用數(shù)據(jù)驅(qū)動的方式來指導(dǎo)產(chǎn)品的迭代改進,以實現(xiàn)用戶的快速增長,可以看看上面幾家數(shù)據(jù)分析公司披露的客戶就知道它有多流行了:
· GrowingIO 客戶:有贊,豆瓣,36Kr 等
· 神策數(shù)據(jù)客戶:秒拍,AcFun,愛鮮蜂,pp 租車等

· 諸葛IO 客戶:Enjoy,羅輯思維等


我司的一個主要產(chǎn)品是面向中小診所的運營 SaaS 軟件,就是診所可以通過登錄網(wǎng)站的方式完成診所的日常工作,如完成病歷,開藥以及日常的盤點等。同時產(chǎn)品的推廣渠道比較多元化,包括地面銷售團隊,合作伙伴推廣以及常規(guī)的搜索引擎推廣。作為一個資源相對有限的創(chuàng)業(yè)公司,重點關(guān)注的就是不同渠道的用戶轉(zhuǎn)化以及產(chǎn)品使用情況。

因為自己之前一直在數(shù)據(jù)算法團隊,對于數(shù)據(jù)收集、處理與應(yīng)用的流程比較熟悉,加上公司本身規(guī)模不大,業(yè)務(wù)也相對簡單,所以在和神策數(shù)據(jù)溝通后還是覺得自己可以嘗試基于阿里云平臺快速搭建一個公司自有的數(shù)據(jù)分析平臺。

以阿里云產(chǎn)品體系為例,一個典型的網(wǎng)站架構(gòu)如下:
圖1 基于阿里云的網(wǎng)站典型架構(gòu)

除了云服務(wù)之外,我們還購買了負載均衡 SLB,云數(shù)據(jù)庫 RDS,云數(shù)據(jù)庫 Redis,云監(jiān)控等服務(wù),主要是考慮是初期沒有專業(yè)的運維,而這些產(chǎn)品很好的解決了運維需求。

言歸正傳,主要還是介紹一下數(shù)據(jù)分析平臺的搭建,下面是一個簡單的數(shù)據(jù)流程架構(gòu)圖。
圖2 基于阿里云的數(shù)據(jù)分析平臺

我們以常規(guī)的七日留存率為例,來說明數(shù)據(jù)分析流程構(gòu)建。

七日留存率的一個簡單計算公式如下:
七日留存率 = 七天前注冊的當(dāng)日活躍用戶數(shù) / 七天前注冊的用戶數(shù)

根據(jù)不同公司業(yè)務(wù)的運營策略,有時也直接將登錄系統(tǒng)的用戶等價為活躍用戶,這個例子中允許定義活躍用戶的關(guān)鍵行為(以診所軟件為例,活躍用戶需要開處方、售藥等)。

一、數(shù)據(jù)收集

通常來說數(shù)據(jù)包括前端日志和后端結(jié)構(gòu)化數(shù)據(jù)兩部分。

以計算常規(guī)的七日留存率為例,活躍用戶數(shù)(必須滿足指定的使用軌跡)來自于前端服務(wù)器(Apache或者 Nginx)日志的解析。

步驟一:采用埋點的技術(shù)來記錄用戶的訪問行為:

1. URL 埋點
最簡單的方法就是投放到不同推廣渠道的注冊頁在 url 上使用特殊的參數(shù)來標(biāo)記渠道,如 channel=xxx,這樣解析前端訪問日志時就可以通過 refer 字段來區(qū)分渠道。

2. 點擊埋點
點擊埋點是被廣泛使用的技術(shù),簡單的做法是在前端頁面在發(fā)送需要記錄的行為時額外發(fā)送一個后端請求,如請求一個非常小的圖片文件 1.gif ,文件本身沒有任何內(nèi)容,主要是用于在前端日志中產(chǎn)生一個記錄,同樣的,在這個請求會帶上特殊的參數(shù),如spm=xx.xx.xx.xx,而且參數(shù)本身可以采用類似于 ip 的段位來構(gòu)建埋點體系,如第一段表示業(yè)務(wù),第二段表示產(chǎn)品,第三段表示功能,第四段表示位置等等。如圖3 的淘寶網(wǎng)埋點示例:

圖3 淘寶網(wǎng)前端埋點示例

最終前端產(chǎn)生的日志(以 apache 為例)如圖4所示:

圖4 apache 日志示例

通過 URL參數(shù)和點擊埋點,我們可以就可以監(jiān)控用戶在網(wǎng)站上的使用軌跡,以七日留存率指標(biāo)為例,我們可以定義活躍用戶的行為必須包括哪些關(guān)鍵路徑,即 spm 埋點必須符合哪些規(guī)則。

步驟二:自動解析并同步集群機器日志到日志數(shù)據(jù)庫

1. 在所有 ECS 上安裝阿里云 logtail 工具,ECS 上幾個命令行搞定,如圖5 所示:
圖5 logtail 命令行安裝

Logtail 會自動根據(jù)設(shè)定的時間間隔提交數(shù)據(jù)。

2. 創(chuàng)建日志數(shù)據(jù)庫

開通日志服務(wù)后,在日志服務(wù)控制臺創(chuàng)建 Project(支持多個 LogStore),Project 下面創(chuàng)建 LogStore(支持多個解析配置),創(chuàng)建配置(即解析規(guī)則),如圖6所示。


圖6 LogStore 中的解析配置

這樣就完成日志數(shù)據(jù)的結(jié)構(gòu)化存儲,而計算七日留存所需的用戶注冊數(shù)據(jù)則已經(jīng)以結(jié)構(gòu)化的形式存儲在 RDS Mysql 中,下一步需要做的是定時提取 LogStore 和 Mysql 中的數(shù)據(jù)進行運算。

二、數(shù)據(jù)處理

云端的數(shù)據(jù)處理就好像 Evernote 和有道云筆記一樣,可以非常方便的實現(xiàn)在線多人協(xié)作。阿里大數(shù)據(jù)計算平臺好像也是今年9 月份左右開始對外公測,之前的名稱叫做 ODPS,后來改名叫做大數(shù)據(jù)計算服務(wù)(MaxCompute),雖然對于我來說都一樣拗口難懂(后面我就用 ODPS 來統(tǒng)一代指這個服務(wù))……

現(xiàn)在數(shù)據(jù)處理這塊,阿里云其實是單獨開個了產(chǎn)品線,命名為”數(shù)加”平臺,對應(yīng)的服務(wù)入口并沒有集成到缺省的阿里云控制臺目錄菜單,在控制臺形形色色的產(chǎn)品命名中并不容易定位,所以,真正用起來只能收藏夾管理入口了……

吐槽結(jié)束,數(shù)據(jù)處理包括數(shù)據(jù)同步、數(shù)據(jù)運算和運維兩個核心部分, 數(shù)據(jù)同步將 LogStore 和 RDS Mysql 數(shù)據(jù)同步到 ODPS, 數(shù)據(jù)運算和運維則基于 ODPS 實現(xiàn)多人協(xié)作開發(fā)數(shù)據(jù)處理任務(wù)并進行上線管理。

進入數(shù)加控制臺后,進入數(shù)據(jù)開發(fā)目錄,然后創(chuàng)建 Project,創(chuàng)建后通過右邊的 Project 數(shù)據(jù)開發(fā)鏈接進入了一個在線的 IDE(有點像云筆記),就可以開始干活了。

步驟一:同步 LogStore 和 RDS Mysql 數(shù)據(jù)到 ODPS 數(shù)據(jù)庫表

1. LogStore 的數(shù)據(jù)同步
基本做法就是在 IDE 的數(shù)據(jù)管理模塊中創(chuàng)建和 LogStore 相同結(jié)構(gòu)的 ODPS 表,然后回到日志服務(wù)控制臺相應(yīng)的 LogStore 配置管理中配置一個投遞任務(wù),這樣就可以自動同步啦。(非常有用的是,在 ODPS 表中可配置一個時間分區(qū),按天同步日志,這樣方便的實現(xiàn)后面的按天調(diào)度和計算任務(wù),也可以提升查詢效率)。

2. RDS Mysql 的數(shù)據(jù)同步
這個也需要在 ODPS 中創(chuàng)建一個對應(yīng)的表(字段可以比原始表少,即可以只同步部分數(shù)據(jù)),然后再 IDE 中配置一個同步任務(wù)就好了,如圖7 所示:
圖7 數(shù)據(jù)同步任務(wù)開發(fā)

步驟二:基于 ODPS 數(shù)據(jù)庫表的定時任務(wù)開發(fā)

步驟一基本上完成了數(shù)據(jù)在 ODPS 平臺上的準(zhǔn)備,如每日的用戶行為數(shù)據(jù)和注冊數(shù)據(jù),下面所需的就是開發(fā)定時計算任務(wù)了(如計算每天的七日留存指標(biāo)),圖7 上可以看出,可以使用 SQL 或 Shell 腳本開發(fā)簡單的任務(wù),也可以開發(fā)復(fù)雜的 MapReduce 任務(wù),甚至是機器學(xué)習(xí)任務(wù),也可以用拖拽的方式配置任務(wù)的執(zhí)行順序。

我們使用 SQL 任務(wù)就可以計算出每日的活躍用戶、注冊用戶以及留存。圖8 是開發(fā) SQL 任務(wù)的界面,右邊可以配置任務(wù)的執(zhí)行周期和依賴,同時也支持多人編輯同一個任務(wù)。
圖8 ODPS IDE 中的 SQL 任務(wù)編輯界面

步驟三:數(shù)據(jù)計算任務(wù)的運維

在完成開發(fā)和測試后,可以通過 IDE 將任務(wù)發(fā)布到線上,如圖9 所示,比較方便的是,運維工具支持補數(shù)據(jù),譬如在搭建這個數(shù)據(jù)流程之前,我們的日志和數(shù)據(jù)已經(jīng)積累了數(shù)月,我可以補運行任務(wù),從而得到之前數(shù)月的統(tǒng)計指標(biāo)。


圖9 數(shù)據(jù)計算任務(wù)運維界面

個人覺得數(shù)據(jù)計算平臺是阿里云較為獨特的產(chǎn)品,可以實現(xiàn)穩(wěn)定的數(shù)據(jù)計算和管理。

三、數(shù)據(jù)應(yīng)用

理論上經(jīng)過自行設(shè)計的數(shù)據(jù)計算和運維后,企業(yè)可根據(jù)自己的業(yè)務(wù)搭建出高度個性化的應(yīng)用。這里仍然以初創(chuàng)企業(yè)廣泛使用的 BI 報表為例,看如何實現(xiàn)七日留存的數(shù)據(jù)報表應(yīng)用。
圖10 是數(shù)加平臺控制臺中的 BI 報表制作示意圖。
圖10 阿里云 Quick BI 流程示意圖

我們主要使用 MaxCompute 也就是 ODPS 計算任務(wù)產(chǎn)生的七日留存率數(shù)據(jù)表作為報表數(shù)據(jù)源,使用圖形化的操作工具即可實現(xiàn)七日流程率的展示,這種樂高積木式的操作比較簡單,就不多啰嗦了,下面是一個完成后的報表圖表,官網(wǎng)說可以支持以接口方式將制作的報表嵌入到第三方軟件(挺酷的,不過沒試過)。
圖11 阿里云 QuickBI 七日留存率效果圖

基本上,通過基于日志服務(wù)的數(shù)據(jù)采集、基于 ODPS 的數(shù)據(jù)計算和運維、基于 Quick BI 的報表制作,小規(guī)模的初創(chuàng)工具可以在2天左右快速的搭建完一個適合業(yè)務(wù)的、可以擴展的數(shù)據(jù)分析平臺(你也可以基于這個平臺搭建出一個商用的推薦系統(tǒng)),當(dāng)然,這一切的前提是你的 BOSS 能知道數(shù)據(jù)分析的價值。

此外,類似于神策數(shù)據(jù)的專業(yè)服務(wù)公司其實每年的年費也不貴,對于愿意享受專業(yè)服務(wù)或相關(guān)技術(shù)人員比較缺乏的公司直接購買他們的服務(wù)也不失為一種較好的選擇。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }