【数据仓库】数据仓库常见的一些面试题

建设数据仓库的八个步骤

 1.系统分析,确定主题

操作出现的频率,即业务部门每隔多长时间做一次查询分析。

在系统中需要保存多久的数据,是一年、两年还是五年、十年。

用户查询数据的主要方式,如在时间维度上是按照自然年,还是财政年。

用户所能接受的响应时间是多长、是几秒钟,还是几小时。

由于双方在理解上的差异,确定问题和了解问题可能是一个需要多次往复的过程,信息部门的人员可能需要做一些原型演示给业务部门的人员看,以最终确定系统将要实现的功能确实是业务部门所需要的。

 2.选择满足数据仓库系统要求的软件平台

厂商的背景和支持能力,能否提供全方位的技术支持和咨询服务。

数据库对大数据量(TB级)的支持能力。

数据库是否支持并行操作。

能否提供数据仓库的建模工具,是否支持对元数据的管理。

能否提供支持大数据量的数据加载、转换、传输工具(ETL)。

能否提供完整的决策支持工具集,满足数据仓库中各类用户的需要。

 3.建立数据仓库的逻辑模型

(1)确定建立数据仓库逻辑模型的基本方法。

(2)基于主题视图,把主题视图中的数据定义转到逻辑数据模型中。

(3)识别主题之间的关系。

(4)分解多对多的关系。

(5)用范式理论检验逻辑数据模型。

(6)由用户审核逻辑数据模型。

4.逻辑数据模型转化为数据仓库数据模型

(1)删除非战略性数据:数据仓库模型中不需要包含逻辑数据模型中的全部数据项,某些用于操作处理的数据项要删除。

(2)增加时间主键:数据仓库中的数据一定是时间的快照,因此必须增加时间主键。

(3)增加派生数据:对于用户经常需要分析的数据,或者为了提高性能,可以增加派生数据。

(4)加入不同级别粒度的汇总数据:数据粒度代表数据细化程度,粒度越大,数据的汇总程度越高。粒度是数据仓库设计的一个重要因素,它直接影响到驻留在数据仓库中的数据量和可以执行的查询类型。显然,粒度级别越低,则支持的查询越多;反之,能支持的查询就有限。

5.数据仓库数据模型优化

·合并不同的数据表。

·通过增加汇总表避免数据的动态汇总。

·通过冗余字段减少表连接的数量,不要超过3~5个。

·用ID代码而不是描述信息作为键值。

·对数据表做分区。

6.数据清洗转换和传输

 ·加载方案必须能够支持访问不同的数据库和文件系统。

·数据的清洗、转换和传输必须满足时间要求,能够在规定的时间范围内完成。

·支持各种转换方法,各种转换方法可以构成一个工作流。

·支持增量加载,只把自上一次加载以来变化的数据加载到数据仓库。

7.开发数据仓库的分析应用

满足用户的全部分析功能要求。数据仓库中的用户包括了企业中各个业务部门,他们的业务不同,要求的分析功能也不同。如有的用户只是简单的分析报表,有些用户则要求做预测和趋势分析。

提供灵活的表现方式。分析的结果必须能够以直观、灵活的方式表现,支持复杂的图表。使用方式上,可以是客户机/服务器方式,也可以是浏览器方式。

事实上,没有一种工具能够满足数据仓库的全部分析功能需求,一个完整的数据仓库系统的功能可能是由多种工具来实现,因此必须考虑多个工具之间的接口和集成性问题,对于用户来说,希望看到的是一致的界面

8.数据仓库的管理

 只重视数据仓库的建立,而忽视数据仓库的管理必然导致数据仓库项目的失败。数据仓库管理主要包括数据库管理和元数据管理。

·安全性管理。数据仓库中的用户只能访问到他的授权范围内的数据,数据在传输过程中的加密策略。

·数据仓库的备份和恢复。数据仓库的大小和备份的频率直接影响到备份策略。

·如何保证数据仓库系统的可用性,硬件还是软件方法。

·数据老化。设计数据仓库中数据的存放时间周期和对过期数据的老化方法,如历史数据只保存汇总数据,当年数据保存详细记录。

.然而,元数据管理贯穿于整个系统的建设过程中,元数据是描述数据的数据。在数据采集阶段,元数据主要包括下列信息:

·源数据的描述定义:类型、位置、结构。

·数据转换规则:编码规则、行业标准。

·目标数据仓库的模型描述:星型/雪花模型定义,维/事实结构定义。

·源数据到目标数据仓库的映射关系:函数/表达式定义。

·代码:生成转换程序、自动加载程序等。

 在数据管理阶段,元数据主要包括下列信息:

·汇总数据的描述:汇总/聚合层次、物化视图结构定义。

·历史数据存储规则:位置、存储粒度。

·多维数据结构描述:立方体定义、维结构、度量值、钻取层次定义等。

在数据展现阶段,元数据主要包括以下信息:

·报表的描述:报表结构的定义。

·统计函数的描述:各类统计分析函数的定义。

结果输出的描述:图、表输出的定义。

元数据不但是独立存放,而且对用户是透明的,标准元数据之间可以互相转换。

数据仓库的数据建模大致分为四个阶段:

