算法面试必备-----数据仓库常见面试题

算法面试必备-----数据仓库常见面试题

算法面试必备-----数据仓库常见面试题

问题:什么叫数据仓库?

数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。

数据仓库是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于OLTP源系统。

首先,用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;

其次,对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改

问题:数据仓库建模

为什么需要数据仓库建模?

数仓建模需要按照一定的数据模型,对整个企业的数据进行采集,整理,提供跨部门、完全一致的报表数据。

合适的数据模型,对于大数据处理来讲,可以获得得更好的性能、成本、效率和质量。良好的模型可以帮助我们快速查询数据,减少不必要的数据冗余,提高用户的使用效率。

数据建模进行全方面的业务梳理,改进业务流程,消灭信息孤岛,更好的推进数仓系统的建设。

数据仓库建模方法?

有四种模型:ER模型、维度模型、Data Vault模型、Anchor模型。用的较多的是维度模型和ER模型。

1、ER模型

ER模型用实体关系模型描述企业业务,在范式理论上满足3NF。数仓中的3NF是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。

采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据按照主题进行相似性整合,并进行一致性处理。

ER模型特点
需要全方位了解企业业务数据
实施周期较长
对建模人员要求教高

2、维度建模

维度建模按照事实表和维度表来构建数仓。

维度建模从分析决策的需求出发构建模型,为分析需求服务。重点关注用户如何快速的完成数据分析,可以直观的反应业务模型中的业务问题,需要大量的数据预处理、数据冗余,有较好的大规模复杂查询的响应性能。

事实表
发生在现实世界中的操作性事件,其产生的可度量数值,存储在事实表中。从最细粒度级别来看,事实表的一行对应一个度量事件。事实表表示对分析主题的度量。‘

事实表中包含了与各个维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型,且记录数不断增加,表数据量迅速增长。

维度表
维度表示分析数据时所用的环境。

每个维度表都包含单独的主键列。维度表行的描述环境应该与事实表行完全对应。维度表通常比较宽,是扁平型的非规范表,包含大量的低粒度的文本属性。

注意
事实表的设计是以能够正确记录历史信息为准则

维度表的设计是以能够以合适的角度来聚合主题内容为准则

维度建模的三种模式
星形模型:以事实表为中心,所有的维度直接连接在事实表上。由一个事实表和一组维度表组成。

雪花模型:是对星形模型的扩展。雪花模型的维度表可以拥有更细的维度,比星形更规范一点。维护成本较高,且查询是要关联多层维表,性能较低

星座模型:基于多张事实表,多张事实表共享维度信息

维度建模步骤
选择业务过程
选择粒度
选定事实表
选择维度

问题:数据湖的理解?

数据湖是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。
在这里插入图片描述
在这里插入图片描述

问题:基本概念的解释:

元数据:

描述数据及其环境的数据。两方面用途:

首先,元数据能提供基于用户的信息,如记录数据项的业务描述信息的元数据能帮助用户使用数据。

其次,元数据能支持系统对数据的管理和维护,如关于数据项存储方法的元数据能支持系统以最有效的方式访问数据。

元数据机制主要支持以下五类系统管理功能:

(1)描述哪些数据在数据仓库中;

(2)定义要进入数据仓库中的数据和从数据仓库中产生的数据;

(3)记录根据业务事件发生而随之进行的数据抽取工作时间安排;

(4)记录并检测系统数据一致性的要求和执行情况;

(5)衡量数据质量。

元数据的理解?

https://www.jianshu.com/p/f7c26b4ebe3c

狭义来讲就是用来描述数据的数据

广义来看,除了业务逻辑直接读写处理的业务数据,所有其他用来维护整个系统运转所需要的数据,都可以较为元数据。

定义:元数据metadata是关于数据的数据。在数仓系统中,元数据可以帮助数据仓库管理员和数据仓库开发人员方便的找到他们所关心的数据;元数据是描述数据仓库内部数据的结构和建立方法的数据。按照用途可分为:技术元数据、业务元数据。

技术元数据

存储关于数据仓库技术细节的数据,用于开发和管理数据仓库使用的数据

1、数据仓库结构的描述,包括数据模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容

2、业务系统、数据仓库和数据集市的体系结构和模式

3、由操作环境到数据仓库环境的映射,包括元数据和他们的内容、数据提取、转换规则和数据刷新规则、权限等。

