收藏 分享(赏)

数据仓库架构师面试题.docx

上传人:scg750829 文档编号:5823884 上传时间:2019-03-18 格式:DOCX 页数:29 大小:34.95KB
下载 相关 举报
数据仓库架构师面试题.docx_第1页
第1页 / 共29页
数据仓库架构师面试题.docx_第2页
第2页 / 共29页
数据仓库架构师面试题.docx_第3页
第3页 / 共29页
数据仓库架构师面试题.docx_第4页
第4页 / 共29页
数据仓库架构师面试题.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、数据仓库(商业智能)/ETL 架构师面试题(20150510 )1 / 29数据仓库(商业智能)/ETL 架构师面试题1. What is a logical data mapping and what does it mean to the ETL team?什么是逻辑数据映射?它对 ETL 项目组的作用是什么?答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或 Excel 的格式保存如下的信息:目标表名:目标列名:目标表类型:注明是事实表、维度表或支架维度表。SCD

2、类型:对于维度表而言。源数据库名:源数据库的实例名,或者连接字符串。源表名:源列名:转换方法:需要对源数据做的操作,如 Sum(amount)等。逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的 ETL策略。在进行物理数据映射前进行逻辑数据映射对 ETL 项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。2. What are the primary goals of the data discovery phase of the data warehouse project?数据仓库(商业智能)/ETL 架构师面试题(20150510 )2

3、/ 29在数据仓库项目中,数据探索阶段的主要目的是什么?答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。数据探索阶段包括以下内容:1收集所有的源系统的文档、数据字典等内容。2收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。3判断出数据的起始来源(System-of-Record )。4通过数据概况(Data Profiling)来对源系统的数据关系进行分析。数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础

4、。3. How is the system-of-record determined?如何确定起始来源数据?答:这个问题的关键是理解什么是 System-of-Record。System-of-Record 和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在 Kimball 的体系中,System-of-Record 是指最初产生数据的地方,即数据的起始来源。在较大的企数据仓库(商业智能)/ETL 架构师面试题(20150510 )3 / 29业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。起始来源数据对数据仓库的建

5、立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。Architecture4. What are the four basic Data Flow steps of an ETL process?在 ETL 过程中四个基本的过程分别是什么?答:Kimball 数据仓库构建方法中,ETL 的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为 ECCD。1抽取阶段的主要任务是:读取源系统的数据模型。连接并访问源系

6、统的数据。变化数据捕获。抽取数据到数据准备区。2清洗阶段的主要任务是:数据仓库(商业智能)/ETL 架构师面试题(20150510 )4 / 29清洗并增补列的属性。清洗并增补数据结构。清洗并增补数据规则。增补复杂的业务规则。建立元数据库描述数据质量。将清洗后的数据保存到数据准备区。3一致性处理阶段的主要任务是:一致性处理业务标签,即维度表中的描述属性。一致性处理业务度量及性能指标,通常是事实表中的事实。去除重复数据。国际化处理。将一致性处理后的数据保存到数据准备区。4交付阶段的主要任务是:加载星型的和经过雪花处理的维度表数据。产生日期维度。加载退化维度。加载子维度。加载 1、2 、3 型的缓

7、慢变化维度。处理迟到的维度和迟到的事实。加载多值维度。加载有复杂层级结构的维度。加载文本事实到维度表。数据仓库(商业智能)/ETL 架构师面试题(20150510 )5 / 29处理事实表的代理键。加载三个基本类型的事实表数据。加载和更新聚集。将处理好的数据加载到数据仓库。从这个任务列表中可以看出,ETL 的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL 系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和 ETL 系统设计师是同一个人。5. What are the permissible data structures for the data staging are

8、a? Briefly describe the pros and cons of each.在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?答:1固定格式的文本文件。(Flat File)Flat File 指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。2XML 数据集。多用于数据交换,用户保存数据不太合适。3关系数据库的表。保存数据的较理想选择。4独立的数据库表。数据仓库(商业智能)/ETL 架构师面试题(20150510 )6 / 29独立的数据库表一般指建立的表和其他表没有外键约束关系

