乐刻运动大数据是基于hadoop体系搭建的,主要满足运营的日常报表,以及公司核心指标为主。随着2016年线上线下的发力,以智能化健身为主的共享经济的提出,数据需求量大幅的激增,数据从最初的GB级到现在的PB级急增,我们开始反思如何支撑未来的可预见性数据需求。
早期ETL技术报表平台
乐刻大数据部门在早期,面对比较零散的统计需求,直接将业务数据配置脚本定时导入elasticsearch做一些复杂的统计查询。2016年底,随着运营数据需求的增加,希望查阅数据的人员增多,不同人员不同维度的查询需求,我们专门得抽出一个人来对接运营统计的需求,另外在技术上已经很难满足当前的统计需求。因此,考虑到运营数据需求、公司核心指标需求相对固定,并且维度相对固定,我们搭建了早期的报表系统:
早期的报表系统,由数据开发工程师提交数据任务,通过配置Oozie定时任务,定时的基于Hive数据做ETL过程,将报表系统所需的数据导入elasticsearch。该系统从接收需求到报表系统里看到数据,需要比较长的一段时间过程,涵盖过程如下:
1)运营提出数据需求
2)将数据从hdfs使用hive处理数据结果
3)定期的运营数据,会每天展示到数据可视化平台,临时数据直接导出结果**
可以看出提供的查询维度较单一,对接流程较复杂,角色间传递信息较多,前后依赖太强,都是制约报表系统快速产出数据的根本问题。我们自研的数据可视化平台DMS,通过web方式按照多个维度查询所需的数据,但对于非订制化需求、数据探索需求、数据分析需求支持的力度并不好。我们开始规划更好的数据分析平台服务。
乐刻数据平台2.0诞生
乐刻数据平台2.0我们对整个系统进行了一次大的调整,从数据采集,数据加工,数据存储,以及加入了脏数据预警功能,可视化平台方面提供更多定制化查询需求,运营可以自定义设置查询维度等。数据访问层我们提供基于SQL的快速查询功能,方便产品和需要使用数据的开发人员进行数据查询。
乐刻数据平台流式数据处理与计算
乐刻是一家智能化健身平台,意味着我们线下门店每天从各个设备产生的数据量是相当大的量,我们需要收集所有硬件设备的使用情况,监控每台设备运行情况,实时反馈到数据监控中心,乐刻线下硬件数据上报是通过阿里云ONS设计的具体如下:
1)用户通过APP发送使用硬件设备请求并且上报数据到ONS
2)spark streaming实时消费产生的数据
3)通过数据模型产生结果数据
4)数据实时展示到监控中心
对于流式数据产生的结果,我们也会进行一些数据挖掘,用户画像相关的处理流程,通过索引elasticsearch提供一些多维度的查询服务。
乐刻数据平台数据存储与备份
由于我们的整个平台是基于阿里云打造的,所以自然而然我们使用到了很多阿里云的服务,比如数据存储服务OSS,RDS等,对于数据处理后的备份和处理如下:
1)原始数据备份存储到OSS和HDFS
2)数据加载可以选择本地机器或者从OSS导入数据
3)对于一些列式数据的存储如hbase,会定期同步到hbase,阿里云oss提供备份和还原数据
4)乐刻数据平台的整体架构和处理流程