
好未来(NYSE:TAL)是一家以智慧教育和开放平台为主体,以素质教育和课外辅导为载体,在全球范围内服务公办教育,助力民办教育,探索未来教育新模式的科技教育公司。截至2020年11月底,好未来在102个城市建立起990个教学点,业务范围覆盖全国331个地级市以及海外20多个国家和地区。
随着业务的发展,实时数据的分析需求日益增多,尤其在营销推荐、归因分析、业务辅助决策等场景下,实时数据分析所带来的效益提升是离线数据所不能比拟的。在这些业务场景的驱动下,好未来选择了DorisDB来支撑实时数据的分析应用。实现了数据秒级查询响应能力,构建了一个统一&快速&高效&灵活的实时数仓。
“作者:王岳 好未来数据科学组负责人,专注于数仓建设、数据分析、算法等领域研究。”
一、业务背景
1.业务场景分类
在教育场景下,根据数据时效性划分,数据分析处理可分为离线和实时两大部分:
(1)离线
离线数据以8大数据域(日志、营销、交易、服务、教学、内容、学习、画像)建设为主,主要处理核心历史数据,解决“业务运营、分析师、算法”等海量数据多维度分析和挖掘等,采用批处理的方式定时计算。
(2)实时
实时数据分析处理,主要包括由埋点产生的各种日志数据,数据量大,以结构化或半结构化类型为主;另外还包括由业务交易产生的业务数据,通常使用数据库的Binlog获取。
实时数据分析的需求越来越多,特别是在营销签单业务和在读学员是否续报等场景,需要实时数据来助力业务营销付费和续费目标达成。当目标没完成时,业务运营需要对数据进行多维度分析,找到原因,并快速做出决策调整等管理动作。
2.业务痛点
T+1的离线数据分析已经无法满足业务对时效性的需求,我们希望建设实时数仓来支持业务实时数据分析场景,解决如下痛点:
·市场:想通过广告页投放策略,洞悉PV、UV等流量数据,如果出现异常,可快速分析和优化。但之前因为各种因素我们无法提供实时数据,对于业务来说T+1数据时效性滞后,参考价值有限。
·销售:通过分析意向用户跟进和签单数据,根据当日销售目标,及时发现还有哪些管理动作需要优化。但目前是提供滞后数据,每日签多少单都通过人来统计,分析也是通过历史数据,分析效果很差。
·在读学员续报:实时观测哪些学员续报了,老师需要做哪些续报动作。
·课堂行为分析:分析课堂实时互动行为、答题行为等,阶段评测报告、课堂质量等。
·算法模型:实时更新模型需要的特征数据,更准时的预测模型效果。
3.实时数仓目标
数据团队要提供灵活&丰富的分钟级的实时数据,并要保证数据的丰富性&准确性&及时性等。
(1)丰富性
沿用离线数仓建模好的数据维度和指标,保证离线能用到的,实时也能用到。
(2)准确性
实时指标的构建需要可以保证数据完整性和准确性。所有指标开发按照指标定义文档,线上使用DQC平台来监控数据准确性,实时发送异常数据等。
(3)及时性
要保证数据的“新鲜”度,线上实时产生的业务数据和日志数据,要能及时地被用于数据分析,提升一线人员或业务的反馈速度。
二、实时数仓技术架构演进
实时数仓的探索过程中,我们先后经历了如下几个阶段:
·2018年~2019年,基于Hive框架下的小时级任务方案;
·2019年,基于Flink+Kudu的实时计算方案;
·2020年至今,基于DorisDB的实时数仓技术架构。
1.基于Hive
在原有天级延迟的离线数据处理任务基础上,开发小时级延迟的数据处理链路,将核心数据按小时同步到Hive数仓中,每小时调度一次DAG任务,实现小时级任务计算。任务DAG示意图如下所示:
(1)优点:
·离线和小时级任务各自独立
·代码逻辑复用性高,减少开发成本
·可以使用离线数据覆盖小时级数据,进行数据修复
(2)缺点:
·小时级数据的延迟性还是很高,已无法满足业务对数据时效性的要求
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!