《淘宝张轩丞淘宝海量数据产品技术架构.ppt》由会员分享,可在线阅读,更多相关《淘宝张轩丞淘宝海量数据产品技术架构.ppt(33页珍藏版)》请在三一办公上搜索。
1、淘宝海量数据产品技术架构,张轩丞(朋春)淘宝网-数据平台与产品部,关于,张轩丞(朋春)淘宝数据平台与产品部(杭州)vi党,脚本语言爱好者关注NodeJS,cnode社区组织者之一:我是aleafs,数据平台与产品,淘宝网淘宝卖家供应商消费者,搜索、浏览、收藏、交易、评价.,一些数字,淘宝主站:30亿店铺、宝贝浏览10亿计的在线宝贝数千万量级交易笔数,数据产品:50G统计汇总结果千万量级数据查询请求平均20.8ms的响应时间(6月1日),海量数据带来的挑战,计算计算的速度处理吞吐量存储存储是为了更方便地查询硬盘、内存的成本查询“大海捞针”全“表”扫描,架构总览,今天的话题,关系型数据库仍然是王道
2、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 f3FROM dm_fact_keyword_brand_d f
3、 INNER JOIN dim_brand b ON f.keyword_brand_id=b.brand_id WHERE keyword_cat_id IN(50002535)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-数据查询,
4、缓存,MyFOX-节点结构,MyFOX,热节点(MySQL),15k SAS盘,300G*12,raid10内存:24G成本:4.5W/T,新增热数据,小结,根据业务特点分库分表冷热数据分离降低成本,好钢用在刀刃上更有效地使用内存,SQL虽牛,但是,NoSQL是SQL的有益补充,全属性交叉运算,不同类目的商品有不同的属性同一商品的属性对有很多用户查询所选择的属性对不确定,Prometheus定制化的存储实时计算,Prom数据装载,Prom,Prom数据查询,Prom数据冗余,明细数据大量冗余牺牲磁盘容量,以得到:避免明细数据网络传输变大量随机读为顺序读,小结,NoSQL是SQL的有益补充“预算
5、”与“现算”的权衡“本地”与“集中”的协同,其他的数据来源,Prom的其他应用(淘词、指数等)从isearch获取实时的店铺、商品描述从主站搜索获取实时的商品数,异构数据源如何整合统一?,用中间层隔离前后端,pengchun$tail/logs/glider-rt2.log127.0.0.1 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,多数据源整合UNIONJOIN输出格式化PERCENT/RANK OVER JSON输出,Glider架构,Dispatcher,Controller,配置解析,请求解析,一级缓存action,缓存是系统化的工程,缓存系统,前端产品,一级缓存,小结,用中间层隔离前后端底层架构对前端透明水平可扩展性缓存是把双刃剑降低后端存储压力数据一致性问题缓存穿透与失效,回顾,关系型数据库仍然是王道分库分表、冷热分离NoSQL是SQL的有益补充用冗余避免网络传输和随机读用中间层隔离前后端异构数据源的整合缓存是系统化的工程数据一致性、穿透与雪崩,矛盾之美,谢谢,