9、。这样的表多用于数据处理。5三范式或者关系型模型。6非关系型数据源。非关系型数据源一般包括 COBOL copy books、VSAM 文件、Flat 文件、Spreadsheets 等。7维度模型。8原子事实表和聚集事实表。9代理键查找表。6. When should data be set to disk for safekeeping during the ETL?简述 ETL 过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?答:Staging 的意思就是将数据写到磁盘上。出于安全及 ETL 能方便重新开始,在数据准备区(Staging Area)中的每个步骤中都应该将数据写到磁盘上,

10、即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行 ETL。例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当 ETL 过程出现错误而失败时,我们就可以从这些文本文件开始 ETL,而不需要再次影响源系统。数据仓库(商业智能)/ETL 架构师面试题(20150510 )7 / 29Extract7. Describe techniques for extracting from heterogeneous data sources.简述异构数据源中的数据抽取技术。答:在数据仓库项目中,需

11、要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立 ODBC 连接、定义接口文件、建立 DBLINK 等方法。8. What is the best approach for handling ERP source data?从 ERP 源系统中抽取数据最好的方法是什么?答:ERP 系统的产生是为了解决企业

12、内异构数据的整合。这个问题也是数据仓库系统面临的主要问题。ERP 的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即数据仓库(商业智能)/ETL 架构师面试题(20150510 )8 / 29在应用操作层将企业内的数据进行了一致性处理。而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。目前比较流行的 ERP 系统有 SAP、PeopleSoft、Oracle、Baan 和 J.D.EDwards(大部分没接触过)。如果企业内只有一套 ERP 系统,那么数据就已经是一致的了,为数据抽取提供了方便。如果企业内除了 ERP 外还

13、有其他系统,则数据抽取会变得复杂。因为目前的 ERP 系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。直接在 ERP 系统上建立数据捕获和抽取是非常复杂的。最好的办法是购买能针对 ERP 系统数据抽取提供功能的 ETL 工具,将 ERP 内部的复杂性留给 ETL厂商处理。9. Explain the pros and cons of communicating with databases natively versus ODBC.简述直接连接数据库和使用 ODBC 连接数据库进行通讯的优缺点。答:通常连接数据库的方式分为两类,一类是直接连接,另一类是通过 ODBC连接。直接连接的

14、方式主要是通过 COBOL、PL/SQL 、Transact-SQL 等方式连接数据库。这种方式的优点是运行性能高,可以使用 DBMS 提供的一些特殊功能。缺点是通用性差。ODBC 是为 windows 应用程序访问数据库提供的一组接口。ODBC 的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。ODBC 方式的缺点是性能差。使用 ODBC 连接方式实现 ETL 的话,在 ETL 程序和至少要有两层,数据仓库(商业智能)/ETL 架构师面试题(20150510 )9 / 29分别是 ODBC Manager 层和 ODBC Driver 层。另外,使用 ODBC 方式不能使用 DBM

15、S 提供的一些特殊的功能。10. Describe three change data capture (CDC) practices and the pros and cons of each.简述出三种变化数据捕获技术及其优缺点。答:变化数据捕获(CDC )技术是 ETL 工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是找到源系统的 DBA。如果不能找到,就需要 ETL 项目组自己进行检测数据的变化。下面是一些常用的技术。1采用审计列审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器

16、来更新这些字段。采用这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。2数据库日志DBMS 日志获取是一种通过 DBMS 提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求 DBMS 支持,并且对日志记录的格式非常了解。3全表扫描数据仓库(商业智能)/ETL 架构师面试题(20150510 )10 / 29全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率

17、比较差。Data Quality11. What are the four broad categories of data quality checks? Provide an implementationtechnique for each.数据质量检查的四大类是什么?为每类提供一种实现技术。答:数据质量检查是 ETL 工作中非常重要的一步,主要关注一下四个方面。1正确性检查(Corret)检查数据值及其描述是否真实的反映了客观事务。例如地址的描述是否完全。2明确性检查(Unambiguous )检查数据值及其描述是否只有一个意思或者只有一个解释。例如地名相同的两个县需要加区分方法。3一致

18、性检查(Consistent )检查数据值及其描述是否统一的采用固定的约定符号来表示。例如币别中人民币用CNY。4完全性检查(Complete)数据仓库(商业智能)/ETL 架构师面试题(20150510 )11 / 29完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。例如检查是否有空值。另一个是检查记录的合计值是否完全,有没有遗忘某些条件。12. At which stage of the ETL should data be profiled?简述应该在 ETL 的哪个步骤来实现概况分析?答:数据概况分析是对源数据内容的概况进行分析,应该在项目的开始后尽早完成,它会对设

