第2章 项目需求及架构设计
2.1项目需求分析
2.2项目框架
2.2.1技术选型(#面试)
技术选型主要考虑因素:
- 数据量大小:数据量很小,直接用mysql即可,如果数据量很大就要考虑用HDFS
- 业务需求:分离线和实时数仓
- 技术成熟度和行业内经验:例如Flink刚出来时只有大厂使用,普通还是用的Spark,但是Flink成熟后,使用的就多了,有很多大厂的使用经验可以参考,就可以选择使用它。
- 开发维护成本:有的软件它的开发维护成本比较高,但是功能丰富,但需要使用很多功能时,即使开发维护成本高也得使用它。
- 总成本的预算:实现同一个功能可能有免费软件和收费软件,但是收费软件肯定有它收费的优势,如果总成本高的话,可以使用收费的软件,预算不够改用免费软件也行。
最好结合具体应用进行说明#待做
2.2.2 系统数据流程设计
-
Nginx:负责分配请求到不同的服务器,避免数据倾斜
-
业务数据直接存放在MySql中
- 每日全量?#疑问
- 增量同步?#疑问
-
Kafka
- 消崩
- 解耦
- 离线数仓和实时数仓都从其中拿数据
- 业务数据和用户行为数据都需要先经过Kafka然后进入Hadoop集群中
-
再进行数仓建模
-
将ADS层的数据同步到MySql中进行可视化展示
-
实时数仓部分#待学
2.2.3 框架版本选型
Apache版本
可能会出现组件不兼容的问题,需要自己修改源码,然后重新编译打包
但是尚硅谷提供的组件安装包已经解决了一些组件不兼容的问题。
云服务版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-491wxRVG-1666100987011)(离线数仓-用户行为采集平台.assets/image-20221017145353180.png)]
云服务需要运行在云服务器上,也需要购买,但是可以在web页面上实现自动化配置。
具体版本号
2.2.5 集群规模
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0kM80Wfl-1666100987012)(离线数仓-用户行为采集平台.assets/image-20221017150752805.png)]
2.2.6 集群资源规划设计
在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。