1、什么是数据仓库?
权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
1)数据仓库是用于支持决策、面向分析型数据处理;
2)对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改
异构数据源(disparate data source)广义上讲是指数据结构、存取方式、形式不一样的多个数据源。如,在一个系统中,同时包含由关系型数据库Oracle/SQL SERVER/MYSQL、EXCEL文件或txt文本数据、XML数据等不同的数据源的一个整体,就是一个异构的数据源
2、数据仓库和数据库的区别?
从目标、用途、设计来说
1)数据库是面向事务处理的,数据是由日常的业务产生的,并且是频繁更新的;数据仓库是面向主题的,数据来源多样化,经过一定的规则转换得到的,用于分析和决策
2)数据库一般用来存储当前事务性数据,如交易数据;数据仓库一般存储的是历史数据
3)数据库设计一般符合三范式,有最大的精确度和最小的冗余度,有利于数据的插入;数据仓库设计一般不符合三范式,有利于查询
3、数据集市和数据仓库的区别?
1)数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持手段;
数据集市是一种微型的数据仓库,它通常有更少的数据,更少的主题区域,以及更少的历史数据,因此是部门级的,一般只能为某个局部范围内的管理人员服务,因此也称之为部门级数据仓库。
2) 数据仓库向各个数据集市提供数据
3) 几个部门的数据集市组成一个数据仓库
4) 通常仓库中数据粒度比集市的粒度要细
作为一个包含多个业务部门,且有大量应用系统的企业,应该如何去设计搭建数据集市。
开放性题目,可以按照部门划分集市,也可以按照应用系统划分集市等等
4、如何构建数据仓库?
数仓模型的选择是灵活的,不局限于某种模型方法。
数仓数据是灵活的,以实际需求场景为导向。
数仓设计要兼顾灵活性、可扩展性,要考虑技术可靠性和实现成本。
1)调研:业务调研、需求调研、数据调研
2)划分主题域:通过业务调研、需求调研、数据调研最终确定主题域
3)构建总线矩阵、维度建模
总线矩阵:把总线架构列表形成矩阵形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上标记表示该业务处理过程与该维度相关(交叉探查)
4)设计数仓分层架构
5)模型落地
6)数据治理
5、为什么需要数据仓库建模?
性能:良好的模型能帮我们快速查询需要的数据,减少数据的IO吞吐
成本:减少数据冗余、计算结果复用、从而降低存储和计算成本
效率:改善用户使用数据的体验,提高使用数据的效率
改善统计口径的不一致性,减少数据计算错误的可能性
6、数仓架构为什么要分层?
1)分层可以清晰数据结构,使用时更好的定位和理解
2)方便追踪数据的血缘关系
3)规范数据分层,可以开发一些通用的中间层数据,能够减少极大的重复计算
4)把复杂的问题简单化