19、计和实现有很大的影响。在完成需求收集后就应该立即开始数据概况分析。数据概况分析不光是对源系统的数据概况的定量描述,而且为 ETL 系统中需要建立的错误事件事实表(Error Event Table)和审计维度表(Audit Dimension)打下基础,为其提供数据。13. What are the essential deliverables of the data quality portion of ETL?ETL 项目中的数据质量部分核心的交付物有那些?答:ETL 项目中数据质量部分的核心的交付物主要有下面三个:1数据概况分析结果数据概况分析结果是对源系统的数据状况的分析产物,包括如源

20、系统中有多少个表,每个表有多少字段,其中多少为空,表间的外键关系是否存在等反映源数据仓库(商业智能)/ETL 架构师面试题(20150510 )12 / 29系统数据质量的内容。这些内容用来决定数据迁移的设计和实现,并提供给错误事件事实表和审计维度表需要的相关数据。2错误事件事实表错误事件事实表及相关的一系列维度表是数据质量检查部分的一个主要交付物。粒度是每一次数据质量检查中的错误信息。相关维度包括日期维度表、迁移信息维度表、错误事件信息维度表,其中错误事件信息维度表中检查的类型、源系统的信息、涉及的表信息、检查使用的 SQL 等内容。错误事件事实表不提供给前台用户。3审计维度表审计维度表是给

21、最终用户提供数据质量说明的一个维度表。它描述了用户使用的事实表的数据来源,数据质量情况等内容。14. How can data quality be quantified in the data warehouse?如何来量化数据仓库中的数据质量?答:在数据仓库项目中,通常通过不规则数据的检测工作(Anomaly Detection)来量化源系统的数据质量。除非成立专门的数据质量调查项目组,否则这个工作应该由 ETL 项目组完成。通常可以采用分组 SQL 来检查数据是否符合域的定义规则。对于数据量小的表,可以直接使用类似下面的 SQL 完成。select state, count(*) fro

22、m order_detail group by state数据仓库(商业智能)/ETL 架构师面试题(20150510 )13 / 29对于数据量大的表,一般通过采样技术来减少数据量,然后进行不规则数据检测。类似 SQL 如下。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如果可以采用专门的数据概况分析工具进

23、行的话,可以减少很大的工作量。Building mappings15. What are surrogate keys? Explain how the surrogate key pipeline works.什么是代理键?简述代理键替换管道如何工作。答:在维度表的迁移过程中,有一种处理方式是使用无意义的整型值分配给维度记录并作为维度记录的主键,这些作为主键的整型值称为代理键(Surrogate Key)。使用代理键有很多好处,如隔离数据仓库与操作环境,历史记录的保存,查询速度快等。同时,在事实表的迁移过程中,为了保证参照完整性也需要进行代理键的替换工作。为了代理键替换的效率高一些,我们通常

24、在数据准备区中建立代理键查找表(Surrogate Mapping Table or Lookup Table)。代理键查找表中保存最新的代理键和自然键的对应关系。在对事实表进行代理键替换时,为了保证效率高,需要把代理键查找表中的数据加载到内存中,并可以开多线程依次替换同数据仓库(商业智能)/ETL 架构师面试题(20150510 )14 / 29一记录的中的不同代理键,使一条事实记录在所有的代理键都替换完后再写如磁盘中,这样的替换过程称为代理键替换管道(Surrogate Key Pipeline)。16. Why do dates require special treatment dur

25、ing the ETL process?为什么在 ETL 的过程中需要对日期进行特殊处理?答:在数据仓库的项目中,分析是主导需求,而基于日期和时间的分析更是占了很大的比重。而在操作型源系统中,日期通常都是 SQL 的 DATETIME 型的。如果在分析时,使用 SQL 对这种类型的字段临时处理会出现一些问题,如效率很差,不同的用户会采用不同的格式化方法导致报表不统一。所以,在数据仓库的建模时都会建立日期维度表和时间维度表,将用到的和日期相关的描述都冗余到该表中。但是,并不是所有的日期都被转化为日期维度表的外键。日期维度表中的记录是有限的,有些日期如生日等可能会比日期维度表中记录的最小日期还要早

