關係,指的是在海報傳播過程中,使用者之間形成的傳播關係,比如使用者a將海報傳播給c。
1. 早期服務
2. neo4j的嘗試
於是,我們思考,有沒有可能在後端直接構建完整的傳播資訊,後期使用時直接根據條件就可以查詢出所需的資料,前端上報時也不用攜帶傳播鏈資訊,我們想到了圖形資料庫儲存技術。
圖形資料庫是一種非關係型資料庫,它應用圖形理論儲存實體之間的關係資訊。在文章開頭的那張傳播圖中,使用者的行為資料其實可以歸結為使用者與海報之間的關係資料,這樣,這個系統其實就包含兩種實體:使用者、海報,三種關係:使用者開啟海報、使用者分享海報、使用者之間的傳播。在諸多圖形資料庫中,我們決定選擇比較成熟、文件相對豐富的neo4j來做demo。採用neo4j的查詢語法,很簡單的就可以查詢出所需資料,簡單示例一下。
# 查詢1度分享者
match (u:user) - [:forward] -> (p:poster) return u
# 查詢瀏覽情況
然而,一切並非預期的那麼完美,在demo過程中,我們發現有兩點問題不能很好的滿足我們的需求:
# 查詢2度分享者
雖然這些問題可以想辦法繞過去,比如根據時間建立不同的實體節點等等,但是這樣會把資料儲存做複雜化,經過權衡,我們暫時擱置了這個方案。
3. 基於使用者行為資料採集系統的方案
資料接入kafka後,一方面直接將原始資料儲存到elasticsearch,另一方面,以worker的形式來消費資料,根據相應的業務需求提取出所需的資料存入格式化資料表中,用於統計和獎勵活動。當某個推廣活動結束後,將其所屬的worker停掉即可。
通過這樣的改進,我們暫時解決了前端上報混亂和後端業務邏輯膨脹的問題,將資料上報和業務需求隔離開。資料方面,實時資料流在kafka中,歷史資料也在elasticsearch中有儲存;業務需求方面,來了乙個新的需求後,我們只需新增乙個新的worker來實現消費邏輯,活動結束後停掉worker。
創業公司做資料分析 五 微信分享追蹤系統
關係,指的是在海報傳播過程中,使用者之間形成的傳播關係,比如使用者a將海報傳播給c。1.早期服務 隨著推廣活動的調整,統計和獎勵政策也隨之變化,比如有的依據一度分享者的分享次數進行獎勵,有的依據一度 二度分享者帶來的瀏覽量進行獎勵等等,還有需要根據上報的引數不同做不同的處理。所有邏輯都在上報的api...
創業公司如何做資料分析(五)微信分享追蹤系統
這樣的資料的意義在於 這部分資料驅動了近一半的推廣業務。1.早期服務 隨著推廣活動的調整,統計和獎勵政策也隨之變化,比如有的依據一度分享者的分享次數進行獎勵,有的依據一度 二度分享者帶來的瀏覽量進行獎勵等等,還有需要根據上報的引數不同做不同的處理。所有邏輯都在上報的api請求中處理,來乙個需求加一段...
創業公司做資料分析(六)資料倉儲的建設
作為系列文章的第六篇,本文將重點 資料處理層中資料倉儲的建設。在第二篇運營資料系統一文,有提到早期的資料服務中存在不少問題,雖然在做運營dashboard系統時,對後台資料服務進行了梳理,構建了資料處理的底層公共庫等,但是仍然存在一些問題 於是,我們考慮建設乙個適於分析的資料儲存系統,該系統的工作應...