淘宝海量数据处理产品技术架构(精品)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

张轩丞(朋春)淘宝网-数据平台与产品部□张轩丞(朋春)•淘宝数据平台与产品部(杭州)•vi党,脚本语言爱好者•关注NodeJS,cnode社区组织者之一•pengchun@taobao.com•weibo.com:我是aleafs数据产品用户淘宝网淘宝卖家供应商消费者搜索、浏览、收藏、交易、评价...□淘宝主站:•30亿店铺、宝贝浏览•10亿计的在线宝贝数•千万量级交易笔数□数据产品:•50G统计汇总结果•千万量级数据查询请求•平均20.8ms的响应时间(6月1日)□计算•计算的速度•处理吞吐量□存储•存储是为了更方便地查询•硬盘、内存的成本□查询•“大海捞针”•全“表”扫描主站备库RAC主站日志数据源MyFOXProm存储层数据中间层/glider查询层数据魔方淘宝指数开放API产品Hadoop集群/云梯计算层实时流数据DataX/DbSync/TimeTunnel1500节点,每日40000JOB,处理数据1.5PB,凌晨2点结束,结果20T□关系型数据库仍然是王道□NoSQL是SQL的有益补充□用中间层隔离前后端□缓存是系统化的工程关系型数据库仍然是王道□有成熟稳定的开源产品□SQL有较强的表达能力•只存储中间状态的数据•查询时过滤、计算、排序□数据产品的本质•拉关系•做计算SELECTIF(INSTR(f.keyword,'')0,UPPER(TRIM(f.keyword)),CONCAT(b.brand_name,'',UPPER(TRIM(f.keyword))))ASf0,SUM(f.search_num)ASf1,ROUND(SUM(f.search_num)/SUM(f.uv),2)ASf3,ROUND(AVG(f.uv),2)ASf4FROMdm_fact_keyword_brand_dfINNERJOINdim_brandbONf.keyword_brand_id=b.brand_idWHEREf.keyword_type_id=1ANDf.keyword!=''ANDkeyword_cat_idIN('50002535')ANDthedate='2011-07-09'ANDthedate='2011-07-07'GROUPBYf0ORDERBYSUM(f.search_num)DESCLIMIT0,10000.10.20.30.40.50.60.72010/8/102010/9/292010/11/182011/1/72011/2/262011/4/172011/6/62011/7/26十亿□字段+条目数分片□MyISAM引擎□离线批量装载□跨机房互备云梯APPMySQL集群数据装载数据查询MyFOX□透明查询•基于NodeJS,1200QPS□数据装载•路由计算•数据装入•一致性校验□集群管理•配置信息维护•监控报警取分片数据(异步并发)取分片结果合并(表达式求值)合并计算缓存路由SQL解析语义理解查询路由字段改写分片SQL计算规则APC缓存XMyFOX热节点(MySQL)15kSAS盘,300G*12,raid10内存:24G成本:4.5W/T冷节点(MySQL)7.2kSATA盘,1T*12,raid10内存:24G成本:1.6W/T路由表30天无访问的冷数据新增热数据□根据业务特点分库分表□冷热数据分离•降低成本,好钢用在刀刃上•更有效地使用内存如果继续用MySQL来存储数据,你怎么建索引?NoSQL是SQL的有益补充□不同类目的商品有不同的属性□同一商品的属性对有很多□用户查询所选择的属性对不确定□Prometheus•定制化的存储•实时计算PromHbaseHbaseHbase……索引:交易id列表属性对交易1(二进制,定长)交易2求SUM(alipay)属性属性值笔记本尺寸13寸笔记本定位商务定位节点11,2,3,4,5,6,7,8,9节点21,2,3,4,5,6,7查索引求交集节点21,2,4,6,7本地SUM运算(Hbase扩展)汇总计算写入缓存□明细数据大量冗余□牺牲磁盘容量,以得到:•避免明细数据网络传输•变大量随机读为顺序读□NoSQL是SQL的有益补充□“预算”与“现算”的权衡□“本地”与“集中”的协同□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.1200170.065□多数据源整合•UNION•JOIN□输出格式化•PERCENT/RANKOVER…•JSON输出DispatcherController配置解析请求解析一级缓存actionMyFOXProm二级缓存datasourceJOINUNIONfilter缓存是系统化的工程glider前端产品一级缓存data二级缓存URL请求,nocache?nocache?nocache?Min(ttl)ttl,httpheaderetag,httpheader□用中间层隔离前后端•底层架构对前端透明•水平可扩展性□缓存是把双刃剑•降低后端存储压力•数据一致性问题•缓存穿透与失效□关系型数据库仍然是王道分库分表、冷热分离□NoSQL是SQL的有益补充用冗余避免网络传输和随机读□用中间层隔离前后端异构数据源的整合□缓存是系统化的工程数据一致性、穿透与雪崩SQLNoSQL计算时机“预算”Hadoop/实时计算引擎“现算”MySQL+中间层Hbase+中间层计算场所本地MySQL单机HbaseRegionServer集中MyFOX中间层Prom中间层数据存储冷7200SATA盘HDFS热15000SAS盘+缓存HDFS+缓存谢谢

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功