26、,这类字段可以直接在数据仓库中保存 SQL 的 DATETIME 型。而像购买日期等与分析的业务紧密相关的通常都需要转化为日期维度表的外键,可以用日期维度表中统一的描述信息进行分析。17. Explain the three basic delivery steps for conformed dimensions.简述对一致性维度的三种基本的交付步骤。数据仓库(商业智能)/ETL 架构师面试题(20150510 )15 / 29答:数据整合的关键就是生成一致性维度,再通过一致性维度将来自不同数据源的事实数据合并到一起,供分析使用。通常来说,生成一致性维度有如下三个步骤:1.标准化(Stand

27、ardizing)标准化的目的是使不同数据源的数据编码方式,数据格式等相同,为下一步数据匹配打下基础。2.匹配(Matching and Deduplication)数据匹配的工作有两种,一种是将不同数据源的标识同一事物的不同属性匹配到一起,是数据更完善;另一种是将不同数据源的相同数据标识成重复,为下一步的筛选打下基础。3.筛选(Surviving )数据筛选的主要目的是选定一致性维度作为主数据(Master Data),也就是最终交付的一致性维度数据。18. Name the three fundamental fact grains and describe an ETL approach

28、 for each.简述三种基本事实表,并说明 ETL 的过程中如何处理它们。答:事实表从粒度的角色来划分可以分为三类,分别是交易粒度事实表(Transaction Grain)、周期快照粒度事实表(Periodic Snapshot)和累计快照粒度事实表(Accumulating Snapshot)。在事实表的设计时,一定要注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。数据仓库(商业智能)/ETL 架构师面试题(20150510 )16 / 29交易粒度事实表的来源伴随交易事件成生的数据,例如销售单。在 ETL 过程中,以原子粒度直接进行迁移。周期快照事实表是用来记

29、录有规律的,固定时间间隔的业务累计数据,例如库存日快照。在 ETL 过程中,以固定的时间间隔生成累计数据。累积快照事实表用来记录具有时间跨度的业务处理过程的整个过程的信息。在ETL 过程中,随着业务处理过程的步骤逐步完善该表中的记录。19. How are bridge tables delivered to classify groups of dimension records associated to a singlefact?简述桥接表是如何将维度表和事实表进行关联的?答:桥接表(Bridge Table)是维度建模中的一类比较特殊的表。在数据仓库的建模时,会遇到具有层次结构的维度表

30、,对于这样的表有一种建模方式是建立父子表,即每条记录上包括一个指向其父记录的字段。这种父子表的建立在层级深度可变时尤其有用,是一个紧凑而有效的建模方式。但是这种建模方式也有缺点,就是用标准 SQL 很难对递归结构进行操作。与这种递归结构的父子表不同,桥接表采用不同的建模方式也可以表示这种层级结构。桥接表是建立在维度表和事实表中间的一个具有较多冗余信息的表,其中的记录包含层级结构中节点到其下面每个节点的路径。表结构如下所示:父关键字子关键字父层数数据仓库(商业智能)/ETL 架构师面试题(20150510 )17 / 29层名底端标识顶端标识在桥接表中,节点与其下面的任意一个节点都建立一个关联记

31、录保存在表中,即父子关系不再局限在相邻层,如第一层与第三层同样有父子关系,通过父层数可以区分相隔了几层。这样,可以通过父层数和父子关系来进行层级结构的查询。当然,桥接表也不是一个完备的解决方案,它只能是在某些情况下是查询变得容易。20. How does late arriving data affect dimensions and facts? Share techniques for handling each.迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题?答:迟到的数据分为两种,一种是迟到的事实表数据,另一种是迟到的维度表数据。对于迟到的事实记录,我们可以插入到相应的事实表

32、中。在插入的同时,还需要做一些处理。首先,对于具有 SCD TYPE 2 型维度的事实记录需要在插入前判断该事实记录的发生日期到目前为止,维度记录是否发生过变化,如果有变化,该事实记录需要对应到事实发生时的维度记录上。其次,在事实记录插入完成后,与该事实表相关的聚集事实表和合并事实表需要做相应的处理。数据仓库(商业智能)/ETL 架构师面试题(20150510 )18 / 29对于迟到的维度记录,我们需要做的处理要复杂一些。首先,如果迟到的维度记录是第一次进入数据仓库中,那么需要在维度表中生成一条维度记录,并将与该维度记录对应的事实记录的外键进行更新。其次,如果迟到的维度记录是对原维度进行的修

