一、项目流程
1)需求概况:实现目标是什么? ——— 通过大数据获取什么信息
2)需求分析:用什么样的数据,实现什么样的效果。 数据源的考量(数据的种类和量的大小),数据呈现的思考(实时,非实时性)。
2)大概思路:数据来源,数据提取(达到目标),数据输出。 数据来源的种类,数据提取方式,数据输出的方式。
3)具体思考:
1> 数据源:来源类别(日志,数据库,数据仓库,流数据)
数据类型(xml,json,无格式文本)
数据体量(平均量,最小量,峰值量)
数据源的突变情况的处理 ———— 这要与系统设计的模块相结合
2>数据建模:
2.1、 提取前的数据模型:通过数据清洗,达到符合提取前的数据模型
2.2 、提取时的数据模型:提取流程,模型变换依托RDD(拆分,重组,聚合)实现
2.3、 提取后的数据模型:提取完成后,得到基本目标数据,转换为目标的数据模型
3>技术选型:
3.1、 获取源数据:flume,、jdbc、hive、hbase等获取数据
3.2、 数据预处理:J2EE 预处理后,放入 kafka 或者其他方式
3.3、 数据提取 :spark、hadoop、hive、hbase、redis等
3.4、 数据结果存储:jdbc、hive、hdfs、hbase、flume等
4)系统设计:架构设计和项目工程的设计,重点在于数据提取模块的设计
5)项目搭建:模块化搭建,考虑系统的交互性、可维护、可扩展、稳定性、紧急情况的处理
6)系统编码:底层服务的编写,周边模块的编写和进行基本单元测试
7)业务模块:编写业务模块和进行基本单元测试
8)测试单元:单元测试、模块间的交互测试和整个系统测试
9)上线观察:上线后,观察每个模块的功能情况和优化
二、架构图: