ETL面试题Word格式.docx
《ETL面试题Word格式.docx》由会员分享,可在线阅读,更多相关《ETL面试题Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
1:
模型映射:
从源模型到DW目标模型之间的映射类型有:
一对一:
一个源模型的数据实体只对应一个目标模型的数据实体。
如果源类型与目标类型一致,则直接映射。
如果两者间类型不一样,则必须经过转换映射。
一对多:
一个源模型的数据实体只对应多个目标模型的数据实体。
在同一个数据存储空间,常常出现会一个源实体拆分为多个目标实体的情况下。
在不同的存储空间中,结果会对应到不同的存储空间的实体。
一对零:
一个源模型的数据实体没有与目标模型的数据实体有对应,它不在我们处理的计划范围之内。
零对一:
一个目标模型的数据实体没有与任何一个源数据实体对应起来。
例如只是根据设计考虑,时间维表等。
多对一:
多个源模型的数据实体只对应一个目标模型的数据实体。
多对多:
多个源模型的数据实体对应多个目标模型的数据实体。
2:
属性映射
源实体的一个数据属性列只对应目标实体的一个数据属性列。
源实体的一个数据属性列只对应目标实体的多个数据属性列。
在同一个实体中,常常出现会一个源属性列拆分为目标的多个属性列情况。
在不同实体中,结果会对应到不同的实体的属列。
一个源实体的数据属性列没有与目标实体的数据属性列有对应,它不在我们处理的计划范围之内。
一个目标实体的数据属性列没有与任何一个源数据属性列对应起来。
例如只是根据设计考虑,维表和事实表中的时间戳属性,代理健等。
源实体的多个数据属性列只对应目标实体的一个数据属性列。
源实体的多个数据属性列对应目标实体的多个数据属性列。
作用:
1为开发者传送更为清晰的数据流信息。
映射关系包括有关数据在存储到DW前所经历的各种变化的信息,对于开发过程中数据的追踪审查过程非常重要。
2把ETL过程的信息归纳为元数据,将数据源结构,目标结构,数据转换规则,映射关系,数据的上下文等元数据保存在存储知识库中,为元数据消费者提供很好的参考信息,追踪数据来源与转换信息,有助于设计人员理解系统环境变化所造成的影响;
开发设计者可以轻松的答复以下的问题:
1、这些数据从那里来?
2、这样的结果通过什么样的计算和转化得来?
3、这些数据是如何组织的?
4、数据项之间有什么联系?
5、如果源发生变化,有那几个系统,目标受影响?
2.在数据仓库项目中,数据探索阶段的主要目的是什么?
Whataretheprimarygoalsofthedatadiscoveryphaseofthedatawarehouseproject?
在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。
对源系统的分析通常包括两个阶段,一个是数据探索阶段〔DataDiscoveryPhase〕,另一个是异常数据检测阶段。
数据探索阶段包括以下内容:
A、收集所有的源系统的文档、数据字典等内容。
B、收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。
C、判断出数据的起始来源〔System-of-Record〕。
D、通过数据概况〔DataProfiling〕来对源系统的数据关系进行分析。
数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。
3.如何确定起始来源数据?
Howisthesystem-of-recorddetermined?
如何确定起始来源数据?
这个问题的关键是理解什么是System-of-Record。
System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。
在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。
在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。
起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。
我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。
二、架构
4.在ETL过程中四个基本的过程分别是什么?
WhatarethefourbasicDataFlowstepsofanETLprocess?
在ETL过程中四个基本的过程分别是什么?
Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取〔extract〕、清洗〔clean〕、一致性处理〔confirm〕和交付〔delivery〕,简称为ECCD。
A、抽取阶段的主要任务是:
读取源系统的数据模型。
连接并访问源系统的数据。
变化数据捕获。
抽取数据到数据准备区。
B、清洗阶段的主要任务是:
清洗并增补列的属性。
清洗并增补数据结构。
清洗并增补数据规则。
增补复杂的业务规则。
建立源数据库描述数据质量。
将清洗后的数据保存到数据准备区。
C、一致性处理阶段的主要任务是:
一致性处理业务标签,即维度表中的描述属性。
一致性处理业务度量及性能指标,通常是事实表中的事实。
去除重复数据。
国际化处理。
将一致性处理后的数据保存到数据准备区。
D、交付阶段的主要任务是:
加载星型的和经过雪花处理的维度表数据。
产生日期维度。
加载退化维度。
加载子维度。
加载1、2、3型的缓慢变化维度。
处理迟到的维度和迟到的事实。
加载多值维度。
加载有复杂层级结构的维度。
加载文本领实到维度表。
处理事实表的代理键。
加载三个基本类型的事实表数据。
加载和更新聚集。
将处理好的数据加载到数据仓库。
从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。
换句话说,ETL系统的设计应该和目标表的设计同时开始。
通常来说,数据仓库架构师和ETL系统设计师是同一个人。
5.在数据准备区中允许使用的数据结构有哪些?
各有什么优缺点?
Whatarethepermissibledatastructuresforthedatastagingarea?
Brieflydescribethepros.andcons.ofeach.
在数据准备区中允许使用的数据结构有哪些?
A、固定格式的文本文件。
〔FlatFile〕
FlatFile指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。
这种文件格式经常用来进行数据交换。
用于保存数据不太合适。
B、XML数据集。
多用于数据交换,用户保存数据不太合适。
C、关系数据库的表。
保存数据的较理想选择。
D、独立的数据库表。
独立的数据库表一般指建立的表和其他表没有外键约束关系。
这样的表多用于数据处理。
E、三范式或者关系型模型。
F、非关系型数据源。
非关系型数据源一般包括COBOLcopybooks、VSAM文件、Flat文件、Spreadsheets等。
G、维度模型。
H、原子事实表和聚集事实表。
I、代理键查找表。
6.简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?
WhenshoulddatabesettodiskforsafekeepingduringtheETL?
简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?
Staging的意思就是将数据写到磁盘上。
出于安全及ETL能方便重新开始,在数据准备区〔StagingArea〕中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。
例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。
三、抽取
7.简述异构数据源中的数据抽取技术。
Describetechniquesforextractingfromheterogeneousdatasources.
简述异构数据源中的数据抽取技术。
在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。
在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。
对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立ODBC连接、定义接口文件、建立DBLINK等方法。
8.从ERP源系统中抽取数据最好的方法是什么?
WhatisthebestapproachforhandlingERPsourcedata?
从ERP源系统中抽取数据最好的方法是什么?
ERP系统的产生是为了解决企业内异构数据的整合。
这个问题也是数据仓库系统面临的主要问题。
ERP的解决方案是将企业内的各个应用〔包括销售、会计、人力资源、库存和产品等〕建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。
而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。
目前比较流行的ERP系统有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards〔大部分没接触过〕。
如果企业内只有一套ERP系统,那么数据就已经是一致的了,为数据抽取提供了方便。
如果企业内除了ERP外还有其他系统,则数据抽取会变得复杂。
因为目前的ERP系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。
直接在ERP系统上建立数据捕获和抽取是非常复杂的。
最好的方法是购买能针对ERP系统数据抽取提供功能的ETL工具,将ERP内部的复杂性留给ETL厂商处理。
9.简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。
ExplaintheprosandconsofcommunicatingwithdatabasesnativelyversusODBC.
简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。
通常连接数据库的方式分为两类,一类是直接连接,另一类是通过ODBC连接。
直接连接的方式主要是通过COBOL、PL/SQL、Transact-SQL等方式连接数据库。
这种方式的优点是运行性能高,可以使用DBMS提供的一些特殊功能。
缺点是通用性差。
ODBC是为windows应用程序访问数据库提供的一组接口。
ODBC的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。
ODBC方式的缺点是性能差。
使用ODBC连接方式实现ETL的话,在ETL程序和至少要有两层,分别是ODBCManager层和ODBCDriver层。
另外,使用ODBC方式不能使用DBMS提供的一些特殊的功能。
10.简述出三种变化数据捕获技术及其优缺点。
Describethreechangedatacapture(CDC)practicesandtheprosandconsofeach.
简述出三种变化数据捕获技术及其优缺点。
变化数据捕获〔CDC〕技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。
实现变化数据捕获时最理想的是找到源系统的DBA。
如果不能找到,就需要ETL项目组自己进行检测数据的变化。
下面是一些常用的技术。
A、采用审计列
审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。
应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。
采用这种方式进行变化数据捕获的优点是方便,容易实现。
缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。
B、数据库日志
DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。
它的优点是对数据库或访问数据库的操作系统的影响最小。
缺点是要求DBMS支持,并且对日志记录的格式非常了解。
C、全表扫描
全表扫描或者全表导出文件后进行扫描比照也可以进行变化数据捕获,尤其是捕获删除的数据时。
这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。
四、数据质量
11.数据质量检查的四大类是什么?
为每类提供一种实现技术。
Whatarethefourbroadcategoriesofdataqualitychecks?
Provideanimplementationtechniqueforeach.
数据质量检查的四大类是什么?
数据质量检查是ETL工作中非常重要的一步,主要关注一下四个方面。
1.正确性检查〔Corret〕
检查数据值及其描述是否真实的反映了客观事务。
例如地址的描述是否完全。
2.明确性检查〔Unambiguous〕
检查数据值及其描述是否只有一个意思或者只有一个解释。
例如地名相同的两个县需要加区分方法。
3.一致性检查〔Consistent〕
检查数据值及其描述是否统一的采用固定的约定符号来表示。
例如币别中人民币用'
CNY'
。
4.完全性检查〔Complete〕
完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。
例如检查是否有空值。
另一个是检查记录的合计值是否完全,有没有遗忘某些条件。
12.简述应该在ETL的哪个步骤来实现概况分析?
AtwhichstageoftheETLshoulddatabeprofiled?
简述应该在ETL的哪个步骤来实现概况分析?
数据概况分析是对源数据内容的概况进行分析,应该在项目的开始后尽早完成,它会对设计和实现有很大的影响。
在完成需求收集后就应该立即开始数据概况分析。
数据概况分析不光是对源系统的数据概况的定量描述,而且为ETL系统中需要建立的错误事件事实表〔ErrorEventTable〕和审计维度表〔AuditDimension〕打下基础,为其提供数据。
13.ETL项目中的数据质量部分核心的交付物有那些?
WhataretheessentialdeliverablesofthedataqualityportionofETL?
ETL项目中的数据质量部分核心的交付物有那些?
ETL项目中数据质量部分的核心的交付物主要有下面三个:
1.数据概况分析结果
数据概况分析结果是对源系统的数据状况的分析产物,包括如源系统中有多少个表,每个表有多少字段,其中多少为空,表间的外键关系是否存在等反映源系统数据质量的内容。
这些内容用来决定数据迁移的设计和实现,并提供应错误事件事实表和审计维度表需要的相关数据。
2.错误事件事实表
错误事件事实表及相关的一系列维度表是数据质量检查部分的一个主要交付物。
粒度是每一次数据质量检查中的错误信息。
相关维度包括日期维度表、迁移信息维度表、错误事件信息维度表,其中错误事件信息维度表中检查的类型、源系统的信息、涉及的表信息、检查使用的SQL等内容。
错误事件事实表不提供应前台用户。
3.审计维度表
审计维度表是给最终用户提供数据质量说明的一个维度表。
它描述了用户使用的事实表的数据来源,数据质量情况等内容。
14.如何来量化数据仓库中的数据质量?
Howcandataqualitybequantifiedinthedatawarehouse?
如何来量化数据仓库中的数据质量?
在数据仓库项目中,通常通过不规则数据的检测工作〔AnomalyDetection〕来量化源系统的数据质量。
除非成立专门的数据质量调查项目组,否则这个工作应该由ETL项目组完成。
通常可以采用分组SQL来检查数据是否符合域的定义规则。
对于数据量小的表,可以直接使用类似下面的SQL完成。
selectstate,count(*)fromorder_detailgroupbystate
对于数据量大的表,一般通过采样技术来减少数据量,然后进行不规则数据检测。
类似SQL如下。
selecta.*fromemployeea,(selectrownumcounter,a.*fromemployeea)Bwherea.emp_id=b.emp_idandmod(b.counter,trunc((selectcount(*)fromemployee)/1000,0))=0
如果可以采用专门的数据概况分析工具进行的话,可以减少很大的工作量。
五、建立映射
15.什么是代理键?
简述代理键替换管道如何工作。
16.为什么在ETL的过程中需要对日期进行特殊处理?
17.简述对一致性维度的三种基本的交付步骤。
18.简述三种基本领实表,并说明ETL的过程中如何处理它们。
19.简述桥接表是如何将维度表和事实表进行关联的?
20.迟到的数据对事实表和维度表有什么影响?
怎样来处理这个问题?
六、元数据
21.举例说明各种ETL过程中的元数据。
22.简述获取操作型元数据的方法。
23.简述共享业务元数据和技术元数据的方法。
七、优化/操作
24.简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。
25.简述ETL技术支持工作的四个级别的特点。
26.如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。
27.简述如何评估大型ETL数据加载时间。
八、实时ETL
28.简述在架构实时ETL时的可以选择的架构部件。
29.简述几种不同的实时ETL实现方法以及它们的适用范围。
1)触发器,在源系统建立触发器
〔建议:
源系统业务简单,负载小〕
2)日志,部分源系统数据库可以基于日志实时抽取〔建议:
源系统的数据库支持日志变化捕捉〕
3)ESB,企业信息总线,直接通过应用层取数据〔建议:
数据量小,而且源系统应用层提供接口〕
4)通过ODBC或JDBC直接取源系统数据,(建议使用:
源系统的数据安全性低,业务非核心〕
基于日志应当是比较好的一种方式。
30.简述实时ETL的一些难点及其实现方法。
1实时抽取,会造成对源系统的影响,如何使得影响最小
2源系统实时更新变化,数据仓库要求相对稳定,如何不被影响或影响最小
实现方式:
关键哪些需求需要实时,把这部分需求剥离出来,但是想方法实现,我碰到过一些,几乎都能迂回满足需求。