1. 程式人生 > >大數據之數據采集

大數據之數據采集

可能 目標 過程 結合 重要 jdb 就是 ont 數據合並

大數據之數據采集

大數據體系一般分為:數據采集、數據計算、數據服務、以及數據應用 幾大層次。

在數據采集層,主要分為 日誌采集 和 數據源數據同步。

日誌采集

根據產品的類型 又有可以分為:
- 瀏覽器頁面 的日誌采集
- 客戶端 的日誌采集

瀏覽器頁面采集:
主要是收集頁面的 瀏覽日誌(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、區塊鏈技術。

大數據之數據采集