您的当前位置:首页面试题-ETL

面试题-ETL

2022-06-26 来源:乌哈旅游
1. What are the primary goals of the data discovery phase of the data warehouse project?

在数据仓库项目中,数据探索阶段的主要目的是什么? 答:

在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。 数据探索阶段包括以下内容:

1.收集所有的源系统的文档、数据字典等内容。

2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。 3.判断出数据的起始来源(System-of-Record)。

4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。 数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。

2. What are the four basic Data Flow steps of an ETL process? 在ETL过程中四个基本的过程分别是什么?

答:

Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。 1.抽取阶段的主要任务是: 读取源系统的数据模型。 连接并访问源系统的数据。 变化数据捕获。

抽取数据到数据准备区。 2.清洗阶段的主要任务是: 清洗并增补列的属性。 清洗并增补数据结构。 清洗并增补数据规则。 增补复杂的业务规则。 建立元数据库描述数据质量。 将清洗后的数据保存到数据准备区。

3.一致性处理阶段的主要任务是:

一致性处理业务标签,即维度表中的描述属性。

一致性处理业务度量及性能指标,通常是事实表中的事实。 去除重复数据。 国际化处理。

将一致性处理后的数据保存到数据准备区。 4.交付阶段的主要任务是:

加载星型的和经过雪花处理的维度表数据。 产生日期维度。 加载退化维度。 加载子维度。

加载1、2、3型的缓慢变化维度。 处理迟到的维度和迟到的事实。 加载多值维度。

加载有复杂层级结构的维度。

加载文本事实到维度表。 处理事实表的代理键。

加载三个基本类型的事实表数据。 加载和更新聚集。

将处理好的数据加载到数据仓库。

从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和ETL系统设计师是同一个人。

3. Describe the different types of ETL metadata and provide examples of each.

举例说明各种ETL过程中的元数据。

答:元数据是ETL项目组面对的一个非常重要的主题,对于整个数据仓库项目也是非常重要的一部分。对于元数据的分类和使用没有很确定的定义。 通常来说,我们可以把元数据分为三类,分别为业务元数据(Business Metadata),技术元数据(Technical Metadata)和过程处理元数据(Process Execution Metadata)。

业务元数据,是从业务的角度对数据的描述。通常是用来给报表工具和前端用户对数据进行分析和使用提供帮助。

技术元数据,是从技术的角度对数据的描述。通常包括数据的一些属性,如数据类型、长度、或者数据概况分析后一些结果。

过程处理元数据,是ETL处理过程中的一些统计数据,通常包括有多少条记录被加载,多少条记录被拒绝接受等数据

4. What steps do you take to determine the bottleneck of a slow running ETL process?

如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。

答:ETL系统遇到性能问题,运行很慢是一件较常见的事情,这时要做的是逐步找到系统的瓶颈在哪里。

首先要确定是由CPU、内存、I/O和网络等产生的瓶颈,还是由ETL处理过程产生的瓶颈。

如果环境没有瓶颈,那么需要分析ETL的代码。这时,我们可以采用排除的方法,需要隔离不同的操作,并分别对它们进行测试。如果是采用纯手工编码方式的ETL处理,隔离不同的操作要麻烦一些,这时需要根据编码的实际情况来处理。如果是采用ETL工具的话,目前的ETL工具应该都有隔离不同处理的功能,隔离起来相对容易一些。

因篇幅问题不能全部显示,请点此查看更多更全内容