基于用户行为的实时OLAP

2019-08-08  本文已影响0人  Edan栋

项目背景与需求

方案实施

基于前期拉数据的经历,我们梳理了一下具体的场景特点:教室内核心指标的分析有两个场景,一个是及时定位问题,一个是新版本上线后看一段时间内的表现情况。且分析的内容都相对比较固定,所以我们完全可以设计一个自助的OLAP产品功能,来让客户端同事更方便拿到自己的数据。具体的产品需要满足以下特点
1.虽然不需要实时,但需要能够准实时拿到计算结果;
2.思路固定,先看全貌,在看趋势表现,同时要看到事件发生的原因;
3.不同阶段,关注的指标可能不一样,指标的定义也可能会做调整,要支持更好的扩展指标;
4.可以支持问题的定位,所以不仅仅要看到汇总分析结果,同时要能看到明细数据
最终通过和开发的讨论,我们确定了以下的实施方案:

技术实施方案

1.CarbonData
Apache CarbonData是一种新的融合存储解决方案,利用先进的列式存储,索引,压缩和编码技术提高计算效率,从而加快查询速度。其与Spark紧密结合,而我们公司的技术栈也包含Spark,经过测试查询性能确实优秀,遂决定使用此组件。
2.sugar
百度Sugar是一个BI工具,图形方面基本能满足最基础的要求;数据源除了了常规BI工具有的SQL模型取数,还提供了一个API接口的取数的方案。所以当时为了尽快开发上线,我们直接用sugar做为前端的数据可视化。所以前端实施,就是由产品经理在sugar上直接搭出来,后端直接做接口开发就行,基本省去了前端开发的工期,大大加快了上线速度。
3.指标分析思路设计
分析设计的时候,基本参照了神策、growingIO产品中事件分析的设计思路。对指标做深度分析。

指标分析设计思路

4.前端自定义指标
考虑到后期的扩展性。所以我们设计了一个指标定义模型(分子事件,分母事件,原因事件,去重字段)。这个功能不仅仅能可支持快速自助定义指标,修改指标,也起到了指标定义可视化的作用。这使得今天埋点完,今天就可以看到核心指标的表现如何。而且大家一看就知道具体的定义。

指标自定义

使用反馈

开发用下来,作用非常明显,可以非常快的帮助到他们定位哪些版本有问题,具体问题发生在哪些课程里面。但是有些地方还是需要进一步改善的:由于明细也放在了同一页,所以每次查询汇总结果出来后,明细数据加载时间还要几十秒。后续可以考虑明细做成一个单独按键下载。

上一篇 下一篇

猜你喜欢

热点阅读