1.介绍
采集项目和数仓项目
采集和数仓是企业数据管理平台的2个核心功能模块,相对独立,所以可以独立开发
区别
功能
采集:数据的采集和传输
数仓:数据的存储
流程
数据库->数据采集->数据仓库->可视化界面
2.数据仓库
什么是数仓?
1.名称
-
数据库 : database
-
数据仓库: data warehouse
2.数据来源
- 数据库: 企业的业务系统核心数据
- 数据仓库:数据库中的数据(数据库存的少,而数据仓库存的多)
3.从数据存储上区分
数据库: 主要操作以查询为主,存储以行式,无法存储海量数据(行式影响查询效率)
数据仓库: 为了处理 分析数据,并将数据结果以可视化显示,存储以列式,能存储海量数据(数据越多,分析结果越精确)
4.从数据价值上区分
- 数据库:支撑整个业务的运行(所有业务都是基于数据库运行的)
- 数据仓库:通过统计结果,为企业的经营决策提供数据支撑,数据仓库是中转站,而可视化是终点
3.问题
- 为什么数据仓库不直接使用数据库作为数据源?
- 数据库为行式存储不利于统计分析
- 数据库不能存储海量数据,有一部分数据都是在文件中存储的,而数据仓库要求海量数据
- 如果数据库作为数据源,则数据仓库占用数据库的资源过大,会影响业务的处理
- 数据库对接数据源需要注意什么?
- 数据库源源不断将数据传入数据源
- 数据源数据量远大于数据库
- 数据库和数据源的文件内容相同,体量不同
- 关于数据的加工统计分析如何处理?
- 多个功能包含很多重复的功能和数据,所以可以像Spark的cache一样,将中间结果进行存储,
- 数据仓库会将中间计算结果保存在表中(hive HDFS)中
- SparkSQL或者HiveSQL都可以实现
- 为什么说数据库直接向数据源发数据是高耦合?
数据源不开发完,无法开发数据采集 - 为什么数据源直接就是表格式???
4.数据采集
1.介绍
数据库将数据传入数据仓库的数据源的过程就叫数据采集
2.流程
数据库-> 采集-> 数据源
1.HDFS
数据库->HDFS->数据源
将数据库直接存入HDFS,而数仓也是集群HDFS,所以方便
增加中间件,让数据库不依赖数据源的开发
2.数据库->HDFS
数据库是表格数据,所以需要DataX和Maxwell将数据库中的二维表来进行格式转换存储.