背景
我司作为一家高度数据化的公司,每天产生约TB级别的数据量,如何对这些数据进行有序、有结构地分类组织和存储,如何有效地利用并发掘它们的价值,成为我们最大的挑战。
同时,日益丰富的业态,也带来了各种各样、纷繁复杂的数据需求。如何有效地满足来自运营、推广、客服等多样化的需求,提高他们对数据使用的满意度,是我们数据服务和数据产品需要面对的问题。
如何建设高效的数据模型和体系,使数据易用,避免重复建设和数据不一致性,保证数据的规范性;如何提供高效易用的数据开发工具;如何保证数据服务的稳定,保证其性能;如何设计有效的数据产品高效赋能于我们的业务同学……这些都给大数据系统的建设提出了更多复杂的要求。
基础数据平台就是为了满足不断变化的业务需求,同时实现系统的高性能、易扩展、灵活易用而设计的。以下就给大家一一道来。
01
整体架构
从图中可以清晰地看到整个架构体系主要分为基础数据平台、数据管理、数据服务三大层次:
基础数据平台层:它是数据的基础设施,包括数据的采集、计算、存储,通过采集用户的两类数据:行为和属性,并根据业务需求,进行ETL 处理,最终存储到不同类型的存储系统中。
数据管理层:它的作用是对数据资产进行统一的管理,我们会根据不同业务场景对数据做进一步的加工,生成业务同学需要关注的维度和指标,它是数据应用的底层基础。如:基于多元回归分析的LTV预测服务、基于深度学习的聊天封禁系统、基于用户标签的智能SDK活动推荐系统等等。
数据服务层:数据需要通过合适的应用提供出去,让数据最大化地发挥价值,我们会通过接口服务化的方式对外提供数据服务,使用该方式可以使应用对底层数据存储透明,最后落地为可视化的数据产品,或者基于人工智能的数据智能产品。如:基于多元回归分析的LTV预测服务、基于深度学习的聊天封禁系统、基于用户标签的智能SDK活动推荐系统等等。
由于篇幅限制,我挑选了以下几个子系统来重点介绍:
统一采集平台
Domino调度平台
自助分析系统
02
统一采集平台
俗话说:经济基础决定上层建筑。而在大数据领域,数据采集基础决定上层建筑。
统一采集平台作为数据部的统一入口,肩负着重大的责任。
2.1
背景
2018年初,我们内部发现,由于历史原因,之前的数据采集存在接口不统一、采集字段不规范、缺乏文档管理等一系列问题。我们理所应当利用我们多年的数据采集经验,将数据采集统一化、标准化、体系化,因此建设统一采集平台的想法从此诞生。
2.2
对比
经过对业务的梳理、分析业务同学的数据采集需求、技术方案调研、项目开发,我们目前已经搭建了:统一采集平台1.0,完美解决以上痛点。
2.3
架构
统一采集平台基于API Gateway作为统一的数据入口,对数据请求统一进行转发,并且自研了一套:Lua->Redis/Lua->Kafka的程序,保证数据稳定写入队列池。该架构设计保证了:高性能、高可用和数据完整性。
2.4
统一采集平台——设计思想
双视角设计:从管理员、使用者的视角进行设计。
简单易用原则:1分钟,即可完成API接口配置,实现:零代码、零运维、易扩展。
市场化管理:可视化查看API调用情况,随时随地上下架API。
2.5
效果
截止到3月1日:
数据总接入量:10亿+
日均接入量:2000W+
平均响应时间:< 20ms
03
Domino调度平台
3.1
痛点
传统的依靠Crontab进行任务调度存在以下弊端:
各任务间的依赖基于时间实现,容易造成前面的任务未结束或失败,而后面的任务已经运行。
任务难以并发执行。
任务之间没有依赖。
管理监控混乱。
3.2
解决方案——建设调度平台
该系统实现了:
提供hive、php、Java、Shell、MapReduce不同类型的组件调用
实现任务之间自定义它们的上下游的依赖关系
提供任务定时执行和管理功能
对已经执行的历史任务进行管理
3.3
架构
任务在Web界面配置好后,写入元数据库。
当需要执行时,通过RPC的方式请求Master节点,Master节点根据你指定的执行worker节点IP,分发到具体的节点执行。
而任务的执行顺序都在Master节点上进行统一的管理。这样保证了任务按序执行。
3.4
效果
调度平台现在每天运行 10000+的作业量
为开发者对作业执行结果的管理,提供友好的操作界面
让我们日常的开发工作更规范
04
自助分析平台
4.1
痛点
我们公司有丰富的业务线,并且业务同学对数据的分析需求多样,每天面对大量的数据统计需求,我们思考如何建设一个自助分析平台,供业务同学通过简单的学习,实现自助分析数据的需求?
4.2
解决方案——建设自助分析平台
为了达到简单易用的原则,自助分析平台的使用步骤分为以下四步:
为了帮助业务同学根据自身的需求来实现自助分析,分析平台的核心功能:图表设计,只需要3步即可完成数据的可视化分析:
维度、指标通过“拖拽” 方式移动到到设计区
选择你要查看的图表类型
点击查询
4.3
展望
目前该系统已经灰度上线,我们希望通过这个系统,能让业务同学对自己感兴趣的数据进行自助分析,这不仅能帮助他们随时随地地实现数据分析的需求,而且能极大的减少我们程序员日常的数据统计工作。
05
数据平台的未来规划
我们目前对基础数据平台的定位是: 成为我司的“数据中台”,它能提供:数据采集、数据模型、数据计算、数据治理、数据资产管理、数据服务等全链路一站式产品+技术+方法论服务,成为面向业务应用的数据智能平台。这是一条很漫长的路,但我们有信心,我们一定能到达。
END
编辑:海林 川芮
以下技术文章,你可能也感兴趣: