游戏报表方案设计

一.三种方案

  • 方案1. spark streaming  做实时数据分析,hive  做数据仓库 ,spark sql 做离线数据分析 

游戏报表方案设计_第1张图片

  •  方案2. spark streaming  做数据同步,es做数据仓库, spark sql 做离线数据分析 

 

游戏报表方案设计_第2张图片

  • 方案3:spark streaming 做数据同步,doris 做实时数据分析, spark sql 做离线数据分析 

游戏报表方案设计_第3张图片

二. 方案优缺点对比

 

  方案一 方案二 方案三
时效性 分钟级别 小时级别 分钟级别
数据恢复难度 困难(单独写程序恢复) 简单(重跑数据) 简单(重跑数据)
源数据更新 不支持 支持 支持
明细数据查询 不支持 支持 支持
明细和汇总对比 没有明细 存在时差 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

 

 

 

 

 

 

你可能感兴趣的:(方案设计)