1、实时&离线
1.1、离线
离线计算就是在计算开始前已知所有输入数据,输入数据不会产生变化,一般计算量级比较大,计算时间相对较长。例如月初对上月整月,凌晨对前一整天的数据进行计算,最经典的就是Hadoop的 MR 方式。一般是根据前一日/月的数据生成报表,虽然统计的指标报表繁多,但是时效性不高。
1.2、实时
输入数据是可以序列化的方式一个个的输入并进行计算,也就是说开计算开始的时候并不知道所有的输入数据。与离线计算相比,运行时间较短,计算量级相对较小,强调计算过程的时间要短,即所查当下给出结果,主要侧重于当日的数据实时监控,通常业务逻辑相对离线需求简单,指标也相对少一些,但是比较注重数据的时效性,以及用户的交互性。
2、数仓架构设计
2.1、离线架构
2.2、实时架构
3、项目需求
3.1、日活趋势图
从日志中获取当日用户启动日志,如果当日第一次启动,纳入统计,将统计结果保存到 ES 中,利用 Kibana 进行分析展示。
3.2、当日新增付费用户分析
按省份|性别|年龄段统计当日新增付费用户首单平均消费及人数占比;无论是省份名称、用户性别、用户年龄、订单表中都没有这些字段,需要订单表(事实表)和维度表进行关联,形成宽表后将数据写入 ES,通过 Kibana 进行分析展示。