1.   业务建模,这部分建模工作,主要包含以下几个部分:

划分整个单位的业务,一般按照业务部门的划分,进行各个部分之间业务工作的界定,理清各业务部门之间的关系。

深入了解各个业务部门的内具体业务流程并将其程序化。

提出修改和改进业务部门工作流程的方法并程序化。

数据建模的范围界定,整个数据仓库项目的目标和阶段划分。

2.   领域概念建模,这部分得建模工作,主要包含以下几个部分:

抽取关键业务概念,并将之抽象化。

将业务概念分组,按照业务主线聚合类似的分组概念。

细化分组概念,理清分组概念内的业务流程并抽象化。

理清分组概念之间的关联,形成完整的领域概念模型。

3.   逻辑建模,这部分的建模工作,主要包含以下几个部分:

业务概念实体化,并考虑其具体的属性

事件实体化,并考虑其属性内容

说明实体化,并考虑其属性内容

4.   物理建模,这部分得建模工作,主要包含以下几个部分:

针对特定物理化平台,做出相应的技术调整

针对模型的性能考虑,对特定平台作出相应的调整

针对管理的需要,结合特定的平台,做出相应的调整

生成最后的执行脚本,并完善之。

数据仓库建模方法

1. 范式建模法(Third Normal Form,3NF)

一个符合第三范式的关系必须具有以下三个条件 :

每个属性值唯一,不具有多义性 ;

每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;

每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。

2. 维度建模法

维度建模法,Kimball 最先提出这一概念。其最简单的描述就是,按照事实表,维表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)。

3. 实体建模法

虽然实体法粗看起来好像有一些抽象,其实理解起来很容易。即我们可以将任何一个业务过程划分成 3 个部分,实体,事件和说明,

实体:小明,学校 事件:上学  说明:开车去   小明开车去上学校

数仓仓库建模原则:

满足不同的用户需求

兼顾效率与数据粒度的需要

支持需求的变化

避免对业务运营系统造成影响

考虑未来的可扩展性

数据仓库中常见的模型有:范式建模,雪花模型,星型建模,事实星座模型.

星型模型是数据集市维度建模中推荐的建模方法。星型模型是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。星型模型的特点是数据组织直观,执行效率高。因为在数据集市的建设过程中,数据经过了预处理,比如按照维度进行了汇总,排序等等,数据量减少,执行的效率就比较高。

雪花模型也是维度建模中的一种选择。雪花模型的维度表可以拥有其他维度表的,虽然这种模型相比星型模型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。例如地域维度表又有城市国家省份维度表。。

范式建模

第三范式建模是在数据库建模中使用的建模方法,特点是体系化,扩展性好,避免冗余,避免更新异常。所以,在数据仓库的EDW层建模中,我们也提倡使用第三范式建模。但是数据仓库的集成和反映历史变化的特征意味着数据量非常之大,表和表之间的关联效率比较低,所以有些时候完全规范的范式建模并不是最好的选择,通常我们会选择非规范化处理,增加一些冗余的字段来避免表之间关联的次数,这样会节约大量的时间。

雪花模型是介于星型模型和范式建模之间的。个人理解,范式建模和雪花模型的区别在于雪花模型在维度上也是有冗余的。例如雪花模型例图的地域维度不符合第三范式,因为地域维度中存在传递依赖,城市-省级-国家-地域

星座模型是星型模型延伸而来,星型模型是基于一张事实表的,而星座模型是基于多张事实表的,而且共享维度信息。 通过构建一致性维度,来建设星座模型,也是很好的选择。比如同一主题的细节表和汇总表共享维度,不同主题的事实表,可以通过在维度上互相补充来生成可以共享的维度

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据仓库面试题pdf是一份提供给求职者或面试者参考的面试题目集合。在这份pdf中,通常会包含一系列与数据仓库相关的问题,主要目的是评估面试者在数据仓库方面的知识、技能和经验。 在pdf中,可能会包含以下类型的问题: 1. 数据仓库概念:面试题中可能会问到数据仓库的定义、特点以及在企业中的作用。面试者需要清楚地解释数据仓库的定义,并且能够列举出数据仓库的一些重要特点,如集成性、主题导向性和时间性等。 2. 数据模型与数据仓库设计:面试题中可能会要求面试者解释数据模型的作用和数据仓库设计的过程。面试者需要了解常见的数据模型类型,如星型模型和雪花模型,并能够解释它们的优缺点。此外,面试者还需要了解数据仓库设计的流程,包括需求分析、数据源选择、数据抽取和转换、数据加载等。 3. 数据抽取与转换:面试题中可能会涉及到数据抽取与转换方面的问题,如ETL流程、常见的ETL工具和技术等。面试者需要了解ETL流程的各个环节,以及常见的ETL工具和技术,如Informatica、DataStage、Talend等。 4. 数据质量与数据清洗:面试题中可能会询问关于数据质量和数据清洗方面的问题。面试者需要了解数据质量的概念和评估方法,并能够解释数据清洗的过程和常见的数据清洗技术。 最后,面试者在回答以上问题时,应尽量使用清晰简洁的语言,展现自己的理解和经验。同时,也可以结合自己实际工作经历或项目经验,提供具体的例子来支持自己的回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值