博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读《淘宝数据魔方技术架构解析》有感
阅读量:6278 次
发布时间:2019-06-22

本文共 1344 字,大约阅读时间需要 4 分钟。

淘宝网拥有国内最具商业价值的海量数据。截至当前,每天有超过30亿的店铺、商品浏览记录,10亿在线商品数,上千万的成交、收藏和评价数据。如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝、商家进行企业的数据化运营,帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命。尽管从业务层面来讲,数据产品的研发难度并不高;但在 “海量”的限定下,数据产品的计算、存储和检索难度陡然上升。本文将以数据魔方为例,向大家介绍淘宝在海量数据产品技术架构方面的探索。

按照数据的流向来划分,我们把淘宝数据产品的技术架构分为五层(如图1所示),分别是数据源、计算层、存储层、查询层和产品层。位于架构顶端的是我们的数据来源层,这里有淘宝主站的用户、店铺、商品和交易等数据库,还有用户的浏览、搜索等行为日志等。这一系列的数据是数据产品最原始的生命力所在。

在数据源层实时产生的数据,通过淘宝主研发的数据传输组件DataX、DbSync和Timetunnel准实时地传输到一个有1500个节点的Hadoop集群上,这个集群我们称之为“云梯”,是计算层的主要组成部分。在“云梯”上,我们每天有大约40000个作业对1.5PB的原始数据按照产品需求进行不同的MapReduce计算。这一计算过程通常都能在凌晨两点之前完成。相对于前端产品看到的数据,这里的计算结果很可能是一个处于中间状态的结果,这往往是在数据冗余与前端计算之间做了适当平衡的结果。

不得不提的是,一些对实效性要求很高的数据,例如针对搜索词的统计数据,我们希望能尽快推送到数据产品前端。这种需求再采用“云梯”来计算效率将是比较低的,为此我们做了流式数据的实时计算平台,称之为“银河”。“银河”也是一个分布式系统,它接收来自TimeTunnel的实时消息,在内存中做实时计算,并把计算结果在尽可能短的时间内刷新到NoSQL存储设备中,供前端产品调用。

容易理解,“云梯”或者“银河”并不适合直接向产品提供实时的数据查询服务。这是因为,对于“云梯”来说,它的定位只是做离线计算的,无法支持较高的性能和并发需求;而对于“银河”而言,尽管所有的代码都掌握在我们手中,但要完整地将数据接收、实时计算、存储和查询等功能集成在一个分布式系统中,避免不了分层,最终仍然落到了目前的架构上。

为此,我们针对前端产品设计了专门的存储层。在这一层,我们有基于MySQL的分布式关系型数据库集群MyFOX和基于HBase的NoSQL存储集群Prom,在后面的文字中,我将重点介绍这两个集群的实现原理。除此之外,其他第三方的模块也被我们纳入存储层的范畴。

存储层异构模块的增多,对前端产品的使用带来了挑战。为此,我们设计了通用的数据中间层——glider——来屏蔽这个影响。glider以HTTP协议对外提供restful方式的接口。数据产品可以通过一个唯一的URL获取到它想要的数据。

以上是淘宝海量数据产品在技术架构方面的一个概括性的介绍,接下来我将重点从四个方面阐述数据魔方设计上的特点。

本文参考文献:程序员日志《淘宝数据魔方技术架构解析》2017.2.20

 

转载于:https://www.cnblogs.com/sunshine-z/p/10507923.html

你可能感兴趣的文章
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Cable:360实现的新虚拟网络架构
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
国外健身行业获资本青睐, Freeletics获4500万美元A轮融资
查看>>
zabbix数据库优化之数据库优化(二)
查看>>
常用协议的端口号
查看>>
在windows 操作系统层面启用SYN攻击预防措施
查看>>
Python消息队列
查看>>
SVN密码密文生成
查看>>
唯一索引的行估算实验
查看>>
走火入魔通用权限管理之权限设计入门整体思路图解
查看>>
Windows PowerShell2.0之使用PowerTab加强Tab键自动补全
查看>>
ASA8.4的Inside区域同时访问DMZ公网地址和真实地址测试
查看>>
组织机构管理里只有“内部组织”会出现在即时通讯的目录树里(可供C#.NET源码下载学习)...
查看>>
如何实现安全web服务
查看>>
结构化编程的三重境界:见山还是山:朴素又正确的逻辑
查看>>
IGRP中的RTP、Neighbor Discovery协议及Time总结
查看>>
Silverlight C# 游戏开发:Flyer09扇动翅膀的蝴蝶
查看>>
Linux超级杯:7步让你换个新内核
查看>>