基於hadoop的BI架構

BI系統,是企業利用數據驅動運營的一個典型系統。BI系統經過發掘企業運行過程當中的數據,發現企業的潛在風險爲企業的各項決策提供數據支撐。前端

傳統的BI系統一般構建於關係型數據庫之上。隨着企業業務量的增大和對用戶行爲實時提取分析的須要愈來愈高,傳統的BI架構對實時性的分析和大數據量的分析已經沒法知足,新的數據分析的解決方案便呼之欲出。mysql

得益於hadoop對大數據和分佈式計算的優點、以及豐富的組件,使用hadoop進行BI架構便方便許多。web

一個典型的基於hadoop的BI架構以下圖所示:sql


該BI架構主要包括2部分:實時處理部分、離線批處理部分。數據庫

實時處理部分:

  • 功能主要是實時獲取用戶的網站、app等訪問記錄,分析用戶行爲軌跡,其數據來源通常是訪問日誌。
  • 數據流:經過flume實時拉取服務器的日誌,並將其發送至spark和hadoop。spark利用spark structured streaming組件接收flume發送的日誌數據,並在必定的窗口和週期下進行計算。提取出一些用戶在此時的基本行爲過程,並將結果存儲至hbase。這一過程當中,會涉及高頻的數據讀寫和計算需求、特別是flume和spark這一塊的話對內存的需求量比較大,須要作好硬件配置的規劃。同時將日誌數據寫入一份至hadoop,主要是爲了作離線分析的須要。

離線批處理部分:

  • 功能主要是對業務數據(如進銷存等)作一些統計分析,這一部分是傳統BI項目。同時,結合業務數據和離線日誌,能夠作一些機器學習方面的應用,好比離線訓練推薦系統、預測模型等。這一部分的計算量一般比較大,通常是會安排在機器閒時的時候進行。
  • 數據流:業務數據主要是經過sqoop將mysql數據以增量的形式導入hive,日誌數據是在實時處理部分已經將其存入了hadoop中,這裏直接拿來用就行了。這裏的統計分析和機器學習應用能夠依賴於hive和spark處理,比較方便。最終的分析結果存入mysql數據庫,同時模型能夠直接輸出,驗證以後拿來用。

web服務器部分:

  • 主要有2方面功能:(1)提供數據可視化,因爲一般展示形式的圖形、圖表、地圖,這一部分會涉及到比較多的前端插件如ECharts、地圖api等。(2)機器學習得到的模型在這裏調用,其餘應用程序則只須要提交請求則可得到模型的預測結果,將模型與其它服務解耦,方便模型的迭代,同時其餘應用程序調用起來也很方便、只須要一個http請求便可。

架構的基本組成部分介紹的差很少了,其實這一塊基本是通用的了。數據產品的核心仍是在於數據的前處理、分析挖掘上面,因爲工做利益相關 在此很少作介紹,本質仍是結合業務、市場等提供一些有價值的信息。
相關文章
相關標籤/搜索