资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,淘宝大数据量产品技术架构,张轩丞(朋春),淘宝网,-,数据平台与产品部,关于,张轩丞(朋春),淘宝数据平台与产品部(杭州),vi,党,脚本语言爱好者,关注,NodeJS,,,cnode,社区组织者之一,:我是,aleafs,数据平台与产品,数据,产品,用户,淘宝网,淘宝卖家,供应商,消费者,搜索、浏览、收藏、交易、评价,.,一些数字,淘宝主站:,30,亿店铺、宝贝浏览,10,亿计的在线宝贝数,千万量级交易笔数,数据产品:,50G,统计汇总结果,千万量级数据查询请求,平均,20.8ms,的响应时间(,6,月,1,日),海量数据带来的挑战,计算,计算的速度,处理吞吐量,存储,存储是为了更方便地查询,硬盘、内存的成本,查询,“大海捞针”,全“表”扫描,架构总览,主站备库,RAC,主站日志,数据源,MyFOX,Prom,存储,层,数据中间层,/glider,查询,层,数据魔方,淘宝指数,开放,API,产品,Hadoop,集群,/,云梯,计算层,实时流数据,DataX/DbSync/TimeTunnel,1500,节点,每日,40000 JOB,,处理数据,1.5PB,,凌晨,2,点结束,结果,20T,今天的话题,关系型数据库仍然是王道,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)/SUM(f.uv),2),AS,f3,ROUND(AVG(f.uv),2),AS,f4,FROM,dm_fact_keyword_brand_d f,INNER JOIN,dim_brand b,ON,f.keyword_brand_id=b.brand_id,WHERE,f.keyword_type_id=1,AND,f.keyword!=,AND,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,引擎,离线批量装载,跨机房互备,云梯,APP,MySQL,集群,数据装载,数据查询,MyFOX,透明的集群中间层,MyFOX,透明查询,基于,NodeJS,,,1200QPS,数据装载,路由计算,数据装入,一致性校验,集群管理,配置信息维护,监控报警,MyFOX-,数据查询,取分片数据,(异步并发),取分片,结果合并,(表达式求值),合并计算,缓存,路由,SQL,解析,语义理解,查询路由,字段改写,分片,SQL,计算规则,APC,缓存,X,MyFOX-,节点结构,MyFOX,热节点(,MySQL,),15k SAS,盘,,300G*12,,,raid10,内存,:24G,成本,:4.5W/T,冷节点(,MySQL,),7.2k SATA,盘,,1T*12,,,raid10,内存,:24G,成本,:1.6W/T,路由表,30,天无访问的冷数据,新增热数据,小结,根据业务特点分库分表,冷热数据分离,降低成本,好钢用在刀刃上,更有效地使用内存,SQL,虽牛,但是,如果继续用,MySQL,来存储数据,你怎么建索引?,NoSQL,是,SQL,的有益补充,全属性交叉运算,不同类目的商品有不同的属性,同一商品的属性对有很多,用户查询所选择的属性对不确定,Prom,etheus,定制化的存储,实时计算,Prom,数据装载,Prom,Hbase,Hbase,Hbase,索引:交易,id,列表,属性对,交易,1,(二进制,定长),交易,2,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,127.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,多数据源整合,UNION,JOIN,输出格式化,PERCENT/RANK OVER,JSON,输出,Glider,架构,Dispatcher,Controller,配置解析,请求解析,一级缓存,action,MyFOX,Prom,二级缓存,datasource,JOIN,UNION,filter,缓存是系统化的工程,glider,缓存系统,前端产品,一级缓存,data,二级缓存,URL,请求,,nocache?,nocache?,nocache?,Min(ttl),ttl,http header,etag,http header,小结,用中间层隔离前后端,底层架构对前端透明,水平可扩展性,缓存是把双刃剑,降低后端存储压力,数据一致性问题,缓存穿透与失效,回顾,关系型数据库仍然是王道,分库分表、冷热分离,NoSQL,是,SQL,的有益补充,用冗余避免网络传输和随机读,用中间层隔离前后端,异构数据源的整合,缓存是系统化的工程,数据一致性、穿透与雪崩,矛盾之美,SQL,NoSQL,计算时机,“预算”,Hadoop/,实时计算引擎,“现算”,MySQL+,中间层,Hbase+,中间层,计算场所,本地,MySQL,单机,Hbase,Region Server,集中,MyFOX,中间层,Prom,中间层,数据存储,冷,7200 SATA,盘,HDFS,热,15000 SAS,盘,+,缓存,HDFS+,缓存,谢谢,演讲完毕,谢谢观看!,内容总结,淘宝大数据量产品技术架构。Hadoop集群/云梯。DataX/DbSync/TimeTunnel。1500节点,每日40000 JOB,处理数据1.5PB,凌晨2点结束,结果20T。查询时过滤、计算、排序。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)/SUM(f.uv),2)AS f3,。ROUND(AVG(f.uv),2)AS f4。FROM dm_fact_keyword_brand_d f。INNER JOIN dim_brand b ON f.keyword_brand_id=b.brand_id,
展开阅读全文