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