论文部分内容阅读
数据是企业抑或团队设计产品、制定和调整战略以及反思的基石。随着大数据时代的来临,异构而庞杂的海量信息给数据分析带来了严峻的挑战。百度“闪投”(Product Ads)作为“凤巢”下研究客户广告快速批量高质投放解决方案的团队,其重要依据为用户对广告的行为日志。对这些日志高效而全面的分析好比在团队与数据之间创建一道视图,让数据“发声”,并对其进行及时的监控,进而创造出更优秀的解决方案。用户行为日志作为异步产出的异构大数据,通常很难用流式顺序的文件传统处理方法,即使是并发的读文件片段的方式,也过多的依赖程序内外的状态,造成很多代码副作用。采用MapReduce这样一种吸收函数式编程思想的编程框架,分析“天”粒度的数据,研究昨日值是通常的做法。然而,非实时的大数据分析带来的延迟,导致线上问题反馈缓慢,产品试验跟进不及时等一系列问题,从而造成巨大损失。一般来说,日志的分析结果后续会成为结构化数据存入关系型数据库。好的数据服务如百度ReportEngine系统利用多级缓存,分布式并发事务,提供多种主题的快速数据查询。但是,这样意味着主题的增加和删减都会带来非常昂贵的成本,系统越复杂,主题升级越困难。为了解决上述困难,作者设计并开发了“闪投实时视图”系统(Product Ads Realtime View Analyst,下简称PARVA)。PARVA系统采取更细粒度的数据检查、数据分析、数据入库的近实时调度,将“天”的粒度细化到同业务上游日志产出的粒度一致;采取配置式编程,利用Hadoop对完备的数据源进行粗层次的分析,生成非结构化的主题数据;从非结构化数据中提取常维度,生成结构化数据存入关系型数据库MySQL中,提供“分钟”粒度到“天”粒度的常维度数据服务。最后,PARVA系统综合利用非结构化与结构化数据、“分钟”粒度与“天”粒度数据,对数据进行监控和更高层次的分析,组织成数据报表邮件、PHP网页以及Chrome插件等丰富形式全方位向用户展示数据。本文将对PARVA系统的诞生追根溯源,给出PARVA系统详尽的设计与重要模块的具体实现。