大众点评数据平台架构变迁

news/2024/7/8 0:28:32

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

最近和其他公司的同学对数据平台的发展题做了一些沟通,发现各自遇到的问题都类似,架构的变迁也有一定的相似性。

以下从数据&架构&应用的角度对2012.07-2014.12期间大众点评数据平台的架构变迁做一个概括性的总结,希望对还处在数据平台发展初期的同学有一些帮助,欢迎线下沟通。

1、1.0(2012.07)

05020718_54u9.jpg

1.1 数据:

1. 以支持用户报表需求为主

2. 初步沉淀出了一些底层模型

3. 模型计算程序以python为主

1.2 架构:

1. 存储和计算都在GreenPlum

2. GreenPlum采用双集群热备,一大一小,部分关键报表数据同时在两个集群存储、计算。

3.传输:公司的DBA同学将数据从Mysql、SQLServer拉出来,落地成文件。传输程序每天凌晨解析落地的文件,然后将数据load到greenplum

4.调度:使用Quartz框架,依赖关系存放到表中,将依赖检查做成一个脚本,下游job 调用方法check上游任务是否完成

5.监控:用户程序自主判断异常,邮件、手机报警。

1.3 数据应用:

1.报表数据以邮件的形式发送给用户

2.用户可以使用自定义sql的web查询工具主动查询数据

2、2.0(2013.04)

05020718_Tx8n.jpg

2.1 数据:

1. 有了明确的模型分层:

 a) ODS:存放从原系统采集来的原始数据

   b) DW:保存经过清洗,转换和重新组织的历史数据,数据将保留较长时间,满足系统最细粒度的查询需要

   c) DM: 数据集市。基于部门或某一特定分析主题需要

   d) RPT:直接面向用户的报表

2. 形成了流量、团购、信息三大基础模型及构建于三大基础模型之上的数据集市

3. 基于volocity开发了canaan计算框架。

4. 开发了一些自定义的UDF

2.2 架构:

1. 存储和计算都基于HIVE

2. GREENPLUM作为HIVE的“cache”存在,供用户做一些小数据的快查询,报表存储。

3. 调度:和canaan框架进行整合,支持用户快速新增任务,并自动导入任务依赖。

4. 主数据:保存了数据仓库元数据信息,供用户查询和系统内部各个模块交互。

5. ACL:构建了数据仓库数据访问权限控制,包括用户权限申请、审批者审批、数据赋权等。

6. 传输:

a)参考阿里DataX的设计,实现了点评的异构数据离线传输工具wormhole

b)可视化界面,用户通过界面操作,方便的将数据导入导出数据

c)和调度、主数据等系统打通

7. 监控:由于任务数量增长较快(2000+),运维已经是个问题此外,因此,我们花了较大精力做了可视化的工作:

 05020718_CD70.jpg

2.3 数据应用

1. 运营工具:用户自定义SQL,存储基于HIVE

2. 指标(KPI):用户自定义SQL,计算基于HIVE,结果放到GREENPLUM中,用户可以根据指标通过时间拼接成报表

3. HIVE WEB:非常便捷的HIVE WEB工具,可用性可以甩hive原生的web界面HWI几条街了

3、3.0(2013.12)

05020718_0Qyu.jpg

3.1 数据:

1. 有了明确的上层数据集市,各层数据集市打通,例如团购数据和流量数据打通

2. 形成了用户集市、商户集市两大主题

3. 和算法团队合作建设推荐系统

4. 提供框架和工具支持,引入外部数据开发者

3.2 架构:

1. 引入mysql、hbase,支持线上服务

2. 数据访问接口支持:API、Query Engine、RPC Service

3. 引入shark支持临时查询,出于稳定性考虑,牺牲性能,shark/spark集群和hadoop/hive集群物理隔离

4. 数据质量:用户指定以条件,对计算结果做检查

3.3 数据产品:

支持DashBoard

4、4.0(2014.12)

05020718_kLaD.jpg

4.1 数据:

1. 持续扩充/完善数据模型
2. 数据规范化,主要包括:APP日志、渠道
3. 完善数据开发平台,其他部门数据开发者100+

4.2 架构:

1. 建设Redis Cluster,支持实时推荐、用户画像等服务
2. Hadoop升级到YARN
3. 引入Storm支持实时计算
4. 推出类Kafka的分布式消息系统,结合日志框架,支持日志数据的快速/低成本接入
5. 建设元数据中心
05020718_vQUE.jpg

4.3 数据产品:

推出专有数据产品,包括:运营效果评估、流量分析产品等。

Refer:

[1] 大众点评数据平台架构变迁

http://dwz.cn/28oSBm

[2] 饿了么数据仓库治理及数据使用

http://www.infoq.com/cn/presentations/data-warehouse-management-and-data-use-of-eleme

[3] 记录一下互联网日志实时收集和实时计算的简单方案

http://dwz.cn/2gq4dp

转载于:https://my.oschina.net/weiweiblog/blog/1558937


http://lihuaxi.xjx100.cn/news/240526.html

相关文章

设计模式(2)工厂方法模式(Factory Method)

设计模式(0)简单工厂模式 设计模式(1)单例模式(Singleton) 源码地址 0 工厂方法模式简介 0.0 工厂方法模式定义 工厂方法模式是在简单工厂模式基础上,为解决更复杂的对象创建问题而衍生进化出来…

百练,4103,踩方格

百练,4103,踩方格 普通做法:(也可以找规律) #include #include//要调用memset函数,头文件 using namespace std; int visited[50][50];//开辟50*50的方格 int num0;//num为方案数 void ways(int i,int j,i…

模糊推理 控制 易于实现_代码“易于推理”是什么意思?

模糊推理 控制 易于实现by Preethi Kasireddy通过Preethi Kasireddy 代码“易于推理”是什么意思? (What does it mean when code is “easy to reason about”?) You’ve probably heard the expression “easy to reason about” enough times to make your ear…

sendmail服务器配置过程中出现的一些错误和解决办法

sendmail服务器配置过程中出现的错误和解决办法 以前在做实验的过程中总结和写的一些教程的一些资料,一直没时间发布到博客上面,五一到了,终于有点时间发布啦!关于Linux上面还会有RHCE系列的学习笔记发表 1、rpm包不能正常卸载&am…

RBAC新解 - 基于资源的权限管理

1、什么是角色 当说到程序的权限管理时,人们往往想到角色这一概念。角色是代表一系列可执行的操作或责任的实体,用于限定你在软件系统中能做什么、不能做什么。用户帐号往往与角色相关联,因此,一个用户在软件系统中能做什么取决于…

java配置

对于现在学习java的同学来说,还是安装12版本比较好,安装也比较(是非常方便跟7比起来)方便,。。。强烈建议

编译安装Zabbix 2.2 (LNMP环境)

说明:操作系统:CentOS7环境:mysql5.6PHP5.5Nginx1.12Zabbix版本:Zabbix2.2编译安装确实比YUM安装麻烦好多些,但是为了加强对Zabbix的理解,编译安装还是很有意义的,毕竟这样自己能很清楚安装路径…

classlist使用方法_如何通过使用HTML5的classList API在没有jQuery的情况下操作类

classlist使用方法by Ayo Isaiah通过Ayo Isaiah 如何通过使用HTML5的classList API在没有jQuery的情况下操作类 (How to manipulate classes without jQuery by using HTML5s classList API) As a front end developer, you often need to change CSS rules based on how a us…