33、改,那么我们在维度表中生成一条新记录的同时,还需要找到维度本次变化到下次变化间的事实行,并将其维度外键更新为新加维度的代理关键字。Metadata21. Describe the different types of ETL metadata and provide examples of each.举例说明各种 ETL 过程中的元数据。答:元数据是 ETL 项目组面对的一个非常重要的主题,对于整个数据仓库项目也是非常重要的一部分。对于元数据的分类和使用没有很确定的定义。通常来说,我们可以把元数据分为三类,分别为业务元数据(Business Metadata),技术元数据(Technical

34、Metadata)和过程处理元数据(Process Execution Metadata)。业务元数据,是从业务的角度对数据的描述。通常是用来给报表工具和前端用户对数据进行分析和使用提供帮助。技术元数据,是从技术的角度对数据的描述。通常包括数据的一些属性,如数据类型、长度、或者数据概况分析后一些结果。数据仓库(商业智能)/ETL 架构师面试题(20150510 )19 / 29过程处理元数据,是 ETL 处理过程中的一些统计数据,通常包括有多少条记录被加载,多少条记录被拒绝接受等数据22. Share acceptable mechanisms for capturing operationa

35、l metadata.简述获取操作型元数据的方法。答:操作型元数据(Operational Metadata),也就是过程处理元数据,记录的是 ETL 过程中数据迁移情况,如上次迁移日期,加载的记录数等信息。这部分元数据在 ETL 加载失败时会非常重要。一般来说,对于使用 ETL 工具的数据加载,像迁移调度时间、迁移调度顺序,失败处理等内容都可以在由在迁移工具中定义生成。像上次迁移日期等数据可以建表保存。如果是手工编写 ETL 程序的话,操作型元数据的处理会麻烦一些,需要自己来获取和存储。获取的方式,不同的编程方式会不尽相同。23. Offer techniques for sharing b

36、usiness and technical metadata.Optimization/Operations简述共享业务元数据和技术元数据的方法。答:为了能共享各种元数据,在数据仓库的构建过程中必须要有一些元数据标准,并在实际开发中遵守这些标准。这些标准包括元数据命名规则、存储规则数据仓库(商业智能)/ETL 架构师面试题(20150510 )20 / 29及共享规则等内容。有关元数据标准的内容可以参看公共仓库元模型(Common Warehouse Metamodel,CWM )的相关资料 。在最基本的层面上,企业应该在下面三个方面制定好标准。1命名规则命名规则应该在 ETL 组开始编码前制

37、定好,范围包括表、列、约束、索引等等数据库对象以及其他一些编码规则。如果企业有自己的命名规则,ETL 组应该遵守企业的命名规则。当企业的命名规则不能完全满足需求时,ETL 组可以制定补充规则或者新的规则。对企业命名规则的改变需要有详细的文档记录,并提交企业相关部门审核。2架构在 ETL 组开始工作前,架构应该先被设计好。例如 ETL 引擎是和数据仓库放在同一台服务器上还是单独设立服务器;数据准备区是建立成临时的还是持久的;数据仓库是基于维度建模的还是 3NF 建模的。并且这些内容应该有详细的文档记录。3基础结构系统的基础结构也应该先确定好。例如解决方案是基于 Windows 的还是基于 UNI

38、X 的。这些企业基础结构元数据应该在 ETL 组开始工作前制定好。这些内容也应该有详细的文档记录。在 ETL 的开发中,制定好元数据标准并能很好的遵守,那么建立好的数据仓库的元数据就可以很好的完成共享功能。数据仓库(商业智能)/ETL 架构师面试题(20150510 )21 / 2924. State the primary types of tables found in a data warehouse and the order which they must be loaded to enforce referential integrity.简述数据仓库中的表的基本类型,以及为了保证

