Windows10、Centos7(三集群24G+8核)、Idea2019.3、Maven3.3.9、Flume1.9、kafka2.11-2.1.0、jdk1.8、zookeeper3.4.10、hadoop2.7.2、Hive1.2.1、Mysql5.7、Sqoop1.4.6、presto0.196、imply2.7.10、ApacheKylin2.5.1、Hbase1.3.1
- 数据采集平台搭建
- 实现用户行为数据仓库的分层搭建
- 实现业务数据仓库的分层搭建
- 针对数据仓库中的数据进行,留存、转化率、GMV、复购率、活跃等报表分析
- 实现Web页面的可视化操作
模拟日常电商网站的数据,编写脚本生成埋点数据,并通过爬取京东的真实商品作为我们的数据来源,保证更准确的模拟日常生产,并且搭建我们整个Apache项目框架,在这个阶段对我们整体框架进行基准测试,保证正常运行
在这个阶段我们将数据分为四层,目的是:把复杂的问题简单化、减少重复开发、隔离原始数据,以下分别是这四层
- ODS层(原始数据层):原始数据层,存放原始数据,直接加载原始数据、日志,数据保持原貌不做处理
- DWD层(明细数据层):结构和粒度与原始表保持一致,对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)
- DWS层(服务数据层):以DWD层为基础,进行轻度汇总,一般聚集到以用户当日,设备当日,商家当日,商品当日等等的粒度
- ADS层(数据应用层):ADS层为各种统计报表提供数据,也可称为APP层、DM层
在这一阶段我们会一层一层的处理我们的原始数据,根据业务要求最终得到结果,并编写相应的脚本简化我们的操作
这一阶段主要是模拟电商网站的业务流程,进一步细化我们的业务逻辑,主要涉及到实体表、维度表、事务型事实表、周期型事实表、雪花模型、星座模型等,仍然是进一步处理数据,得到GMV成交总额、转化率及漏斗分析、品牌复购率等,最终使用Azkaban调度整个任务作业流程,实现数据的Web页面可视化,方便我们的查询并将数据更好的展示给用户
这一阶段主要是为了实时的查询我们的数据,比如产品经理需要这一时刻的数据,所以我们采用Presto,这是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景,并使用了Druid,它也是一个快速的列式分布式的支持实时分析的数据存储系统,还有ApacheKylin,它是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的Hive表。我们三个都会采用,在不同的业务场景也会用不同的作用,这阶段主要是在原有架构的基础上增加功能,完善我们之前已经实现的功能,并进一步细化整个作业流程。