大數據離線分析平台 需求分析(一)


項目綜述

在本次課程中,項目分別分為bigdata_track,bigdata_transforer和bigdata_dataapi。本次項目主要以分析七個模塊的數據,分別為用戶基本信息分析、操作系統分析、地域信息分析、用戶瀏覽深度分析、外鏈數據分析、訂單信息分析以及事件分析。那么針對不同的分析模塊,我們又不同的用戶數據需求,所以我們在bigdata_track項目中提供不同的客戶端來收集不同的數據。在bigdata_transformer中分別采用hive+mr兩種方式進行數據分析。在bigdata_dataapi中進行分析結果的api提供以及結果圖表展示。

收集系統(bigdata_track)總述

我們需要將用戶瀏覽的數據采集到我們的存儲系統(hdfs)中,那么在本次課程中,我們只收集pc端數據和程序后台的部分數據。在pc端我們通過集成js來收集用戶瀏覽行為數據;在程序后台,通過集成java的jar文件來收集我們需要的數據。在這里只考慮java開發環境。js/jar將收集的數據發送到nginx,然后flume監控nginx日志,將數據寫入到hdfs中。

收集系統(bigdata_track)結構

 

 

java sdk

由於本次課程中涉及到的七個模塊數據,只有訂單信息的分析由於需要明確是否進行支付,那么需要程序后台發送消息通知,故這里只有該訂單分析模塊需要在后台程序中調用。

一、概述

該文檔的主要作用是為了開發人員參考可以參考本文檔,了解java sdk的集成方式以及提供的各種不同的方法。注意:由於在本次項目中java sdk的作用主要就是發送支付成功/退款成功的信息給nginx服務器,所有我們這里提供的是一個簡單版本的java sdk。

二、Java sdk執行工作流

工作流如下所示:(退款類似)

 

 

三、分析

1、程序后台事件分析

本項目中在程序后台只會出發chargeSuccess事件,本事件的主要作用是發送訂單成功的信息給nginx服務器。發送格式同pc端發送方式, 也是訪問同一個url來進行數據的傳輸。格式為:

http://track.beifeng.com/static/bigdataimg.jpg?requestdata

最終分析模塊

PCjs sdk事件

訂單信息分析

chargeSuccess事件

chargeRefund事件

 

a)chargeSuccess事件

當會員最終支付成功的時候觸發該事件,該事件需要程序主動調用。

方法名稱

onChargeSuccess

發送的數據

u_mid=gerryliu&c_time=1449142044528&oid=orderid123&ver=1&en=e_cs&pl=jdk&sdk=java

參數

類型

是否必填

描述

orderId

string

訂單id

memberId

string

會員id

 

b)chargeRefund事件

當會員進行退款操作的時候觸發該事件,該事件需要程序主動調用。

方法名稱

onChargeRefund

發送的數據

u_mid=gerryliu&c_time=1449142044528&oid=orderid123&ver=1&en=e_cr&pl=jdk&sdk=java

參數

類型

是否必填

描述

orderId

string

訂單id

memberId

string

會員id

 

2、集成方式

直接將java的sdk引入到項目中即可,或者添加到classpath中。

 

3、數據參數說明

參數描述如下:

參數名稱

類型

描述

en

string

事件名稱, eg: e_cs

ver

string

版本號, eg: 0.0.1

pl

string

平台, eg: website

sdk

string

Sdk類型, eg: java

u_mid

string

會員id,和業務系統一致

c_time

string

客戶端時間

oid

string

訂單id

 

 

 

 

js sdk

由於我們本次項目的重點就是分析pc端的數據,所以我們最終分析的七個模塊基本上都需要從pc端獲取不同的數據。

四、概述

該文檔的主要作用是為了開發人員參考可以參考本文檔,了解js sdk的集成方式以及提供的各種不同的api。

注意:不采用ip來標示用戶的唯一性,我們通過在cookie中填充一個uuid來標示用戶的唯一性。

五、Js sdk執行工作流

在我們的js sdk中按照收集數據的不同分為不同的事件,比如pageview事件等。Js sdk的執行流程如下:

 

 

六、分析

4、PC端事件分析

針對我們最終的不同分析模塊,我們需要不同的數據,接下來分別從各個模塊分析,每個模塊需要的數據。用戶基本信息就是用戶的瀏覽行為信息分析,也就是我們只需要pageview事件就可以了;瀏覽器信息分析以及地域信息分析其實就是在用戶基本信息分析的基礎上添加瀏覽器和地域這個維度信息,其中瀏覽器信息我們可以通過瀏覽器的window.navigator.userAgent來進行分析,地域信息可以通過nginx服務器來收集用戶的ip地址來進行分析,也就是說pageview事件也可以滿足這兩個模塊的分析。外鏈數據分析以及用戶瀏覽深度分析我們可以在pageview事件中添加訪問頁面的當前url和前一個頁面的url來進行處理分析,也就是說pageview事件也可以滿足這兩個模塊的分析。訂單信息分析要求pc端發送一個訂單產生的事件,那么對應這個模塊的分析,我們需要一個新的事件chargeRequest。對於事件分析我們也需要一個pc端發送一個新的事件數據,我們可以定義為event。除此之外,我們還需要設置一個launch事件來記錄新用戶的訪問。

