《2022年面试ETL题总汇 .pdf》由会员分享,可在线阅读,更多相关《2022年面试ETL题总汇 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ETL 面试题总汇一、分析1什么是逻辑数据映射?它对ETL 项目组的作用是什么?What is a logical data mapping and what does it mean to the ETL team?答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:目标表名:目标列名:目标表类型:注明是事实表、维度表或支架维度表。SCD 类型:对于维度表而言。三种SCD(Slowly Changing Dimension)技术SCD1 直
2、接修改原维表信息,不保存任何维历史信息。SCD2 创建新的记录而不删除或修改原有维信息。可通过为每条记录设定过期时间、生效时间两个字段来区分各历史记录和当前记录(历史记录的过期时间均早于当前记录的生效时间)。SCD3 在维表中定义历史信息字段,只保存有限的历史信息(此技术很少应用)源数据库名:源数据库的实例名,或者连接字符串。源表名:源列名:转换方法:需要对源数据做的操作,如Sum(amount)等。逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL 策略。在进行物理数据映射前进行逻辑数据映射对ETL 项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数
3、据迁移工具。-补充:逻辑数据映射分为两种:1:模型映射:从源模型到DW 目标模型之间的映射类型有:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -一对一:一个源模型的数据实体只对应一个目标模型的数据实体。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。一对多:一个源模型的数据实体只对应多个目标模型的数据实体。在同一个数据存储空间,常常出现会一个源实体拆分为多个目标实体的情况下。在不同的存储空间中,结果会对应到不同的存储空间的实体。一对零:一个源模型的数据实体没有与目标模型的数据实体有对应,它不在我们处理的计划范围之内。零对一:一个目标模
4、型的数据实体没有与任何一个源数据实体对应起来。例如只是根据设计考虑,时间维表等。多对一:多个源模型的数据实体只对应一个目标模型的数据实体。多对多:多个源模型的数据实体对应多个目标模型的数据实体。2:属性映射一对一:源实体的一个数据属性列只对应目标实体的一个数据属性列。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。一对多:源实体的一个数据属性列只对应目标实体的多个数据属性列。在同一个实体中,常常出现会一个源属性列拆分为目标的多个属性列情况。在不同实体中,结果会对应到不同的实体的属列。一对零:一个源实体的数据属性列没有与目标实体的数据属性列有对应,它不在我们处理的
5、计划范围之内。零对一:一个目标实体的数据属性列没有与任何一个源数据属性列对应起来。例如只是根据设计考虑,维表和事实表中的时间戳属性,代理健等。多对一:源实体的多个数据属性列只对应目标实体的一个数据属性列。多对多:源实体的多个数据属性列对应目标实体的多个数据属性列。作用:1 为开发者传送更为清晰的数据流信息。映射关系包括有关数据在存储到DW 前所经历的各种变化的信息,对于开发过程中数据的追踪审查过程非常重要。2 把 ETL 过程的信息归纳为元数据,将数据源结构,目标结构,数据转换规则,映射关系,数据的上下文等元数据保存在存储知识库中,为元数据消费者提供很好的参考信息,追踪数据来源与转换信息,有助
6、于设计人员理解系统环境变化所造成的影响;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -开发设计者可以轻松的回答以下的问题:1、这些数据从那里来?2、这样的结果通过什么样的计算和转化得来?3、这些数据是如何组织的?4、数据项之间有什么联系?5、如果源发生变化,有那几个系统,目标受影响?2在数据仓库项目中,数据探索阶段的主要目的是什么?What are the primary goals of the data discovery phase of the data warehouse project?答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统
7、的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。数据探索阶段包括以下内容:A、收集所有的源系统的文档、数据字典等内容。B、收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。C、判断出数据的起始来源(System-of-Record)。D、通过数据概况(Data Profiling)来对源系统的数据关系进行分析。数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。3如何确定起始来源数据?How is the system-of-record determined?如何确定起始来
8、源数据?答:这个问题的关键是理解什么是System-of-Record。System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在Kimball 的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据
9、的风险就会越大。二、架构4在 ETL 过程中四个基本的过程分别是什么?What are the four basic Data Flow steps of an ETL process?在 ETL 过程中四个基本的过程分别是什么?答:Kimball 数据仓库构建方法中,ETL 的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(confirm)和交付(delivery),简称为 ECCD。A、抽取阶段的主要任务是:读取源系统的数据模型。连接并访问源系统的数据。变化数据捕获。抽取数据到数据准备区。B、清洗阶段的主要任务是:清洗并增补列
10、的属性。清洗并增补数据结构。清洗并增补数据规则。增补复杂的业务规则。建立源数据库描述数据质量。将清洗后的数据保存到数据准备区。C、一致性处理阶段的主要任务是:一致性处理业务标签,即维度表中的描述属性。一致性处理业务度量及性能指标,通常是事实表中的事实。去除重复数据。国际化处理。将一致性处理后的数据保存到数据准备区。D、交付阶段的主要任务是:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -加载星型的和经过雪花处理的维度表数据。产生日期维度。加载退化维度。加载子维度。加载 1、2、3 型的缓慢变化维度。处理迟到的维度和迟到的事实。加载多值维度。加载有复杂层级结构的维度。加
11、载文本事实到维度表。处理事实表的代理键。加载三个基本类型的事实表数据。加载和更新聚集。将处理好的数据加载到数据仓库。从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL 系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和ETL系统设计师是同一个人。5在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?What are the permissible data structures for the data staging area?Briefly describe the pros.and cons.of each.在数据准备区中允许使用
12、的数据结构有哪些?各有什么优缺点?答:A、固定格式的文本文件。(Flat File)Flat File 指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。B、XML 数据集。多用于数据交换,用户保存数据不太合适。C、关系数据库的表。保存数据的较理想选择。D、独立的数据库表。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -独立的数据库表一般指建立的表和其他表没有外键约束关系。这样的表多用于数据处理。E、三范式或者关系型模型。F、非关系型数据源。非关系型数据源一般包括COBOL c
13、opy books、VSAM 文件、Flat 文件、Spreadsheets等。G、维度模型。H、原子事实表和聚集事实表。I、代理键查找表。6简述ETL 过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?When should data be set to disk for safekeeping during the ETL?简述 ETL 过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?答:Staging的意思就是将数据写到磁盘上。出于安全及ETL 能方便重新开始,在数据准备区(Staging Area)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该
14、以数据不落地方式直接进行ETL。例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL 过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。三、抽取7简述异构数据源中的数据抽取技术。Describe techniques for extracting from heterogeneous data sources.简述异构数据源中的数据抽取技术。答:在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。在对异构数据源进行
15、整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -如何进行数据抽取,通常的方法有建立ODBC 连接、定义接口文件、建立 DBLINK 等方法。8从 ERP 源系统中抽取数据最好的方法是什么?What is the best approach for handling ERP source data?从 ERP 源系统中抽取数据最好的方法是什么?答:ERP 系统的产生是为了解
16、决企业内异构数据的整合。这个问题也是数据仓库系统面临的主要问题。ERP 的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。目前比较流行的ERP 系统有 SAP、PeopleSoft、Oracle、Baan 和 J.D.EDwards(大部分没接触过)。如果企业内只有一套ERP 系统,那么数据就已经是一致的了,为数据抽取提供了方便。如果企业内除了ERP 外还有其他系统,则数据抽取会变得复杂。因为目前的ERP 系统的数据模型都非常复杂
17、,可能有几百几千个表,并且较难理解。直接在ERP 系统上建立数据捕获和抽取是非常复杂的。最好的办法是购买能针对ERP 系统数据抽取提供功能的ETL 工具,将 ERP 内部的复杂性留给ETL 厂商处理。9简述直接连接数据库和使用ODBC 连接数据库进行通讯的优缺点。Explain the pros and cons of communicating with databases natively versus ODBC.简述直接连接数据库和使用ODBC 连接数据库进行通讯的优缺点。答:通常连接数据库的方式分为两类,一类是直接连接,另一类是通过ODBC 连接。直接连接的方式主要是通过COBOL、P
18、L/SQL、Transact-SQL等方式连接数据库。这种方式的优点是运行性能高,可以使用DBMS 提供的一些特殊功能。缺点是通用性差。ODBC 是为 windows 应用程序访问数据库提供的一组接口。ODBC 的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。ODBC 方式的缺点是性能差。使用 ODBC连接方式实现ETL 的话,在 ETL 程序和至少要有两层,分别是 ODBC Manager层和 ODBC Driver 层。另外,使用ODBC 方式不能使用DBMS 提供的一些特殊的功能。10 简述出三种变化数据捕获技术及其优缺点。名师资料总结-精品资料欢迎下载-名师精心整理-第 7
19、 页,共 12 页 -Describe three change data capture(CDC)practices and the pros and cons of each.简述出三种变化数据捕获技术及其优缺点。答:变化数据捕获(CDC)技术是 ETL 工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是找到源系统的DBA。如果不能找到,就需要ETL 项目组自己进行检测数据的变化。下面是一些常用的技术。A、采用审计列审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。采用
20、这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。B、数据库日志DBMS 日志获取是一种通过DBMS 提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求DBMS 支持,并且对日志记录的格式非常了解。C、全表扫描全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。四、数据质量11数据质量检查的四大类是什么?为每类提供一种实现技术。What are th
21、e four broad categories of data quality checks?Provide an implementation technique for each.数据质量检查的四大类是什么?为每类提供一种实现技术。答:数据质量检查是ETL 工作中非常重要的一步,主要关注一下四个方面。1正确性检查(Corret)检查数据值及其描述是否真实的反映了客观事务。例如地址的描述是否完全。2明确性检查(Unambiguous)名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 12 页 -检查数据值及其描述是否只有一个意思或者只有一个解释。例如地名相同的两个县需要加区分方法
22、。3一致性检查(Consistent)检查数据值及其描述是否统一的采用固定的约定符号来表示。例如币别中人民币用CNY。4完全性检查(Complete)完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。例如检查是否有空值。另一个是检查记录的合计值是否完全,有没有遗忘某些条件。12 简述应该在ETL 的哪个步骤来实现概况分析?At which stage of the ETL should data be profiled?简述应该在ETL 的哪个步骤来实现概况分析?答:数据概况分析是对源数据内容的概况进行分析,应该在项目的开始后尽早完成,它会对设计和实现有很大的影响。在完成需求
23、收集后就应该立即开始数据概况分析。数据概况分析不光是对源系统的数据概况的定量描述,而且为ETL 系统中需要建立的错误事件事实表(Error Event Table)和审计维度表(Audit Dimension)打下基础,为其提供数据。13 ETL 项目中的数据质量部分核心的交付物有那些?What are the essential deliverables of the data quality portion of ETL?ETL 项目中的数据质量部分核心的交付物有那些?答:ETL 项目中数据质量部分的核心的交付物主要有下面三个:1数据概况分析结果数据概况分析结果是对源系统的数据状况的分析产
24、物,包括如源系统中有多少个表,每个表有多少字段,其中多少为空,表间的外键关系是否存在等反映源系统数据质量的内容。这些内容用来决定数据迁移的设计和实现,并提供给错误事件事实表和审计维度表需要的相关数据。名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 12 页 -2错误事件事实表错误事件事实表及相关的一系列维度表是数据质量检查部分的一个主要交付物。粒度是每一次数据质量检查中的错误信息。相关维度包括日期维度表、迁移信息维度表、错误事件信息维度表,其中错误事件信息维度表中检查的类型、源系统的信息、涉及的表信息、检查使用的 SQL 等内容。错误事件事实表不提供给前台用户。3审计维度表审计维
25、度表是给最终用户提供数据质量说明的一个维度表。它描述了用户使用的事实表的数据来源,数据质量情况等内容。14 如何来量化数据仓库中的数据质量?How can data quality be quantified in the data warehouse?如何来量化数据仓库中的数据质量?答:在数据仓库项目中,通常通过不规则数据的检测工作(Anomaly Detection)来量化源系统的数据质量。除非成立专门的数据质量调查项目组,否则这个工作应该由ETL 项目组完成。通常可以采用分组SQL 来检查数据是否符合域的定义规则。对于数据量小的表,可以直接使用类似下面的SQL 完成。select sta
26、te,count(*)from order_detail group by state 对于数据量大的表,一般通过采样技术来减少数据量,然后进行不规则数据检测。类似SQL 如下。select a.*from employee a,(select rownum counter,a.*from employee a)B wherea.emp_id=b.emp_id and mod(b.counter,trunc(select count(*)from employee)/1000,0)=0 如果可以采用专门的数据概况分析工具进行的话,可以减少很大的工作量。五、建立映射15 什么是代理键?简述代理键
27、替换管道如何工作。16 为什么在ETL 的过程中需要对日期进行特殊处理?17 简述对一致性维度的三种基本的交付步骤。18 简述三种基本事实表,并说明ETL 的过程中如何处理它们。19 简述桥接表是如何将维度表和事实表进行关联的?名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 12 页 -20 迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题?六、元数据21 举例说明各种ETL 过程中的元数据。22 简述获取操作型元数据的方法。23 简述共享业务元数据和技术元数据的方法。七、优化/操作24 简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载
28、。25 简述 ETL 技术支持工作的四个级别的特点。26 如果 ETL 进程运行较慢,需要分哪几步去找到ETL 系统的瓶颈问题。27 简述如何评估大型ETL 数据加载时间。八、实时ETL 28 简述在架构实时ETL 时的可以选择的架构部件。29 简述几种不同的实时ETL 实现方法以及它们的适用范围。1)触发器,在源系统建立触发器(建议:源系统业务简单,负载小)2)日志,部分源系统数据库可以基于日志实时抽取(建议:源系统的数据库支持日志变化捕捉)3)ESB,企业信息总线,直接通过应用层取数据(建议:数据量小,而且源系统应用层提供接口)4)通过 ODBC 或 JDBC 直接取源系统数据,(建议使用:源系统的数据安全性低,业务非核名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 12 页 -心)基于日志应当是比较好的一种方式。30 简述实时ETL 的一些难点及其实现方法。1 实时抽取,会造成对源系统的影响,如何使得影响最小2 源系统实时更新变化,数据仓库要求相对稳定,如何不被影响或影响最小实现方式:关键哪些需求需要实时,把这部分需求剥离出来,但是想办法实现,我碰到过一些,几乎都能迂回满足需求。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 12 页 -