大資料之資料采集
大資料體系一般分為:資料采集、資料計算、資料服務、以及資料應用 幾大層次。
在資料采集層,主要分為 日志采集 和 資料源資料同步。
日志采集
根據産品的類型 又有可以分為:
- 浏覽器頁面 的日志采集
- 用戶端 的日志采集
浏覽器頁面采集:
主要是收集頁面的 浏覽日志(PV/UV等) 和 互動記錄檔(操作事件)。
這些日志的采集,一般是在頁面上植入标準的統計JS代碼來進執行。但這個植入代碼的過程,可以在頁面功能開發階段由開發同學手動寫入,也可以在項目運作的時候,由伺服器在相應頁面請求的時候動态的植入。
事實上,統計JS在采集到資料之後,可以立即發送到資料中心,也可以進行适當的彙聚之後,延遲發送到資料中心,這個政策取決于不同場景的需求來定。
頁面日志在收集上來之後,需要在服務端進行一定的清晰和預處理。
比如 清洗假流量資料、識别攻擊、資料的正常補全、無效資料的剔除、資料格式化、資料隔離等。
用戶端日志采集:
一般會開發專用統計SDK用于APP用戶端的資料采集。
用戶端資料的采集,因為具有高度的業務特征,自定義要求比較高,是以除應用環境的一些基本資料以外,更多的是從 “按事件”的角度來采集資料,比如 點選事件、登陸事件、業務操作事件 等等。
基礎資料可由SDK預設采集即可,其它事件由業務側來定義後,按照規範調用SDK接口。
因為現在越來越多APP采用Hybrid方案,即 H5 與 Native相結合的方式,是以對于日志采集來說,既涉及到H5頁面的日志,也涉及到Native用戶端上的日志。在這種情況下,可以分開采集分開發送,也可以将資料合并到一起之後再發送。
正常情況下是推薦将 H5上的資料往Native上合并,然後通過SDK統一的發送。這樣的好處是 既可以保證采集到的使用者行為資料在行為鍊上是完整的,也可以通過SDK采取一些壓縮處理方案來減少日志量,提高效率。
APP上的資料采集,還有一點比較重要的就是唯一ID了,所有的資料都必須跟唯一ID相關聯,才能起到更好的分析作用,至于移動裝置唯一ID我在上一篇文章中有詳細講到。
日志收集,還有很重要的一條原則就是 “标準化”、“規範化”,隻有采集的方式标準化、規範化,才能最大限度的減少收內建本,提高日志收集效率、更高效的實作接下來的統計計算。
資料源資料同步
根據同步的方式 可以分為:
- 直接資料源同步
- 生成資料檔案同步
- 資料庫日志同步
直接資料源同步:
是指直接的連接配接業務資料庫,通過規範的接口(如JDBC)去讀取目标資料庫的資料。這種方式比較容易實作,但是如果業務量比較大的資料源,可能會對性能有所影響。
生成資料檔案同步:
是指從資料源系統現生成資料檔案,然後通過檔案系統同步到目标資料庫裡。
這種方式适合資料源比較分散的場景,在資料檔案傳輸前後必須做校驗,同時還需要适當進行檔案的壓縮和加密,以提高效率、保障安全。
資料庫日志同步:
是指基于源資料庫的日志檔案進行同步。現在大多數資料庫都支援生成資料日志檔案,并且支援用資料日志檔案來恢複資料。是以可以使用這個資料日志檔案來進行增量同步。
這種方式對系統性能影響較小,同步效率也較高。
資料采集本身不是目的,隻有采集到的資料是可用、能用,且能服務于最終應用分析的資料采集才是根本。
本文原創釋出于微信公衆号「 bzsikao 」,歡迎關注,交流更多的 網際網路認知、工作管理、大資料、Web、區塊鍊技術。![]()
大資料之資料采集
作者微信公衆号「 bzsikao 」,歡迎關注,交流更多的 網際網路認知、工作管理、大資料、Web、區塊鍊技術。