39、引用完整性该以什么样的顺序对它们进行加载。答:数据仓库中的表的基本类型有维度表、事实表、子维度表、桥接表等几类。其中子维度表即雪花模型由支架维度技术处理,桥接表用来处理多值维度或层级结构。数据仓库中需要加载的各类表之间有相互依赖的关系,所以加载时需要以一定的顺序进行加载。下面是一些加载的基本原则:子维度表加载成功后,再加载维度表。维度表加载成功后,再加载桥接表。子维度表、维度表和桥接表都加载成功后,再加载事实表。这个加载顺序可以通过主外键的关系来确定。(注意,此回答为总线架构的数据仓库的表的加载顺序。)25. What are the characteristics of the four l

40、evels of the ETL support model?简述 ETL 技术支持工作的四个级别的特点。答:数据仓库上线后,ETL 组需要为保证 ETL 工作的正常运行提供技术支持。通常这种技术支持工作分为四个级别。1第一级别的技术支持通常是电话支持人员,属于技术支持服务窗口(Help Desk)类型。如果数据迁移出现错误或者用户发现数据有问题,问题通过电话数据仓库(商业智能)/ETL 架构师面试题(20150510 )22 / 29反映到第一级别的技术支持处。第一级别支持人员通过 ETL 项目组提供的一些问题的解决办法尽可能的解决发现的问题,阻止问题升级。2第二级别的技术支持通常是系统管理

41、员和 DBA。如果第一级别不能解决问题,问题反映到第二级别。第二级别的人员通常技术上比较强,硬件基础结构和软件架构上的问题都可以解决。3第三级别的技术支持通常是 ETL 项目负责人。如果第二级别不能解决问题,问题反映到第三级别。ETL 项目负责人应该具备足够的知识,能够解决生产环境中的绝大部分问题。ETL 项目负责人在必要时可以和开发人员或者外部产品提供商对某些问题进行交流,以便找出解决问题的办法。4第四级别的技术支持通常是 ETL 的实际开发人员。如果第三级别不能解决问题,问题反映到第四级别。ETL 的实际开发人员可以对代码进行跟踪分析并找到问题的解决办法。如果问题出现在产品供应商的应用中,

42、还需要供应商提供技术支持。在小一些的数据仓库环境中,也是通常的情况下,第三级别和第四级别可以合并在一起。合并后对第二级别的要求会高一些。不建议每次出现问题都找 ETL的开发人员。第一级别的技术支持人员不应该仅仅提供电话支持服务,在将问题反映给下一个级别前,要尽自己的能力去解决问题。26. What steps do you take to determine the bottleneck of a slow running ETL process?如果 ETL 进程运行较慢,需要分哪几步去找到 ETL 系统的瓶颈问题。数据仓库(商业智能)/ETL 架构师面试题(20150510 )23 / 2

43、9答:ETL 系统遇到性能问题,运行很慢是一件较常见的事情,这时要做的是逐步找到系统的瓶颈在哪里。首先要确定是由 CPU、内存、 I/O 和网络等产生的瓶颈,还是由 ETL 处理过程产生的瓶颈。如果环境没有瓶颈,那么需要分析 ETL 的代码。这时,我们可以采用排除的方法,需要隔离不同的操作,并分别对它们进行测试。如果是采用纯手工编码方式的 ETL 处理,隔离不同的操作要麻烦一些,这时需要根据编码的实际情况来处理。如果是采用 ETL 工具的话,目前的 ETL 工具应该都有隔离不同处理的功能,隔离起来相对容易一些。分析最好从抽取操作开始,然后依次分析各种计算、查找表、聚集、过滤等转换环节的处理操作

44、,最后分析加载操作。实际的处理中,可以按照下面的七个步骤来查找瓶颈。1隔离并执行抽取查询语句。先将抽取部分隔离出来,去掉转换和交付,可以将数据直接抽取到文件中。如果这一步效率很差,基本确定是抽取 SQL 的问题。从经验来看,未经调优的 SQL 是一个最常见的导致 ETL 效率差的原因。如果这步没有问题进入第二步。2去掉过滤条件。这一条是针对全抽取,然后在 ETL 处理中进行过滤的处理方式而言。在 ETL处理中做过滤处理有时会产生瓶颈。可以先将过滤去掉,如果确定为这个原因,可以考虑在抽取时进行数据过滤。3排除查找表的问题。数据仓库(商业智能)/ETL 架构师面试题(20150510 )24 /

