小象使用者行為分析平台
介紹
大數據技術已迅速應用於商業並產生價值,透過數據分析來識別用戶行為,建立以用戶為中心的低成本快速成長,是企業必須具備的核心競爭力。 隨著成本的大幅增加,企業必須改變過去粗放型的行銷和營運方式,特別是在行銷、產品製造、銷售以及未來的客戶服務等各個方面轉向更科學、更有效率的方向。
小象電商系統上線後,需收集用戶行為數據,透過大數據即時分析實現電商業務數位化營運。基於此強需求開發小像用戶行為分析,相容於神策開源的埋點SDK完成終端行為上報,採用Nginx+Flume+kafka實作日誌收集,採用Flink寫入HDFS。
本開源專案內容包括nginx環境配置、Flume解密和日誌格式處理、將明文資料存放到kafka的Topic下、Flink消費後將埋點資料存入HDFS的關鍵4步驟作業。為方便前期埋點的校驗調優,在kafka環節,增加了埋點解析資料JSON格式存入MySQL。後續計畫增加友盟及其他SDK廠商的埋設處理,以及業務系統日誌的採集入庫。
項目主要內容
1. 日誌採集(Flume+kafka)
2. 日誌入庫(Flink+HDFS)
工作流程
架構設計思路
業務設計思路
技術架構
SDK埋點擷取行為資料來源終端包含iOS、安卓、Web、H5、微信小程式等。不同終端SDK採用對應平台及主流語言的SDK,埋入的資料透過JSON資料以HTTP POST方式提交至服務端API。 服務端API由資料接取系統組成,採用Nginx來接收透過API 傳送的數據,並將其寫到日誌檔案上。使用Nginx實現高可靠性與高可擴展性。 對於Nginx列印到檔案的日誌,會由Flume的Source 模組來即時讀取Nginx日誌,並由Channel模組進行資料處理,最終透過Sink模組將處理結果發佈到Kafka中。
軟體完整架構
第三方埋點SDK整合步驟
1. 引入SDK: 在終端應用程式設定檔添加SDK 依賴,不同終端引入方式會有差異,具體操作步驟將在後續SDK技術文件中體現。
2. 設定上報服務端API位址: 用於設定SDK上報API的服務端位址。
3. 開啟全埋點: SDK 可以自動擷取一些使用者行為,如App 啟動、登出、瀏覽頁面、控制項點擊。初始化SDK 時,透過SDK提供的初始化方法可以配置開啟全埋點。
API接取服務設計
不同管道的埋點資料透過HTTP API 發送給服務端API以實現資料存取。 採用Nginx作為WEB容器接收客戶端SDK發送的數據,並且將之寫到日誌檔案上。使用Nginx 主要是考慮到其高並發、高可靠性與高可擴展性。
使用者行為採集場景
透過應用場景梳理,實現以場景規劃埋點,用場景檢驗埋點。場景梳理可以抽象化為三個層面:
1. 通用基礎場景: 共通性操作統一考慮
2. 重要操作場景: 重要操作整體歸因
3. 業務主流程場景: 以業務線定義完整流程
應用效果
版權聲明
小象資料行為分析用Apache2.0開源協定個人和企業,在直接使用、二次開發後商業使用,需要遵守:
1. 包含xiaoxianganalysis LICENSE文件(授權使用者免費使用小象分析專利和智慧財產權)
2. 如果修改了程式碼,需要在被修改的文件中說明
3. 在修改和有原始碼衍生的程式碼中,需要帶有原來程式碼中的協議,商標
4. 在二次開發後商業發布的產品中,使用了多個開源軟體,則必須包含一個Notice文件,在Notice文件中需要帶有xiaoxianganalysis LICENSE。你可以在Notice中增加自己的許可,但不可以表現為對xiaoxianganalysis LICENSE構成更改。
例如:
`
Apache-2.0 license
`