- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3—张轩丞淘宝海量数据产品技术架构ppt课件
淘宝海量数据产品技术架构
张轩丞(朋春)
淘宝网-数据平台与产品部
关于
张轩丞(朋春)
淘宝数据平台与产品部(杭州)
vi党,脚本语言爱好者
关注NodeJS,cnode社区组织者之一
pengchun@
:我是aleafs
数据平台与产品
淘宝网
淘宝卖家
供应商
消费者
搜索、浏览、收藏、交易、评价...
一些数字
淘宝主站:
30亿店铺、宝贝浏览
10亿计的在线宝贝数
千万量级交易笔数
数据产品:
50G统计汇总结果
千万量级数据查询请求
平均20.8ms的响应时间(6月1日)
海量数据带来的挑战
计算
计算的速度
处理吞吐量
存储
存储是为了更方便地查询
硬盘、内存的成本
查询
“大海捞针”
全“表”扫描
架构总览
今天的话题
关系型数据库仍然是王道
NoSQL是SQL的有益补充
用中间层隔离前后端
缓存是系统化的工程
关系型数据库仍然是王道
关系型数据库
有成熟稳定的开源产品
SQL有较强的表达能力
只存储中间状态的数据
查询时过滤、计算、排序
数据产品的本质
拉关系
做计算
SELECT IF(INSTR(f.keyword, ) 0, UPPER(TRIM(f.keyword)), CONCAT(b.brand_name, ,UPPER(TRIM(f.keyword)))) AS f0,
SUM(f.search_num) AS f1,
ROUND(SUM(f.search_num) / AVG(f.uv), 2) AS f3
FROM dm_fact_keyword_brand_d f
INNER JOIN dim_brand b ON f.keyword_brand_id = b.brand_id
WHERE keyword_cat_id IN
AND thedate = 2011-07-09
AND thedate = 2011-07-07
GROUP BY f0
ORDER BY SUM(f.search_num) DESC LIMIT 0, 100
存储在DB中的数据
分布式MySQL集群
字段+条目数分片
MyISAM引擎
离线批量装载
跨机房互备
MyFOX
透明的集群中间层—MyFOX
透明查询
基于NodeJS,1200QPS
数据装载
路由计算
数据装入
一致性校验
集群管理
配置信息维护
监控报警
MyFOX-数据查询
MyFOX-节点结构
MyFOX
热节点(MySQL)
15k SAS盘,300G * 12,raid10
内存:24G
成本:4.5W / T
新增热数据
小结
根据业务特点分库分表
冷热数据分离
降低成本,好钢用在刀刃上
更有效地使用内存
SQL虽牛,但是…
NoSQL是SQL的有益补充
全属性交叉运算
不同类目的商品有不同的属性
同一商品的属性对有很多
用户查询所选择的属性对不确定
Prometheus
定制化的存储
实时计算
Prom—数据装载
Prom
Prom—数据查询
求SUM(alipay)
属性
属性值
笔记本尺寸
13寸
笔记本定位
商务定位
节点1
1, 2, 3, 4, 5, 6, 7, 8, 9
节点2
1, 2, 3, 4, 5, 6, 7
节点2
1, 2, 4, 6, 7
本地SUM运算(Hbase扩展)
Prom—数据冗余
明细数据大量冗余
牺牲磁盘容量,以得到:
避免明细数据网络传输
变大量随机读为顺序读
小结
NoSQL是SQL的有益补充
“预算”与“现算”的权衡
“本地”与“集中”的协同
其他的数据来源
Prom的其他应用(淘词、指数等)
从isearch获取实时的店铺、商品描述
从主站搜索获取实时的商品数
…
异构数据源如何整合统一?
用中间层隔离前后端
[pengchun]$ tail ~/logs/glider-rt2.log
[14/Jun/2011:14:54:29 +0800] GET /glider/db/brand/brandinfo_d/get_hot_brand_top/where… HTTP/1.1 200 17 0.065
数据中间层—Glider
多数据源整合
UNION
JOIN
输出格式化
PERCENT / RANK OVER …
JSON输出
Glider架构
Dispatcher
Controller
配置解析
请求解析
一级缓存
action
缓存是系统化的工程
缓存系统
前端产品
一级缓存
小结
用中间层隔离前后端
底层架构对前端透明
水平可扩展性
缓存是把双刃剑
降低后端存储压力
数据一致性问题
缓存穿透与失效
回顾
关系型数据库仍然是王道
分库分表、冷热分离
NoSQL是SQL的有益补充
用冗余避免网络传输和随机读
用中间层隔
文档评论(0)