45、29参照数据在 ETL 处理过程中通常会加载到内存中,目的是做代码和名称的查找替换,也称查找表。有时查找表的数据量过大也会产生瓶颈。可以逐个隔离查找表,来确定是否是这里出现问题。注意要将查找表的数据量降到最低,通常一个自然键一个代理键就可以,这样可以减少不必要的数据 I/O。4分析排序和聚集操作。排序和聚集操作都是非常费资源的操作。对这部分隔离,来判断是否因为它们引起性能问题。如果确定是因为这个,需要考虑是否可以将排序和聚集处理移出数据库和 ETL 工具,移到操作系统中来处理。5隔离并分析每一个计算和转换处理。有时转换过程中的处理操作也会引起 ETL 工作的性能。逐步隔离移除它们来判断哪里出了

46、问题。要注意观察像默认值、数据类型转换等操作。6隔离更新策略。更新操作在数据量非常大时是性能非常差的。隔离这部分,看看是否这里出了问题。如果确定是因为大批量更新出了性能问题。应该考虑将 insert、update 和delete 分开处理。7检测加载数据的数据库 I/O。如果前面各部分都没有问题,最后需要检测是目标数据库的性能问题。可以找个文件代替数据库,如果性能提高很多,需要仔细检测目标数据库的加载过程中的操作。例如是否关闭了所有的约束,关闭了所有的索引,是否使用了批量加载工具。如果性能还没有提高,可以考虑使用并行加载策略。27. Describe how to estimate the l

47、oad time of a large ETL job.数据仓库(商业智能)/ETL 架构师面试题(20150510 )25 / 29Real Time ETL简述如何评估大型 ETL 数据加载时间。答:评估一个大型的 ETL 的数据加载时间是一件很复杂的事情。数据加载分为两类,一类是初次加载,另一类是增量加载。在数据仓库正式投入使用时,需要进行一次初次加载,而这次初次加载需要的时间一般较难预料。在数据仓库的日常使用和维护中,每天需要对数据仓库进行增量加载。增量加载的数据量要比初次加载小很多。下面以初次加载为例来谈谈如何评估大型 ETL 的数据加载时间。对初次加载的加载时间进行预估,需要将整个

48、 ETL 过程分成抽取、转换和加载三部分,分别对这三部分进行评估。1对抽取时间的评估。抽取通常占用的 ETL 的大部分时间,而且对这部分需要时间的评估也是非常困难的。为了对这部分时间进行评估,我们可以将查询时间分成两部分,一部分是查询响应时间,另一部分是数据返回时间。查询响应时间指从查询开始执行到结果开始返回这段时间。数据返回时间指第一条记录返回到最后一条记录返回的时间。另外,初次加载的数据量太大,我们可以考虑选择其中的一部分来评估整体的时间,实际处理中,可以选择事实表的一个分区。一般来说各个分区的数据量差不多,评估出一个分区的时间,乘上分区数可以作为整体的评估时间。2对数据转换时间的评估数据

49、转换工作通常在内存中完成,一般来说都有着非常快的速度,占总体时间的比重比较小。如果要评估这部分需要的时间的话,最简单的评估方法是先评数据仓库(商业智能)/ETL 架构师面试题(20150510 )26 / 29估出抽取时间和加载时间,然后运行整个过程,用整体时间减去抽取时间和加载时间。3对加载时间的评估很多原因都可能影响加载时间,其中最重要的两个分别是索引和日志。对加载时间的评估,也可以像评估抽取时间时一样,选择加载数据的一部分,如 1/200 进行加载,计算出时间后乘以 200 来作为整体加载时间。总之,大型 ETL 数据的加载时间的评估是很困难的,我们采用的方法主要是类比评估,即选择一部分数据减少整体时间进行评估。在进行评估时要注意到测试环境和生产环境的配置等的差别会引起评估结果的偏差。虽然这种对时间的评估一定会有误差,但是可以做为整体加载时间的一个参考。28. Describe the architecture options for implementing real-time ETL.简述在架构实时 ETL 时的可以选择的架构部件。答:在建立数据仓库时,ETL 通常都采用批处理的方式,一般来说是每天的夜间进行跑批。随着数据仓库技术的逐步成熟,企业对数据仓库的时间延迟有了更高的要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报