业务元数据

从业务角度描述了数据仓库中的数据,他提供了介于使用者和实际系统之间的语义层,使不懂计算机技术的业务人员也能读懂数仓中的数据。

1、企业概念模型:表示企业数据模型的高层信息。整个企业业务概念和相互关系。以这个企业模型为基础,不懂sql的人也能做到心中有数

2、多维数据模型。告诉业务分析人员在数据集市中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。

3、业务概念模型和物理数据之间的依赖。业务视图和实际数仓的表、字段、维的对应关系也应该在元数据知识库中有所体现。

元数据管理系统?

元数据管理往往容易被忽视,但是元数据管理是不可或缺的。一方面元数据为数据需求方提供了完整的数仓使用文档,帮助他们能自主快速的获取数据;另一方面数仓团队可以从日常的数据解释中解脱出来,无论是对后期的迭代更新还是维护,都有很大的好处。元数据管理可以让数据仓库的应用和维护更加的高效。

元数据管理功能

数据地图:以拓扑图的形式对数据系统的各类数据实体、数据处理过程元数据进行分层次的图形化展示,并通过不同层次的图形展现。

元数据分析:血缘分析、影响分析、实体关联分析、实体差异分析、指标一致性分析。

辅助应用优化:结合元数据分析功能,可以对数据系统的应用进行优化。

辅助安全管理:采用合理的安全管理机制来保障系统的数据安全;对数据系统的数据访问和功能使用进行有效监控。

基于元数据的开发管理:通过元数据管理系统规范日常开发的工作流程

数据管理标准

对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库

对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后通过建立标准的元数据交换格式,实现元数据的集成管理。

元数据管理系统

自研

apache atlas

ODS: Operational Data Store

ODS为企业提供即时的,操作型的,集成的数据集合,具有面向主题性,集成性,动态性,即时性,明细性等特点

ODS作为数据库到数据仓库的一种过渡形式,与数据仓库在物理结构上不同,能提供高性能的响应时间,ODS设计采用混合设计方式。

ODS中的数据是”实时值”,而数据仓库的数据却是”历史值”,一般ODS中储存的数据不超过一个月,而数据仓库为10年或更多.

Data Mart

为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。

DDS(decision-support system)决策支持系统:

用于支持管理决策的系统。通常,DSS包括以启发的方式对大量的数据单元进行的分析,通常不涉及数据更新。

什么叫OLAP?用途是什么?

联机分析处理,On-Line Analysis Processing 即从数据仓库中抽取详细数据的一个子集并经过必要的聚集,存储到OLAP存储器中供前端分析工具读取。

OLAP系统按照数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。

ROLAP将分析要用的多维数据存储在关系数据库中,并根据应用的需要有选择的定义一批实视图也存储在关系数据库中

MOLAP将OLAP分析所要用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。

HOLAP能把MOLAP和ROLAP两种结构的优点有机的结合起来,能满足用户各种复杂的分析请求。

OLTP与OLAP的区别

OLTP特点如下

联机事务处理OLTP(on-line transaction processing)主要是执行基本的,日常的事务处理,比如数据库记录的增删改查,比如在银行存取一笔款,就是一个事务交易
-1)实时性要求高
2)数据量不是很大
3)交易一般是确定的,所以是OLTP是对确定性的数据进行存取(比如存取款都有一个特定的金额)
4)并发现要求高并且严格要求事物的完整性安全性(比如你和你的家人同时间在不同的银行取同一账户的钱)

OLAP特点如下

联机分析处理OLAP(on-line Analytical Processing)是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果.典型的应用就是复杂的动态报表系统
1)实时性要求不是很高,很多应用的顶多是每天更新一下数据
2)数据量大,因为OLAP支持的是动态查询,所以用户也许要通过很多数据的统计后才能得到想要的信息,例如时间序列分析等,所以处理的数据量很大
3)因为重点在于决策支持,所以查询一般是动态的,也就是说允许用户随时提出查询的要求,所以在OLAP中通过一个重要概念维来搭建一个动态查询的平台或技术,供用户自己去决定需要知道什么信息

简单来说:

OLTP就是我们常说的关系型数据库,即记录即时的增删改查就是我们常用的,这是数据库的基础,TPCC(Transaction Processing Performance Council)属于此类
OLAP即联机分析处理,是数据

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值