Pc端的各種不同事件發送的數據url格式如下,其中url中后面的參數就是我們收集到的數據:http://track.beifeng.com/static/bigdataimg.jpg?requestdata

最終分析模塊

PCjs sdk事件

用戶基本信息分析

pageview事件

瀏覽器信息分析

地域信息分析

外鏈數據分析

用戶瀏覽深度分析

訂單信息分析

chargeRequest事件

事件分析

event事件

 

launch事件

 

c)Launch事件

當用戶第一次訪問網站的時候觸發該事件,不提供對外調用的接口,只實現該事件的數據收集。

方法名稱

-

發送的數據

u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&c_time=1449137597974&ver=1&en=e_l&pl=website&sdk=js&b_rst=1920*1080&u_ud=12bigdata4079-223E-4A57-AC60-C1A04D8F7A2F&b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&l=zh-CN

 

 

d)Pageview事件

當用戶訪問頁面/刷新頁面的時候觸發該事件。該事件會自動調用,也可以讓程序員手動調用。

方法名稱

onPageView

發送的數據

ver=1&en=e_pv&pl=website&sdk=js&b_rst=1920*1080&u_ud=12bigdata4079-223E-4A57-AC60-C1A04D8F7A2F&b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&l=zh-CN&u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&c_time=1449137597979&ht=www.beifeng.com%3A8080&p_url=http%3A%2F%2Fwww.beifeng.com%3A8080%2Fvst_track%2Findex.html

 

e)chargeRequest事件

當用戶下訂單的時候觸發該事件,該事件需要程序主動調用。

方法名稱

onChargeRequest

發送的數據

u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&c_time=1449139048231&oid=orderid123&on=%E4%BA%A7%E5%93%81%E5%90%8D%E7%A7%B0&cua=1000&cut=%E4%BA%BA%E6%B0%91%E5%B8%81&pt=%E6%B7%98%E5%AE%9D&ver=1&en=e_cr&pl=website&sdk=js&b_rst=1920*1080&u_ud=12bigdata4079-223E-4A57-AC60-C1A04D8F7A2F&b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&l=zh-CN

參數

類型

是否必填

描述

orderId

string

訂單id

orderName

String

產品購買描述名稱

currencyAmount

double

訂單價格

currencyType

String

貨幣類型

paymentType

String

支付方式

 

f)Event事件

當訪客/用戶觸發業務定義的事件后,前端程序調用該方法。

方法名稱

onEventDuration

發送的數據

ca=%E7%B1%BB%E5%9E%8B&ac=%E5%8A%A8%E4%BD%9C&c_time=1449139512665&u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&kv_p_url=http%3A%2F%2Fwww.beifeng.com%3A8080%2Fvst_track%2Findex.html&kv_%E5%B1%9E%E6%80%A7key=%E5%B1%9E%E6%80%A7value&du=1000&ver=1&en=e&pl=website&sdk=js&b_rst=1920*1080&u_ud=12bigdata4079-223E-4A57-AC60-C1A04D8F7A2F&b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&l=zh-CN

參數

類型

是否必填

描述

category

string

自定義事件名稱

action

String

自定義事件動作

map

map

其他參數

duration

long

事件持續時間

 

 

5、其他api方法

在這里只介紹設置會員id的方法,其他的輔助方法到時候編寫js的時候再介紹。

a)設置會員id

方法名稱

setMemberId

方法描述

該方法的主要作用是設置會員id,當會員登錄后,請調用該方法進行會員id的設置。

參數

類型

是否必填

描述

memberid

string

會員id

 

6、集成方式

Js sdk的集成分為兩種方式,第一種是直接使用script標簽引入js,第二種是在頁面加載完成后執行js代碼,js代碼再進行js的加載。如下:

第一種:

<script src=”//track.beifeng.com/analytics.js”></script>

 

第二種:

<script type=”text/javascript”>

    var _aelog_ = _aelog_ || [];

// 設置_aelog_相關屬性

(function(){

    var aejs = document.createElement('script');

    aejs.type = 'text/javascript';

    aejs.async = true;

    aejs.src = '//track.beifeng.com/analytics.js';

    var script = document.getElementsByTagName('script')[0];

    script.parentNode.insertBefore(aejs, script);

})();

$();

</script>

 

7、數據參數說明

在各個不同事件中收集不同的數據發送到nginx服務器,但是實際上這些收集到的數據還是有一些共性的。下面將所用可能用到的參數描述如下:

參數名稱

類型

描述

en

string

事件名稱, eg: e_pv

ver

string

版本號, eg: 0.0.1

pl

string

平台, eg: website

sdk

string

Sdk類型, eg: js

b_rst

string

瀏覽器分辨率,eg: 1800*678

b_iev

string

瀏覽器信息useragent

u_ud

string

用戶/訪客唯一標識符

l

string

客戶端語言

u_mid

string

會員id,和業務系統一致

u_sd

string

會話id

c_time

string

客戶端時間

p_url

string

當前頁面的url

p_ref

string

上一個頁面的url

tt

string

當前頁面的標題

ca

string

Event事件的Category名稱

ac

string

Event事件的action名稱

kv_*

string

Event事件的自定義屬性

du

string

Event事件的持續時間

oid

string

訂單id

on

string

訂單名稱

cua

string

支付金額

cut

string

支付貨幣類型

pt

string

支付方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM