版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、张轩丞(朋春) 淘宝网-数据平台与产品部 张轩丞(朋春) 淘宝数据平台与产品部(杭州) vi党,脚本语言爱好者 关注nodejs,cnode社区组织者之一 :我是aleafs 数据 产品用户 淘宝网 淘宝卖家 供应商 消费者 搜索、浏览、收藏、交易、评价. 淘宝主站: 30亿店铺、宝贝浏览 10亿计的在线宝贝数 千万量级交易笔数 数据产品: 50g统计汇总结果 千万量级数据查询请求 平均20.8ms的响应时间(6月1日) 计算 计算的速度 处理吞吐量 存储 存储是为了更方便地查询 硬盘、内存的成本 查询 “大海捞针” 全“表”扫描 主站备库rac主站日志 数 据 源 myfoxprom 存 储
2、 层 数据中间层 / glider 查 询 层 数据魔方淘宝指数开放api 产 品 hadoop集群 / 云梯 计 算 层 实时流数据 datax / dbsync / timetunnel 1500节点,每日40000 job,处理数据1.5pb,凌晨2点结束,结果20t 关系型数据库仍然是王道 nosql是sql的有益补充 用中间层隔离前后端 缓存是系统化的工程 关系型数据库仍然是王道 有成熟稳定的开源产品 sql有较强的表达能力 只存储中间状态的数据 查询时过滤、计算、排序 数据产品的本质 拉关系 做计算 select if(instr(f.keyword, ) 0, upper(tri
3、m(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
4、keyword_cat_id in (50002535) and thedate = 2011-07-07 group by f0 order by sum(f.search_num) desc limit 0, 100 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 2010/8/102010/9/292010/11/182011/1/72011/2/262011/4/172011/6/62011/7/26 十亿十亿 字段+条目数分片 myisam引擎 离线批量装载 跨机房互备 云梯 app mysql 集群 数据装载 数据查询 myfox 透明查询 基于nodejs,1200q
5、ps 数据装载 路由计算 数据装入 一致性校验 集群管理 配置信息维护 监控报警 取分片数据(异步并发) 取 分 片 结果合并(表达式求值) 合 并 计 算 缓存 路 由 sql解析 语义理解 查询路由字段改写 分片sql计算规则 apc 缓存 x myfox 热节点(mysql) 15k sas盘,300g * 12,raid10 内存:24g 成本:4.5w / t 冷节点(mysql) 7.2k sata盘,1t * 12,raid10 内存:24g 成本:1.6w / t 路由表 30天无访问的冷数据 新增热数据 根据业务特点分库分表 冷热数据分离 降低成本,好钢用在刀刃上 更有效地使
6、用内存 如果继续用mysql来存储数据,你怎么建索引? nosql是sql的有益补充 不同类目的商品有不同的属性 同一商品的属性对有很多 用户查询所选择的属性对不确定 prometheus 定制化的存储 实时计算 prom hbasehbasehbase 索引:交易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扩展) 汇总计算 写入缓
7、存 明细数据大量冗余 牺牲磁盘容量,以得到: 避免明细数据网络传输 变大量随机读为顺序读 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
8、 200 17 0.065 多数据源整合 union join 输出格式化 percent / rank over json输出 dispatcher controller配置解析请求解析 一级缓存 action myfoxprom 二级缓存 datasource joinunion filter 缓存是系统化的工程 glider 前端产品 一级缓存 data 二级缓存 url请求,nocache? nocache? nocache? min (ttl) ttl, http header etag, http header 用中间层隔离前后端 底层架构对前端透明 水平可扩展性 缓存是把双刃剑 降低后端存储压力 数据一致性问题 缓存穿透与失效 关系型数据库仍然是王道 分库分表、冷热分离 nosql是sql的有益补充 用冗余避免网络传输和随机读 用中间层隔离前后端 异构数据源的整合 缓存是系统化的工程 数据一致性、穿透与雪崩 sqlnosql 计算时机 “预算”hadoop / 实时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业元宇宙时序数据库应用实践
- 新生儿高胆红素血症护理查房
- 烟酒用品审批单
- 2025年人工智能就业影响伦理评估框架设计
- 新生儿日常护理要点解析
- 老年髋部骨折综合管理与二次骨折预防的专家共识
- 2026年养老院失智老人看护合同协议
- 新生儿黄疸观察与护理
- 2026年顺丰速递合同(1篇)
- 2026年汽车租赁融资合同(1篇)
- 政务礼仪培训课件模板
- 黑龙江省绥棱县2025年上半年事业单位公开招聘试题含答案分析
- 全国医师定期考核人文医学完整考试题库(含答案)
- 兽用麻醉管理办法
- 工厂绿化养护管理办法
- 《渗透型液体硬化剂应用技术规程》
- 酒店和足疗合作协议
- 道路交通事故救援破拆技术
- 用友软件合同协议
- 怀化市靖州县招聘事业单位工作人员笔试真题2024
- 2025急流救援技术培训规范
评论
0/150
提交评论