1 思维导图&数仓常见面试题
2 题目
1. 数据仓库是什么?
数据仓库是一个面向主题的
(订单、支付、退单等)、集成的
(整合多个信息源的大量数据)、非易失的
(一般不会进行删除和修改操作)且随时间变化
(不是数据会变,而是数据量随着时间增加)的数据集合,主要用于存储历史数据,然后通过分析整理进而提供数据支持和辅助决策。
2. 数据仓库和数据库有什么区别
- 数据库中主要存放在线数据,数据仓库中主要存放历史数据,并且存放的数据量比数据库要多的多。
- 数据库主要用于业务处理(比如支付系统),数据仓库主要用于数据分析。
- 数据库的设计要避免冗余,而数据仓库通常会引入冗余,减少后面分析时的join操作。
3. 为什么要对数据仓库分层
将复杂的需求简单化
(我们通过将复杂的问题分解为多个步骤来完成,每一层只处理单一的步骤,比较容易和理解)提高数据的复用性
,比如需要中间层的数据,可以直接查询中间层的数据,不必从头开始计算。- 补充说明:数据仓库就是一种以
空间换时间
的架构
4. 为什么需要数据建模
随着数据的爆发式增长,如何对数据进行有序、有结构地分类组织和存储是一大挑战。数据建模是对数据存储和组织的一种方法,它强调从业务数据存储和使用角度合理存储数据。有了适合业务的数据模型之后,那么大数据就可以获得以下好处:性能、成本、效率、质量
5. 经典的数据仓库建模方法论有哪些
ER模型
,这个模型是符合3范式的,它的出发点就是整合数据,将各个系统中的数据按主题进行分类,但是不能直接用于分析决策。维度模型
,维度建模以数据分析作为出发点,为数据分析服务,因此它关注的重点的用户如何更快的完成需求分析以及如何实现较好的大规模复杂查询的响应性能,现在大多数数仓的搭建都是基于维度模型进行搭建的。- 区别:ER模型冗余少,在大规模数据跨表分析中,会存在多表关联,大大降低了执行效率。
6. 数仓相关的名词术语解释,比如数据域、业务过程、衍生指标
- 数据域:将业务过程或者维度进行抽象的集合,例如交易域、商品域等都是数据域。
- 业务过程:一个不可拆分的行为事件,例如下单、支付、退款等都是业务过程。
- 维度:用于分析事实所需要的环境,比如时间维度,地理维度等。
- 维度属性:维度属性属于一个维度,比如地理维度中的国家名称、身份名称都是维度属性
- 原子指标:原子指标基于某一业务过程的度量值,是业务定义中不可再拆解的指标,原子指标的核心功能就是对指标的聚合逻辑进行了定义。原子指标包含三要素,分别是
业务过程
、度量值
和聚合逻辑
。 - 派生指标:基于原子指标,其与原子指标的关系如下图所示。与原子指标不同,派生指标通常会对应实际的统计需求