大数据修炼之路,唯音乐作伴。everyone,你可以听听下面我选的音乐看看我写的文章,发现错误欢迎与我交流。
项目整体介绍
从功能上来说,主要包含两方面:
给公司的运营、管理等部门提供数据分析平台:离线数仓系统 + OLAP平台
为公司的上层运用系统(广告投放引擎,个性化推荐系统)等提供数据支撑:用户画像
运营报表分析
行为事件分析
用户画像分析
从业务领域来说,主要包含3块:
用户行为埋点日志(pc-web端,微信小程序、app、H5页面)
业务系统的数据库
从数据来源的种类来说,主要包含两块:
数据采集汇聚层
数据计算层
数据服务层
数据应用层
从技术架构上来说,整体上包含4层:
项目技术介绍
数据采集汇聚层:我们主要的任务是两块:
一是web事件日志的采集
另外就是业务库的数据抽取
数据计算层:我们主要是用hive作为基础设施构建起一个数仓,分层分主题进行各类报表计算。这里面除了hive之外,还用到了这样一些技术组件:
spark sql:有一些相对复杂的计算任务,我们是通过spark来开发的(比如数据预处理和一些挖掘算法来实现,比如:行为性别预测(用了逻辑回归算法)、评论语义分析,用了朴素贝叶斯算法等)
任务调度这一块,我们用的是azkaban
元数据管理这块,我们引入了atlas,基本的元数据管理需求都能满足,尤其是数据的血缘追溯还是挺方便的,不过它自带的web admin比较简单,我们领导想开发一个元数据admin ui,最近已经开始研究atlas的api接口
数据服务层,主要有两块任务
一是为推荐组合广告组提供数据;这一块我们平台组这边承担的任务相对简单,主要就是把他们需要的数据定时导他们指定的库,或者临时性地帮他们开发一些数据抽取脚本
另外就是给公司的运营、市场等部门搭建了一个OLAP分析平台。这个平台之前是用了一个比较简单的架构,把数仓生产的报表导到mysql,然后开发一个web系统,提供一下报表可视化展现和简单的分析功能;后来,业务部门对在线分析的需求不断提高,需要更多更灵活的即席分析功能,后来,各业务部门对在线分析的需求不断提高,需要更多更灵活的即席分析功能,这样一来呢,前端的查询需求,就不光是从常规报表中取数,经常需要对一些数据指标进行灵活的多维分析,有一些需求还要从我们数仓的DWD明细表中取数并实时运算,比如一些漏斗分析、事件分析、画像分析等等,,之前的架构就不是很适合了。
因此后来就做了一些尝试性的迭代:
为应对在线多维分析这块,我们引入了KYLIN来支持;
对另外一些灵活的行为事件探索分析(如自定义漏斗分析,自定义事件留存分析等),我们现在是基于impala来做(后期想替换成clickhouse,现在做了一些预研)




