淘宝海量数据产品技术架构 张轩丞(朋春) 淘宝网-数据平台与产品部.

Slides:



Advertisements
Similar presentations
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Advertisements

第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
课程介绍 (PPT版本号:2016年1月24日版本) 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 林子雨
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
Bennett Hong For 2012华东架构师大会 Nov 18,2012
第6章 数据库管理软件Access 年秋.
102年實施之高中職及五專多元入學(含免試入學)之招生機制
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第八讲 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本)
“大云”大数据平台及应用 中国移动通信研究院 郭磊涛 2013年11月.
数据库技术 实践.
一寸光阴一寸金 寸金难买寸光阴 时间.
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
資料庫系統 曾俊雄.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
云计算业务应用-数据挖掘.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
巨量資料平台: Hadoop的生態系.
文科计算机小公共课规划教材 Access 程序设计.
《大数据技术原理与应用》 课程介绍 (2016春季学期)
第一讲 数据查询优化.
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
转正述职报告 乐恩公司 史航
發展東華特色課程 期末成果發表 呂進瑞 國立東華大學財金系.
第3章 数据查询与SQL命令.
Google App Engine Google 應用服務引擎.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
基于Hadoop的数据仓库Hive.
精通redis数据库开发、管理与优化 第1讲 什么是redis 讲师:黄锡峰.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第九讲 Hadoop架构再探讨 (2016春季学期)
SQL Server 2000 数据库入门.
实验 2:MS Access QBE Query使用
Hadoop平台與應用規劃實作 報告者:劉育維.
浅谈MySql索引及锁的应用 厦门大学数据库实验室 刘颖杰 2014年3月8日.
第九章 進階的查詢技巧.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
大数据与物流 沈庆琼 物流教研室.
資料庫管理 Homework #4 楊立偉教授 台灣大學工管系 2016.
基于大数据平台数据管理研究 何家乐 2013年7月 中国科学院高能物理研究所.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
資料庫系統 李翊豪 2017/12/21 Reference
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
数据透视表与SQL典型应用 ——数据分析人士必杀技
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
密级: 亿赞普Hadoop应用浅析 IZP 肖燕京.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
数据分析工具 第10节.
模块六 数据库管理软件——Access 2010.
資料庫應用與實作 一到六章重點、習題.
Web安全基础教程
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

淘宝海量数据产品技术架构 张轩丞(朋春) 淘宝网-数据平台与产品部

关于 张轩丞(朋春) 淘宝数据平台与产品部(杭州) vi党,脚本语言爱好者 关注NodeJS,cnode社区组织者之一 pengchun@taobao.com weibo.com:我是aleafs

数据平台与产品 搜索、浏览、收藏、交易、评价... 数据 产品 用户 淘宝网 淘宝卖家 供应商 消费者

一些数字 淘宝主站: 数据产品: 30亿店铺、宝贝浏览 10亿计的在线宝贝数 千万量级交易笔数 50G统计汇总结果 千万量级数据查询请求 平均20.8ms的响应时间(6月1日)

海量数据带来的挑战 计算 计算的速度 处理吞吐量 存储 存储是为了更方便地查询 硬盘、内存的成本 查询 “大海捞针” 全“表”扫描

架构总览 主站备库 RAC 主站日志 数据源 Hadoop集群 / 云梯 计算层 实时流数据 MyFOX Prom 存储 层 DataX / DbSync / TimeTunnel 1500节点,每日40000 JOB,处理数据1.5PB,凌晨2点结束,结果20T Hadoop集群 / 云梯 计算层 实时流数据 MyFOX Prom 存储 层 数据中间层 / glider 查询 层 数据魔方 淘宝指数 开放API 产品

今天的话题 关系型数据库仍然是王道 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 f3 FROM dm_fact_keyword_brand_d f INNER JOIN dim_brand b ON f.keyword_brand_id = b.brand_id WHERE keyword_cat_id IN ('50002535') AND thedate <= '2011-07-09' AND thedate >= '2011-07-07' GROUP BY f0 ORDER BY SUM(f.search_num) DESC LIMIT 0, 100 有成熟稳定的开源产品 SQL有较强的表达能力 只存储中间状态的数据 查询时过滤、计算、排序 数据产品的本质 拉关系 做计算

存储在DB中的数据

分布式MySQL集群 字段+条目数分片 MyISAM引擎 离线批量装载 跨机房互备 MyFOX APP 云梯 数据查询 数据装载 MySQL

透明的集群中间层—MyFOX 透明查询 数据装载 集群管理 基于NodeJS,1200QPS 路由计算 数据装入 一致性校验 配置信息维护 监控报警

X MyFOX-数据查询 路由 SQL解析 语义理解 查询路由 字段改写 分片SQL 计算规则 APC 结果合并(表达式求值) 合并计算 取分片数据(异步并发) 取分片 缓存 X 缓存

MyFOX-节点结构 MyFOX 热节点(MySQL) 冷节点(MySQL) 路由表 30天无访问的冷数据 新增热数据 7.2k SATA盘,1T * 12,raid10 内存:24G 成本:1.6W / T 15k SAS盘,300G * 12,raid10 内存:24G 成本:4.5W / T

小结 根据业务特点分库分表 冷热数据分离 降低成本,好钢用在刀刃上 更有效地使用内存

如果继续用MySQL来存储数据,你怎么建索引?

NoSQL是SQL的有益补充

全属性交叉运算 不同类目的商品有不同的属性 同一商品的属性对有很多 用户查询所选择的属性对不确定 Prometheus 定制化的存储 实时计算

Prom—数据装载 Prom Hbase …… 索引:交易id列表 属性对 交易1(二进制,定长) 交易2

Prom—数据查询 汇总计算 写入缓存 求SUM(alipay) 属性 属性值 笔记本尺寸 13寸 笔记本定位 商务定位 节点1 查索引 节点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 请求解析 配置解析 MyFOX Prom 二级缓存 datasource 一级缓存 action JOIN UNION filter

缓存是系统化的工程

缓存系统 前端产品 一级缓存 二级缓存 URL请求,nocache? data etag, http header nocache? Min (ttl) ttl, http header etag, http header data 前端产品 glider 一级缓存 二级缓存

小结 用中间层隔离前后端 底层架构对前端透明 水平可扩展性 缓存是把双刃剑 降低后端存储压力 数据一致性问题 缓存穿透与失效

回顾 关系型数据库仍然是王道 分库分表、冷热分离 NoSQL是SQL的有益补充 用冗余避免网络传输和随机读 用中间层隔离前后端 异构数据源的整合 缓存是系统化的工程 数据一致性、穿透与雪崩

矛盾之美 SQL NoSQL 计算时机 “预算” Hadoop / 实时计算引擎 “现算” MySQL + 中间层 Hbase + 中间层 计算场所 本地 MySQL单机 Hbase Region Server 集中 MyFOX中间层 Prom中间层 数据存储 冷 7200 SATA盘 HDFS 热 15000 SAS盘 + 缓存 HDFS + 缓存

谢谢