资源描述:
《互联网公司技术架构资料.淘宝.数据魔方系统架构.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、淘宝数据魔方的系统架构殷琳君(长林)Agenda□数据产品总体架构□分布式MySQL集群□NoSQL存储与计算□统一的数据中间层□通用数据报表框架每天的数据□淘宝主站:•30亿店铺、宝贝浏览•千万量级交易笔数□数据产品:•60G统计汇总结果•千万量级数据查询请求海量数据带来的挑战□计算□存储□读写架构总览数据主站备库RAC主站日志源DataX/TimeTunnel计算Hadoop集群实时流数据层存MyFOXProm储层查询数据中间层/glider层产数据魔方淘宝指数开放API品分布式MySQL集群—MyFOX需求:□SQ
2、L查询□海量存储□可横向扩展□对应用透明□兼顾性能分布式MySQL集群—MyFOX□分库分表•基于业务特点云梯MyFOXAPP□透明的中间层(MyFOX)数据查询•查询代理数据装载•数据装载•集群管理MySQL集群MyFOX—分片规则□冗余复制•小表•访问频繁•JOIN□条目切割•按路由字段的值,每N行切片•路由字段是一级索引•分散压力、并行查询示例:条目切割thedate=20100816,tid=11^A2090000□切片thedate=20100816,tid=12^A2120000thedate=2010081
3、6,tid=13^A760000thedate=20100816,tid=14^A289•阈值(200W)thedate=20100816,tid=11^A2090000•上浮动(5%)thedate=20100816,tid=12^A2000000thedate=20100816,tid=12^A120000thedate=20100816,tid=13^A760000□装桶thedate=20100816,tid=14^A289•一个桶装满再开新桶•“桶”即实际的物理表thedate=20100816,tid=11^
4、A2090000thedate=20100816,tid=14^A289thedate=20100816,tid=12^A2000000thedate=20100816,tid=13^A760000thedate=20100816,tid=12^A120000MyFOX—数据查询SELECTIF(INSTR(f.keyword,'')>0,UPPER(TRIM(f.keyword)),CONCAT(b.brand_name,'',UPPER(TRIM(f.keyword))))ASf0,SUM(f.search_num)
5、ASf1,SUM(f.uv)ASf2,ROUND(SUM(f.search_num)/SUM(f.uv),2)ASf3,AVG(f.uv)ASf4FROMfINNERJOINdim_brandbONf.keyword_brand_id=b.brand_idWHEREf.keyword_type_id=1ANDf.keyword!=''ANDkeyword_cat_idIN('50002535')ANDthedate<='2011-03-10'ANDthedate>='2011-03-08'GROUPBYf0ORDERBY
6、SUM(f.search_num)DESCLIMIT0,1500MyFOX—数据查询路APCSQL解析由语义理解查询路由字段改写分片SQL计算规则取分缓存取分片数据(异步并发)片合并缓存X结果合并(表达式求值)计算MyFOX路由层—语义理解WHEREthedate<='2011-03-10'ANDthedate>'2011-03-07'ANDtoprank_idIN(2,3)23{"toprank_id":"2",{"toprank_id":“3",2011-03-08"thedate":"2011-03-08"}"th
7、edate":"2011-03-08"}{"toprank_id":"2",{"toprank_id":“3",2011-03-09"thedate":"2011-03-09"}"thedate":"2011-03-09"}{"toprank_id":"2",{"toprank_id":“3",2011-03-10"thedate":"2011-03-10"}"thedate":"2011-03-10"}MyFOX路由层—字段改写SELECTaASf0,SUM(f.search_num)ASf1,SUM(f.uv)ASf
8、2,ROUND(SUM(f.search_num)/SUM(f.uv),2)ASf3,AVG(f.uv)ASf4•AVG(a)•1+SUM(a)•SELECT a FROM … ORDER BY b•重复查询列MyFOX缓存•缓存哪部分数据?¾最终结果¾分片数据缓存查询缓存取分片数据层计结果合并算层MyFOX—数据装