ETL面试题集锦

本文汇总了ETL(Extract, Transform, Load)过程中的关键面试问题,涵盖了逻辑数据映射的定义及其作用、数据仓库项目的数据探索目的、起始来源数据的确定方法、ETL过程的四个基本步骤(ECCD:抽取、清洗、一致性处理和交付)、数据准备区的数据结构选择以及数据质量检查等方面。内容深入浅出,对ETL从业者和数据仓库项目管理者具有很高的参考价值。" 52227667,5699226,WPF串口助手:C#实现的串口调试工具,"['C#', 'WPF', '串口通信', '单片机开发', 'Arduino']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. What is a logical data mapping and what does it mean to the ETL team?

什么是逻辑数据映射?它对ETL项目组的作用是什么?

答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:

  • 目标表名:
  • 目标列名:
  • 目标表类型:注明是事实表、维度表或支架维度表。
  • SCD类型:对于维度表而言。
  • 源数据库名:源数据库的实例名,或者连接字符串。
  • 源表名:
  • 源列名:
  • 转换方法:需要对源数据做的操作,如Sum(amount)等。

逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。


2. 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)来对源系统的数据关系进行分析。

数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。


3. How is the system-of-record determined?

如何确定起始来源数据?

答:这个问题的关键是理解什么是System-of-Record。System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。

起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。


4. 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系统设计师是同一个人。


5. What are the permissible data structures for the data staging area? Briefly describe the pros and cons of each.

在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?

1.固定格式的文本文件。(Flat File)

Flat File指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。

2.XML数据集。

多用于数据交换,用户保存数据不太合适。

3.关系数据库的表。

保存数据的较理想选择。

4.独立的数据库表。

独立的数据库表一般指建立的表和其他表没有外键约束关系。这样的表多用于数据处理。

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)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。

例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。


7. Describe techniques for extracting from heterogeneous data sources.

简述异构数据源中的数据抽取技术。

答:在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。

在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。

对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立ODBC连接、定义接口文件、建立DBLINK等方法。


8. What is the best approach for hand

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值