前言
這個名字起的太大,其實我只是想說明乙個設計。這個設計是用於收集並分析使用者行為的。
一般我們分析使用者行為離不開資料,這些資料可以來自於資料庫也可以來自於使用者操作日誌。這裡我介紹的就是基於使用者操作日誌的行為分析方法。這個方法也可以說是乙個設計,該設計包含三個部分。第一部分是使用者行為資料收集第二部分是使用者行為資料彙總最後是使用者行為資料分析。整體結構大概如下圖:
圖中大概能說明整個框架的執行流程。接下來我從三個部分說明一下
第一部分:使用者行為資料收集
假設有a,b,c三颱業務伺服器在日常提供服務的同時記錄了操作序列,操作序列類似
2010-07-2217:
11:05.801
adoservice(executenonquery1) 156
sessiontable154a insertindex [@sessionid,string,input,
6341541562942187505580426882972741
][@objid,string,input,
112693246
][@ip,string,input,
10.53
.139.134]
【時間,執行方法,是否成功,執行時間,資料庫配置,執行命令,執行引數】。我們以分散的方式或是推得方式來獲取使用者資料,我們建立眾多的客戶端每個客戶端配置收集檔案的列表和檔案型別,客戶端週期性的讀取該資料夾中的檔案併發送到訊息佇列。這裡說兩點
1:讀取那些檔案,這是個問題。首先最新的檔案不能讀取因為業務伺服器可能正在往裡面寫操作序列,其次上次讀取過的檔案也不能讀取,我們如何區分是否讀取過那?這裡我們用檔案的建立時間來區分。
2:為什麼要發到訊息佇列而不是直接發到資料倉儲裡那?原因有兩個,其一是資料倉儲可能會成為熱點,其次就是如果這裡實現了向資料倉儲裡刷資料那麼就有職責不分的嫌疑,畢竟還有檔案到列的對應這個問題
第二部分:使用者資料彙總
簡單的說,就是週期性的讀取訊息佇列中的資料然後刷到資料倉儲裡面。這裡需要說明乙個問題,就是如何把mq中的資訊和資料倉儲中的列對應,這裡我從兩個方面來說
1:對應那些資訊,
[attributeusage(attributetargets.field)]public
class
useractionattribute : attribute
//////
資料在mq中的序號
///
public
intinmqindex
//////
列名稱///
public
string
column
//////
字段型別
///
public
string
dbtype
public
useractionattribute(
intinmqindex,
string
column,
string
dbtype,
string
describe)}
其實就是訊息佇列中的序號,列名稱,型別。
2:如何對應和刷資料。我們允許使用者自己定義實體eg:
publicclass
useractionentity
到這裡我們就可以利用sqlbulkcopy來往資料庫中刷資料了。eg
assembly classsampleassembly=assembly.loadfrom(entitydllpath);
type classsampletype
=classsampleassembly.gettype(entitydllfullname);
object
attribs
=null
;foreach
(fieldinfo prop
inclasssampletype.getfields())}
第三部分:使用者行為分析
大概是建立多維資料模型然後利用bi公式進行分析,最後得到結果報表。這部分當前正在開發,隨後我將補充這部分內容。
後記希望這個思路對大家有用。
使用者行為分析
使用者行為軌跡 熟悉 瀏覽 搜尋 平均停留時長 跳出率 頁面偏好 搜尋訪問次數佔比 試用 使用者註冊 註冊使用者數 註冊轉化率 使用 使用者登入 使用者訂購 登入使用者數 人均登入 訪問登入比 訂購量 訂購頻次 內容 轉化率 忠誠 使用者粘度 使用者流失 回訪者比率 訪問深度 使用者流失數 流失率 ...
使用者行為分析
這一篇介紹的來介紹一下我在工作中接觸到的使用者行為分析系統。在這個系統中主要負責功能開發,計算邏輯開發,日誌檢測告警等,資料處理,資料準清洗備也有涉及。使用者行為分析在現在這個時期已經是乙個比較常見,使用很廣的乙個詞,在網際網路公司,有大資料團隊的基本上都會提供這樣一套分析系統,以及近年來也出現了很...
使用者行為分析(摘)
訪問量分時段分析 通過分析不同時段的訪問量 使用者情況 找出幾個業務訪問高峰時段,再對它們進行重點分析。時段可以為分不同的顆粒 小時 一周各天,一月中各個階段,一年中的各個階段。通過它們可以找出線上營 銷的時間點,也可以借助其它的分析手段,分析這些時段的共性,找出哪些使用者群體在些時段為重要消費群。...