遊戲報表方案設計

一.三種方案

  • 方案1. spark streaming  做實時數據分析,hive  做數據倉庫 ,spark sql 做離線數據分析 

  •  方案2. spark streaming  做數據同步,es做數據倉庫, spark sql 做離線數據分析 

 

  • 方案3:spark streaming 做數據同步,doris 做實時數據分析, spark sql 做離線數據分析 

二. 方案優缺點對比

 

  方案一 方案二 方案三
時效性 分鐘級別 小時級別 分鐘級別
數據恢復難度 困難(單獨寫程序恢復) 簡單(重跑數據) 簡單(重跑數據)
源數據更新 不支持 支持 支持
明細數據查詢 不支持 支持 支持
明細和彙總對比 沒有明細 存在時差 doris 自帶原子性
java 接入複雜度 簡單,直接查mysql 複雜,需要java熟悉es  簡單,兼容mysql
不同維度數據對比 需要開發者自己對比 需要開發者自己對比

物化視圖:只需要存儲最小維度數據,其他維度數據自動計算,且保持原子性

 

 

內存消耗  大: 完全依賴內存計算,可以通過數據切片減小內存消耗,複雜計算使用 spark
       

 

三.方案三,具體說明

  • 數據同步  flume 自定義source開發,可以接入不同數據源,日誌,mysql ,mongo,es 
  • doris 四層數據結構解釋:  
  1. 原始數據: 保存從數據園過來的最原始的數據
  2. ETL層: 使用數據切片,每10分鐘從數據原始層切片一次到etl層
  3. 數據模型層: 根據不同業務需求建立數據模型(主要是不同的物化視圖)
  4. 大寬表: 數據模型層的數據彙總到大寬表,前端查詢統一查詢大寬表,防止數據對不上
  • spark 離線分析:由於doris完全使用內存計算,只能使用於簡單的實時數據計算;當數據巨大,計算很複雜的時候,只能提供離線數據報表,使用spark 讀取 doris 數據,並寫入Doris的方案

 

參考資料:

doris官網:  http://doris.apache.org/master/zh-CN/getting-started/basic-usage.html

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章