需求调研、评审(4周)
设计架构(1周)
编码、集成(12周)
测试(2周)
上线部署,试运行,调优(3周)
#### 人员配置
开发人员: 6人
职责划分:
前端(JavaWeb+前端 2人)
大数据开发(3人)
运维(1人)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611152945348.png)
### 第三剑「破刀式」技术架构(技术选项及框架版本)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611150348250.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW55dTEyMA==,size_16,color_FFFFFF,t_70)
1. 业务系统数据主要存放到Oracle和MySQL数据库中,比如CRM系统数据在MySQL,OMS系统数据存放在Oracle中;
2. OGG增量同步Oracle数据库的数据,Canal增量同步MySQL数据库的数据;
3. OGG及Canal增量抽取的数据会写入到Kafka集群,供实时分析计算程序消费;
实时分析
4. 实时分析计算程序消费kafka的数据,将消费出来的数据进行ETL操作;
5. 为了方便业务部门对各类单据的查询,StructuredStreaming流式处理系统将数据经过ETL处理后,将数据写入到Elasticsearch索引中;
6. StructuredStreaming流处理会将数据写入到ClickHouse,Java Web后端直接将数据查询出来进行展示,例如:将运输车辆的GPS位置数据实时展示到GIS地图;
7. StructuredStreaming将实时ETL处理后的数据同步更新到Kudu中,方便进行数据的准实时分析、查询,Impala对Kudu数据进行即席分析查询;
8. 前端应用对数据进行可视化展示,比如数据服务接口或大屏实时刷新;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611152923854.png)
### 第四剑「破枪式」集群规模(业务数据量及服务器配置和数量)
此处数据量,需参考实际需要酌情考虑
#### 如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)
每天日活跃用户100万,每人一天平均100条:100万\*100条=10000万条(1亿)
每条日志1K左右,每天1亿条:100000000/1024/1024=约100G
半年内不扩容服务器来算:100G\*180天=约18T
保存3副本:18T*3=54T
预留20%-30%Buf=54T/0.7=77T
因此:约8T*10台服务器
如果考虑数仓分层?
服务器将近在扩容1-2倍
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611151117207.png)
#### 服务器使用物理机还是云主机?
机器成本考虑:
物理机:以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,单台报价4W出头,需考虑托管服务器费用。一般物理机寿命5年左右
云主机,以阿里云为例,差不多相同配置,每年5W
运维成本考虑:
物理机:需要有专业的运维人员
云主机:很多运维工作都由阿里云已经完成,运维相对较轻松
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210609150744730.jpg)
### 第五剑「破鞭式」数据来源及数据采集
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611151437944.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW55dTEyMA==,size_16,color_FFFFFF,t_70)
### 第六剑「破索式」数据ETL(可能离线、可能实时)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611151456928.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW55dTEyMA==,size_16,color_FFFFFF,t_70)
### 第七剑「破掌式」业务报表分析(离线报表、实时报表)
* 第一点:传统报表分析,各个主题报表
+ 数据倾斜、大表与大表关联、OOM内存溢出等等
* 第二点:Impala 即席查询,SQL语句
* 第三点:ClickHouse 实时OLAP分析
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210611151525244.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW55dTEyMA==,size_16,color_FFFFFF,t_70)
### 第八剑「破箭式」数据分析引擎(Hive、Impala、Es、Spark、Flink等)
* Hive:底层MapReduce框架,“稳”
* SparkSQL:集成Hive或集成Kudu,分析数据,当然也是用StructuredStreaming
* Impala、ClickHouse:实时OLAP分析框架
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210609153733800.png)
### 第九剑「破气式」项目问题(数据倾斜、OOM或性能优化等)
* 抛出问题,如何解决(自己解决)
* 常见性能优化,背下来:Hive性能优化、Spark性能优化(原理性东西)
例:如何避免Spark数据倾斜?
避免Spark数据倾斜,一般是要选用合适的 key,或者自己定义相关的 partitioner,通 过加盐或者哈希值来拆分这些 key,从而将这些数据分散到不同的 partition 去执 行。如下算子会导致 shuffle 操作,是导致数据倾斜可能发生的关键点所在: groupByKey;reduceByKey;aggregaByKey;join;cogroup;
### 总结
>
![img](https://img-blog.csdnimg.cn/img_convert/d0eca84417c4b95c810393aca38966b9.png)
![img](https://img-blog.csdnimg.cn/img_convert/b41d80193965bd8d24417728c0842989.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
/bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**