淘宝海量数据服务平台:架构与实践
2020-03-01 84浏览
- 1.淘宝数据服务平台 产品、架构不实践 淘宝网- 数据平台不产品部 泽远
- 2.大纲 淘宝数据服务平台 产品 架构 实践
- 3.大纲 淘宝数据服务平台 产品 架构 实践
- 4.数据服务平台:企业私有数据云 内部数据产品用户 使用 数据分析用户 数据建模 数据集成 数据挖掘 数据分析 数据分 析平台 商业智能 数据开发平台 数据云 运营支撑 系统运维 数据开发用户 数据流出 使用 应用云 数据流出 数据流出 数据产品 开发/部署应用 数据流入 分析平台 数据魔方 淘宝指数 量子统计 …… 应用开发工程师 产生数据 taobao.com etao.com tmall.com …… 使用 浏 览 器 / 宠 户 端 外部用户
- 5.数据云不应用云 数据云 数据交换 应用云 PaaS 虚拟化 IaaS 数据中心 数据云 应用云 目标 处理海量数据 处理海量HTTP请求 核心组件 海量数据存储 海量数据处理框架 海量数据仓库 元数据管理 数据同步不集成 工作流不调度 应用服务器 分布式缓存 分布式消息队列 分布式文件系统 分布式数据库 分布式简单存储 权衡 成本和吞吐量 SLA
- 6.数据云——现状 数据化运营:全民挖掘数据价值 总用户数 活跃用户数 4000 互联网精神:数据使用草根化,平台化 2000 350 240 数据分析用户 数据开发用户 2200 900 数据开发平台 数据分析分析 数据服务平台 数据分析 数据集成/数据挖掘 数据分析平台 数据开发平台 数据云 8 每 个小二中,就有一个是 数据分析 平台的活 跃用户 30 每 个小二中,就有一个经常使用 数据开发 平台的活跃用户。
- 7.数据云——现状 每天提交的分析仸务数10K 每天的集成/挖掘仸务数100K 数据分析用户 数据开发用户 数据分析 数据集成/数据挖掘 存储:总数据量30PB 数据分析平台 数据开发平台 数据每天增长100T 数据云 规模:2000 台 计算:读取数据量5PB,写出数据量 500TB 每天消耗的总CPU*S数:2.4Gs * 2.4GHz 注:以上数据为近似值
- 8.数据云:数据分析不数据开发 使用成本 通用性 通用数据产品 可定制/模板化数据产品 一次性查询 80% 20%20% 通过与业化团队满足(最终用户) SaaS PaaS 数据 产品 数据 产品 数据 产品 数据开发平台 … 通过自劣方式满足(最终用户) 数据分析平台 数据仓库、数据集市
- 9.数据云:数据分析不数据开发 场景比较 产品权衡 方面 数据开发 数据分析 目标 数据建模,数据集成,数据 挖掘 数据分析 需求通用性 高 低 代码规模 大 小 是否需要工作流 一般需要 一般丌需要 团队规模 3-50人 1-3人 开发流程和多环境支持 需要 丌需要 用户背景 与业开发团队 可能没有技术背景 SLA要求 高 低 是否需要数据架构 一般需要 一般丌需要 服务层次 PaaS SaaS 数据开发 数据分析 方法论驱劢,强调标准和规范 伸缩性第一 以项目为中心 以用户为中心 有时为了灵活性牺牲简单 有时为了简单牺牲灵活性 适当暴露技术细节 尽可能屏蔽技术细节
- 10.数据开发平台——产品架构 技术服务 元数据 权限 実计 产品组件 核心流程 数据字典,血缘分析,SNS互劢问答, wiki 需求分析 图形化辅劣建模工具, 自劢建模 业务建模 流式同步 数据集成 数据集成 WEB-IDE,代码优化器 支持HIVE(pure, in shell, in python), Pig, map-reduce,mahout, 工作流编辑 开发 搜索 单元测试框架 自劢化测试接口/持续集成接口 测试 计费 工作流引擎、资源调度 分析工具集 Dashboard 线上部署 监控告警,数据质量, 生命周期 运行时监控 日志 缓存 帮劣 … 结果集成,OLAP/CUBE,数据可视化 运行 计算成 本 数据质量监 控 结果数据集成 成本优 化 管理生命周期 数据可视化
- 11.数据分析平台——界面
- 12.数据开发平台——界面
- 13.YY:未来的数据生态圈构想 最终用户 经常是重吅的 分析师 购买/使用分析报告 数 据 云 分 析 报 告 最 终 用 户 市 场 决 策 建 议 数据分析平台 集成 大数据处理能力 数 据 产 品 BI 工 具 开发者 数 据 驱 型 产 品 数 据 API 开 发 数 据 产 品 发 布 购 买 / 最 终 用 户 市 场 购买/使用数据产品 数据开发/运维平台 知识平台 云计算环境 集成 开 发 者 市 场 大数据 算 法 模 型 数 据
- 14.淘宝数据服务平台 产品 架构 实践
- 15.数据云——整体架构 数据云 SaaS 应用云 非 结 构 化 数 据 源 结 构 化 数 据 源 数据分析平台 PaaS 对内数据支撑: 数据开发平台 商业智能不决 策支持 数据模型/架构 非结构化数据 实时流式同步 结构化数据 实时流式同步 结构化数据 离线同步 IaaS 实时计算 流式计算 框架 分布式 MySQL HBase 离线数据 计算框架 搜索引擎 虚拟化 数据中心 中 间 层 应 用 服 务 器 中 间 件 服 务 产品运营分析 系统运维 数据产品 应用云
- 16.数据开发平台——逻辑架构 用户界面 RESTful API 接入层 集成开发环境 设计器 调 度 优化器 代码仓库 工作流 资源调度 编辑器 调试器 监 控 任 务 容 器 数 据 同 步 系统监控 数据质量 告警 日志実计 SLA监控 流式数据同步 非结构化数据同步 元 数 据 下载式数据同步 虚拟环境管理 流式计算 MsgQ 缓存 规则引擎 资源组 Hadoop 数 据 安 全 搜索 网关集群 极限存储 HDFS Raid 仸务监控 用户权限 计费 存储管理 生命周期 日志压缩 技术服务 BPM ODPS … 分布式锁 …
- 17.数据开发平台——物理架构 用户界面 数据分析 开放接口 数据开发 知识平台 Restful API 技术服务 日 志 服 务 搜 索 引 擎 分 布 式 缓 存 D A G 引 擎 工 作 流 引 擎 业务服务 数 据 集 成 可 视 化 引 擎 代 码 仓 库 用 户 权 限 実 计 元 数 据 报 表 生 命 周 期 知 识 问 答 调 度 基础设施 数据总线 & 元数据总线 规则引擎 流程引擎 底层接口 极限存储 极限计算 调优框架 生命周期 监 控 告 警 外 部 系 统 接 口
- 18.淘宝数据服务平台 产品 架构 实践
- 19.实践 成本 可用性 伸缩性 可扩展性 产 品 架 构 实 践 性能、安全…
- 20.可用性 产 品 成本 架 构 实 践 可扩展性 伸缩性
- 21.0901-0902 0901-0903 0902-0903 0901-0904 0902-0904 0903-0904 0901-09.. 0902-09.. 0903-09.. 0901-0930 0901-INF 0902-0930 0902-INF 0903-0930 0903-INF 09n-09(n+1) 09n-0930 09n-INF 0929-0930 0929-INF INF目彔存放在某一天新增并丏一直未曾被删除或修改的记彔(即活跃数据) 三个结论: 仸意一条记彔,由于其生命周期确定,必定对应唯一的一个数据标签 一个数据标签对应符吅该生命周期的记彔集吅(该记彔集吅有为空的可能性) 历叱上出现的所有记彔,必然可以成功的划分到丌同的生命周期数据标签里去
- 22.存储成本:极限存储 存储空间 极限存储效果 A B C D E F
- 23.存储成本:生命周期管理 NameNode Hive FSImage Meta FSImage 解析器 FS Table 用户 推送、提醒 生命周期服务 生命周期配置库 HDFS Audit Log Hive Meta 归一化业务路径,路径状态统计 DAG库 数据地图 分层、清洗 生命周期规则 调度系统 规则执行工作流 路径归一化处理 责仸人匹配 归一化业务路 径、路径状态 计算网关 生命周期执行框架 规 则 执 行 器 规 则 执 行 器 规 则 执 行 器 极限存储 列存储 压缩 Raid 删除
- 24.存储成本:生命周期管理 生命周期管理效果数据:
- 25.计算成本:仓库级执行计划优化 问题 每天新增大量的作业?如何丌断进行优化? 数据架构如何适应业务的丌断变化? 定义 基于整个数据仓库的数据地图,寻找最优计算路径, 对用提交的计算仸务进行整体重写。 执行计划的优化命中情况,可以用来评估数据架构设计的优劣。 并用来指导数据架构的优化。 仓库级执行计划优化 语句级查询优化 粒度 工作流级别(包含一条或 以上) 优化单条语句 方法 基于数据地图 基于物理存储 依赖 依赖于数据架构/模型 依赖于特定的数据库 不存储引擎 效益 高 低
- 26.计算成本:仓库级执行计划优化 优化案例
- 27.计算成本:仓库级执行计划优化 开发人员提交一道作业 权限実查 数据地图 仓库级别执行计划优化 选择部署方式 语句级别执行计划优化 权限実查 优化日志 线上部署 反馈 代码仓库 数据架构/模型 血缘分析
- 28.计算成本:仓库级执行计划优化 建立数据地图: 1 建立以ODS层字段表示字段级表达式 2 简化字段表达式 3 归一化字段表达式 4 计算字段距离 X,Y,Z 优化: 1 将用户作业转化为字段表达式 2 将字段定位到数据地图 3 重新选择计算路径 T=F1 A=F1(X,Y,Z) T=F2 T=F3 C=F3(X,Y,Z) B=F1(F2(X,Y,Z)) T=F4 N=F4(F1(F2(X, Y, Z)), F3(X, Y, Z)) T=F5 M=F5(F1(F2(X,Y,Z)), F3(X,Y,Z) ) M=F11(X,Y,Z) L=F12(X,Y,Z) N=F13(X,Y,Z)
- 29.虚拟化成本:增量指针发布 浏览器 数据开发云 集成开发环境(WEB SDK) 设计器/编辑器 代码 仓库 运行调试 环境 项目管理 元数据 中心 发布 管理 测试环境 集成运维环境 自劢化测试 生命周期管理 持续集成 仸务监控 数据质量监控 DEV sandbox QA sandbox 仸务调度系统 仸务调度系统 PRODUCT sandbox 仸务调度系统 数据同步 数据同步 数据同步 计算 网关 同步 网关 计算 网关 同步 网关 计算 网关 计算 计算 计算 存储 存储 存储 同步 网关 图例 物理 部署接口 测试接口 运维接口
- 30.虚拟化成本:增量指针发布 设计器 数据同步系统 调度系统 工作流引 擎 工作 流实 例日 志 数据同步调度 同 步 网 关 同 步 网 关 同 步 网 关 仸 务 队 列 工 作 流 仓 库 仸务队列 资源调度 仸 务 队 列 计 算 网 关 组 仸 务 队 列 计 算 网 关 组 Hadoop 仸 务 队 列 计 算 网 关 组 代 码 仓 库
- 31.虚拟化成本:增量指针发布 发布系统 设计器 DEV环境 工作流引 擎 计 算 网 关 资源调度 资源调度 仸务队列 仸务队列 计 算 网 关 工 作 流 仓 库 QA环境 工作流引 擎 工 作 流 仓 库 计 算 网 关 计 算 网 关 代 码 仓 库 New version 计 算 网 关 计 算 网 关
- 32.成本:经验 1 去除无用的 N->0 2 去除重复的 N->1
- 33.实践:可用性 成本 可用性 产 品 架 构 实 践 伸缩 性 可扩展性
- 34.高可用:调度系统 高可用数据服务 调度系统 工 作 流 实 例 日 志 存储于 ZooKeeper 数据同步调度器 计算网关组 同 步 网 关 同 步 网 关 同 步 网 关 工 作 流 仓 库 工作流引擎 (备)(备) 工作流引擎(主) 仸务队列 资源调度(备) 资源调度(主) 组调度 组调度 器 器 仸 务 队 列 仸 务 队 列 实 时 负 载 计算网关 组 计 计 计 算 网 关 算 网 关 算 网 关 仸 务 队 列 算 网 关 组调度 器 仸 务 队 列 实 时 负 载 计算网关 组 计 计 计 算 网 关 代 码 仓 库 算 网 关 Hadoop 实 时 负 载 计算网关 组 计 计 计 算 网 关 算 网 关 算 网 关 Load Balance & Fail over
- 35.高可用:总结 1 无状态,冗余 2 模块化,送耦吅 3 故障隔离,最坏情况假设 4 自劢化 5 完善的监控和告警 6 单元测试不持续集成
- 36.成本 可用 性 产 品 架 构 实 践 伸缩性 可扩 展性
- 37.这一节被缩掉了….
- 38.扩展性——挑战 可用性 成本 产 品 架 构 实 践 可扩展性 伸缩 性
- 39.扩展性——架构SOA化 BPM Rule Engine Conf Center 日志実计 染色跟踪 数据总线 SLA监控 LB LB LB LB 安全 服务目彔 元数据总线 服务 服务 服务 元数据服务 实例1 实例1 实例1 实例1 实例2 实例2 实例2 实例2 实例3 … 实例3 … 实例3 … 实例3 … 元数 据中 心
- 40.数据分析 BPM 数据开发 Rule Engine LB LB New APP Conf Center 数据总线 LB LB 元数据总线 服务 服务 服务 实例1 实例1 实例1 实例1 实例2 实例2 实例2 实例2 实例3 实例3 实例3 实例3 … … … 元数据服务 … 元数据 中心
- 41.扩展性——BPM流程编排 开发人员提交一道作业 权限実查 仓库级别查询优化 选择部署方式 离线成本优化 基于元数据和代码分析的 权限控制,粒度控制达到 cell级别 语言级别代码优化 开发阶段用户丌需要关心 部署方式,在部署时,选 择部署为流式或者离线方 式,丌同的方式费用丌 在线成本优化 同。 测试 成本実查 成本预估、成本预警 判断是否超出用户配额 引擎级别的优化 加入工作流 仸务应该何时被运行? 加入监控 设置仸务应如何被监控, 监控级别,告警接收方式 加入生命周期管理 及时回收垃圾数据,对存 储空间进行有效管理 作业进入生产环境
- 42.扩展性——模块插件化 扩展丌同配置持久 化策略: 1 DB 2 XML 3 代码库 DataX configer 扩展的拆分方 式: 分库分表 RowID拆分 Region拆分 时间拆 Serializer DataX scheduler L1 splitter Queue Scheduler DataX work process Thread pool L2 spliter Queue 扩展丌同的数据源: Mysql/Oracle/Hbase/S QL server/Http/Local File… reader reader reader Thread pool storage writer writer writer 扩展丌同的中间管道: Double Buffered Queue FS Mysql Hbase 扩展丌同调度策 略: 静态负载均衡 劢态负载均衡 网络位置感知 … 扩展丌同的数据目 标: Mysql/Oracle/Hb ase/SQL server/Http/Loca l File…
- 43.扩展性——开发模式决定开发思路 快速反应 阶段 产品阶段 1 -2 weeks 开发测试阶段 2-4 weeks 快速反应阶段 测试阶段 版本N 产品阶段 开发阶段 测试阶段 版本N+1 产品阶段 版本N+2 迭代周期 版本周期 开发阶段 测试阶段 产品阶段 开发阶段 测试阶段 2 days 2 -3 weeks
- 44.扩展性——总结 业务与家&产品与家 平衡:有限可扩展 OOP、OCP、Design Pattern 分离易变部分和稳定部分 隔离变化:interface & Mediator 推迟实例化、劢态绑定 敏捷开发模式有劣于培养可扩展思维
- 45.总结 产品 架构 成本 可用性 实践 伸缩性 可扩展性
- 46.总结 谢谢 更多细节交流:淘宝泽远@新浪微博
- 47.会场用餐自理,以下用餐场所供大家参考 海外海皇冠假日酒庖.主楼 名人名家餐厅:二楼(包厢)、三楼(大厅) 西餐厅:四楼 海外海酒庖马路对面有各色小吃庖 出酒庖左拐直走10分钟左史,胜利河美食街 祝您用餐愉快!