Transcript 数据应用开发平台
淘宝数据应用开发平台 泽远@数据平台与产品 Weibo.com/apeks 大纲 背景——进入淘宝数据平台 • 数据规模 • 数据产品 • 总台架构 概览——数据应用开发架构 • 产品架构 • 技术架构 深入——关键服务介绍 • 知识库(元数据) • 调度 • 数据集成 • IDE • 成本优化 • 生命周期 展望——数据创造未来 总体数据规模 20T 每日新增数据 14P 累积数据 2000+服务器的云计算平台 100,000+作业任务,包括100+新增作业任务 每天处理 1P+数据,包括0.5%新增数据 每天处理 如何使用数据——传统数据仓库模式 运营 数据分析师 内部用户 PD … 商业智能团队 数据化运营 商业决策 产品设计 业务分析师/数据PD … ETL开发工程师 分析、挖掘用户 需求 数据产品设计 模型架构师 ETL作业设计, 实施,维护, 优化 架构师 数据模型建模 使用、建设 数据平台 店铺经营 购买决策 行业分析 数据产品开发团队 数据产品PD 理解业务 文档化业务和需求 BI产品设计 数据开发团队 外部用户 买家 卖家 程序员 建设 技术框架设计 平台与工具的实现 基础开发 & 开发架构 数据开放之路——人人都是数据专家 运营 数据分析师 PD 内部用户 … ISV 卖家 买家 数据开发团队 外部用户 数据化运营 商业决策 产品设计 … 店铺经营 购买决策 行业分析 培训,咨询, 解决方案 服务 ETL开发工程师 商业智能团队 数据产品PD 业务分析师/数据PD 理解业务 文档化业务和 需求 BI产品设计 数据产品开发团队 分析、挖掘用户 需求 数据产品设计 模型架构师 使用、建设 架构师 建设 程序员 技术框架设计 平台与工具的实现 基础开发 & 开发架构 数据平台——产品架构 报表需求(淘数据) 即席查询(adhoc) 数据分析 数据挖掘 数据产品 数 据 应 用 数据应用开发平台——数据工场 数 据 开 发 平 台 Data Integration Datax DB sync TT Hive Hadoop Map Reduce Hadoop HDFS Hbase 实时计算 底 层 平 台 数据开发平台——数据流向 数据产品 Adhoc 报表(淘数据,Business Preview) 其它 实时计算平台 OLAP server Oracle 回流主站应用 Mysql Hbase Other System Gateway Servers 开发平台 LzLoader Myfox Loader Hbase Hadoop Map Reduce Java Jobs Streaming Jobs 流式计算 Hive Jobs Gateway Servers DataX Oracle 备库 DBSync MySQL 备库 TimeTunnel 日志系统 Log Server 主站服务(淘宝,B2B,广告,搜索,BOSS) 爬虫数据 数 据 流 向 DataX 数据应用开发平台 • 愿景和目标 • • • • • 用户分类 • • • 降低数据开发门槛,人人都可以方便加工和获取数据 提升数据项目开发效率 有效控制计算存储成本 沉淀最佳实践,打造数据应用开发的标准 非技术背景用户 技术背景用户 需求分类 • ADHOC需求? –类Excel查询工具 –图形化拖拽 –HIVE IDE • 数据项目/数据产品? –数据应用开发平台 数据工场产品架构 技术服务 元数据 center 项目实施流程 基础服务 数据字典, 知识库, 问答 需求分析 图形化辅助建模工具, 自动建模 业务建模 数据集成 (DataX,DBSync,TT3) 数据集成 权限控制 审计 日志 搜索引擎 缓存 … IDE(web,RCP),代码优化器 支持HIVE, map-reduce,mahout 工作流编辑 数据开发&挖掘 准入测试,持续集成, 性能测试 调度引擎 分析工具集 指标系统(Dashboard) 监控告警,数据质量, 生命和周期 数据集成,OLAP,图标引擎, 可视化引擎 测试 线上部署 运行 计算成本 成本优化 运行时监控 数据质量监控 管理生命周期 结果数据导出 报表配置 数据可视化配 置 数据工场关键服务——知识库(元数据管理) Hadoop MR Hadoop HDFS HIVE 工作流调度 代码库 • Job/Task级别运 • 文件Meta • 表Schema • 数据流定义,任 • 代码 • 目录Meta • 分隔符,格式, 行日志 • MR级别运行日 志 • 文件,目录统计 信息 • 各个环节延迟 • 权限属性 • 系统吞吐 • 访问记录 压缩方式 务依赖 • 节点级运行日志 • 记录数 • 系统延迟 • 权限信息 • 调度开销 • Gateway集群负 载,并发度 • 任务优先级,基 线 • 与用户的关联 数据工场关键服务——知识库(元数据) 数据字典 指标库 自动建模/模型优化 知识库 … 数据质量监控 元 数 据 应 血缘分析&影响分析 用 SQL自动改写 生命周期 监控告警 … SQL优化 其 它 服 务 BUS Metadata Service Sphinx 归 一 化 存 储 Redis MySQL 捕 获 归解 一析 … 化处 理 / RAC 收集器 收集器 解析器 收集器 Hadoop MR Hadoop HDFS HIVE 调度系统 代码 J/HI/PY 需求系统 / 收集器 / 收集器 … 生 成 数据工场关键服务——知识库(元数据) 任务依赖关系/data pipeline 宏观数据 天网调度效率 系统吞吐瓶颈 Gateway并行度 微观数据 Jobtracker调度效率 系统优化 关键路径分析 集群计算效率 优先级 末端监控 运行趋势分析 比较 运行时间 系统关键路径点 数据源监控 事后评分 ETL元数据分析/血缘关系 算法优化 重点节点 等待时间 同步时间 参数调优 工具优化 计算模型优化 数据工场关键服务——调度 3.0 调度服务(数据工场) • 结合IDE 2.O 调度系统(天网) • 基于工作流,自动管理以来关 1.0 Crontab • 完全为了解决定时启动的问题 • 应用自己解决依赖关系 系 • 资源分配,并行度控制 • 容错机制:任务自动重跑、机 器自动倒换 • 无均衡负载问题 • 自动负载平衡 • 无优先级问题 • 支持业务优先级 • 全人工运维 • 大部分场景支持自动运维,小 部分半自动运维 • 独立的系统 • 自动部署 • 全自动运维 • 自助监控,自助值班,100% 监控覆盖 • 开放式服务 • 与系统其他部分集成,服务平 台的一部分 数据工场关键服务——调度 其它服务 调度前台 定义 消息总线 调度服务 benefit fail over high-available dynamic LB high-usage 智能调度 标准化配置 统一包管理 批量管理工具 Standardized Gateway server cluster 标准化运维 Lower maintenance cost per machine 调度服务3.0 调度服务3.0 智能调度 数据工场关键服务———调度 数据工场关键服务———调度 数据源监控 数据流1 数据流2 数据流3 数据流4 数据流5 a a a a a b b c b 关键路径分析 c c d d b b c c d 系统关键路径点监控 d d e e e e e f f f f f 末端监控 末端监控 末端监控 末端监控 末端监控 数据工场关键服务——数据集成 数据源 增量实时同步 Mysql备库 Dbsync oracle备库 全量/非实时同步 TimeTunnel 2 HDFS 日志数据 全量/非实时同步 爬虫数据 DataX 计算结果 Hadoop集群 Mysql DataX oracle 数据工场关键服务——IDE 数据工场关键服务——RCP 数据工场关键服务——IDE JDBC RCP Hive server Web HTTP JDBC JDBC HTTP Hive 元数据库 IDE Server(HS mode) PIPE CLI CLI CLI Hadoop Cluster RPC … IDE Server(CLI mode) BUS 元数据 调度 优化引擎 生命周期 … 数据工场关键服务——成本优化 用户重写 用户提交的数 据流 打散为表.列 归一化表达式 匹配 数据流 rewrite 提交 规则引擎 字段仓库 数据仓库表 打散为表.列 归一化表达式 进入 模型优化建议 反馈 进入 数据工场关键服务——生命周期 对象( Object ): Hive table HDFS中的目录 对象 ( Object ) 动作( Action ): 仅保留,不作操作 删除 合并/压缩 极限存储 HDFS Raid 移动到其它文件系统 其它操作(可增加) 动作可以级联 生命 周期 规则 动作 ( Rule ): 规则( Rule ): 指定管理对象,在指定时间后,执行 指定操作策略。 每个管理对象可以配置多条管理规则。 ( Action ): 保 留 删 除 合 并 压 缩 极 限 存 储 HDFS RAID Move out … 数据工场关键服务——数据开发流程 编辑SQL代码 工程管理 调试 作业管理 生成生命周期 配置选项 配置调优 配置生命周期 发布管理 配置多维分析 配置数据导出 调度计划 配置char /dashborad 语句优化 版本控制 运行监控 数据质量监控 End 监控告警 总结