View
817
Download
13
Embed Size (px)
Citation preview
美团数据仓库的演进美团⺴⽹网数据组 刁⼠士涵
13年9月6⽇日星期五
数据驱动
2
13年9月6⽇日星期五
13年9月6⽇日星期五
•数据收集与存储• ETL •开放和协作•经验教训
演进过程
13年9月6⽇日星期五
Scribe
13年9月6⽇日星期五
Flume
13年9月6⽇日星期五
•
日志收集Flume Scribe
容错性 agent和collector,collector和store之间提供三种级别的可靠性保证
collector和store之间有容错,但agent和collector之间的容错需要⾃自⼰己实现
负载均衡 从agent到collector之间可以设置Loadbalance模式 ⽆无
扩展性 好 好
框架包含source, channel, sink三部分,可以⽅方便设置。代码框架良好,可以⽅方便进⾏行组件开
发。代码简单
源⽀支持 提供丰富的agent,包括socket, syslog, scribe, thrift, avro, exec等; thri-,其它美团⾃自⼰己实现
存储⽀支持⽀支持存储到hdfs, file, hbase和发送到avro,
thrift等端;写hdfs时⽀支持对text和 sequence的压缩;
buffer, network, file(hdfs, text)
13年9月6⽇日星期五
• Infobright
• Hadoop/Hive
⽇日志的结构化存储
13年9月6⽇日星期五
•数据收集与存储
•ETL •开放和协作•经验教训
演进过程
13年9月6⽇日星期五
•很多重复劳动和代码,⼀一处变更多处修改•中间数据缺失,中间结果不能共享•程序语⾔言五花⼋八⻔门,⽅方法各异很难管理•清洗和转换没有统⼀一⽅方法,容易出错•不同数据源的数据很难综合使⽤用
13年9月6⽇日星期五
ETL
13年9月6⽇日星期五
• B流程要在N流程后⾯面执⾏行
•并⾏行开发
•上游数据源调整,没通知下游?
上百个流程如何管理?
13年9月6⽇日星期五
依赖关系+调度
13年9月6⽇日星期五
•解析SQL,获得每个流程的上游表
•检测环等不合理依赖
•流程上线时⾃自动更新,不⽤用⼈人⼯工干预
⾃自动解析依赖关系
13年9月6⽇日星期五
•⼀一个核⼼心流程,有上百个下游,依赖关系达到17层
•执⾏行出错了...
依赖关系
13年9月6⽇日星期五
容错,监控控制影响范围,快速恢复
13年9月6⽇日星期五
调度系统
13年9月6⽇日星期五
•权限控制–⽑毛利 = (售价 -‐ 进价)* 销量
•重导剪枝–⼀一个字段计算出错, 只影响部分下游
字段级依赖关系
13年9月6⽇日星期五
•数据收集与存储• ETL
•开放和协作•经验教训
演进过程
13年9月6⽇日星期五
数据⼯工程师每天的时间分配?
先提升⼯工程师的效率!
13年9月6⽇日星期五
•将数据按照常⽤用的维度展开成上百列的宽表,⽅方便报表查询和分析⼈人员提取数据
•城市+时间维度的主题表:418列
建⽴立主题表
13年9月6⽇日星期五
⾃自助查询、报表⼯工具
13年9月6⽇日星期五
⾃自助查询、报表⼯工具
13年9月6⽇日星期五
•⾯面向业务部⻔门、PM、分析师,持续组织培训
•建⽴立答疑群, 随意有问题随时解答
•参与招聘
推⼲⼴广使⽤用
13年9月6⽇日星期五
效果
⾃自助查询⼯工具上线前
上线后
写SQL的⼈人数据RD<10⼈人 业务,PM,分析师 >100⼈人,其中超过⼀一半是妹⼦子
⼯工作状态RD疲于提数写报表数据需求⽅方等待
RD改善⼯工具建设数据仓库需求⽅方⾃自助提取数据
各数据需求⽅方已经在平台上保存了18500+个SQL
13年9月6⽇日星期五
数据的消费可以⾃自助了数据的⽣生产呢?
13年9月6⽇日星期五
•开放存储和计算环境,ETL开发和部署web化•让有能⼒力的RD⾃自⼰己开发ETL流程
开放ETL环境
13年9月6⽇日星期五
•数据仓库是⼀一套完整的软件环境,包括数据抽取、存储、计算、查询、展⽰示,以及管理这些过程的⼯工具。开放的环境带来更⼤大的价值。
13年9月6⽇日星期五
•数据收集与存储• ETL •开放和协作
•经验教训
演进过程
13年9月6⽇日星期五
•坚持⽤用技术提⾼高效率
•⼯工具化
•培训⼈人,提⾼高⼈人的能⼒力
坚持做有积累的事,做乘法
13年9月6⽇日星期五
• OLAP尝试失败
•可视化查询
别⼈人的不⼀一定适合你
13年9月6⽇日星期五
•根据业务需要考虑架构,随着业务发展不断改进
• “好的架构是演进出来的”
演进
13年9月6⽇日星期五
•MySQL, Infobright• Hadoop, Hive, HBase, Zookeeper• ThriE, Scribe, Flume, Sqoop• Redis• Quartz• ...
拥抱开源,回馈社区
13年9月6⽇日星期五
Thanks!
13年9月6⽇日星期五