数据应用开发平台

Download Report

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
监控告警
总结