美文网首页
基于用户行为的实时OLAP

基于用户行为的实时OLAP

作者: Edan栋 | 来源:发表于2019-08-08 23:49 被阅读0次

项目背景与需求

  • 背景需求我司是一家在线教育公司,会有大量的学生在线上课,包括有一对一,一对多的在线课堂。我们的云教室产品是自研产品,为了提高学生在课堂里的上课体验,需要对很多关键技术指标进行优化。比如课堂内的掉线率,奔溃率,进入教室成功率等等。
  • 当前方案 来到公司的初期,我们连教室内的埋点数据都没有,问题的定位基本靠技术支持在一个报章群里面通知;在《在线教育产品的埋点方案设计》中有提到,我们前期花了一两个月的时间做了核心环节的数据埋点;我们终于可以开始自己驱动去做体验的优化。 前期我们埋点数据进到hive里面后,基本是以临时拉数的一个方式给到客户端同事。一方面每周会有一个定制的周报数据,另一方面,如果客户端发现在钉钉群里某天奔溃的问题发生非常多,那也会找我们拉某天的数据,看看为什么会有这样的问题。

方案实施

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

技术实施方案

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

指标分析设计思路

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

指标自定义

使用反馈

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

相关文章

网友评论

      本文标题:基于用户行为的实时OLAP

      本文链接:https://www.haomeiwen.com/subject/lstqjctx.html