ETL 测试面试题

2025年3月17日 | 阅读13分钟
ETL Testing Interview Questions

以下是一些常见的 **ETL 测试面试题及答案**。

1) 什么是 ETL?请解释一下。

ETL 代表抽取(Extraction)、转换(Transformation)和加载(Loading)。它是数据仓库系统中一个重要的概念。数据集成过程包含三个基本步骤。**抽取**是指从不同的数据源(如交易系统或应用程序)中提取数据。**转换**是指对数据应用转换规则,使其适合分析报告。**加载**过程是将数据移动到目标系统,即数据仓库。


2) 解释一下抽取、转换和加载的概念?

提取

从外部源提取数据并将其移动到数据仓库预处理器数据库。

转换

数据转换任务允许点对点地生成、修改和转换数据。

加载

在此任务中,数据被添加到仓库的数据库表中。


3) ETL 周期有哪些三层架构?

ETL 的三个层是:

  • 暂存层 (Staging Layer): 暂存层用于存储从不同数据源系统提取的数据。
  • 数据集成层 (Data Integration Layer): 集成层转换暂存层的数据,并将其移动到数据库。在数据库中,数据被组织成层次分组,通常称为 **维度 (dimension)**,以及 **事实 (facts) 和聚合事实 (aggregation facts)**。事实表和维度表在数据仓库系统中的组合称为 **模式 (schema)**。
  • 访问层 (Access Layer): 最终用户使用访问层来检索数据以进行分析报告。

4) 什么是 BI?

商业智能 (Business Intelligence) 是收集原始业务数据并将其转换为对企业更有用的有意义视图的过程。


5) ETL 工具和 BI 工具之间有什么区别?

ETL 工具BI 工具
ETL 工具用于从不同的数据源提取数据、转换数据,并将其加载到数据仓库系统中。BI 工具用于为最终用户生成交互式和即席报告,为月度、季度和年度董事会会议进行数据可视化。
最常用的 ETL 工具包括 Informatica、SAP BO Data Service、Microsoft SSIS、Oracle Data Integrator (ODI)、Clover ETL 开源等。最常用的 BI 工具包括 SAP Lumira、IBM Cognos、Microsoft BI platform、Tableau、Oracle Business Intelligence Enterprise Edition 等。

6) 市场上有哪些 ETL 工具?

市场上流行的 ETL 工具包括:

  • IBM- Websphere DataStage
  • Informatica- Power Center
  • SAP- Business objects data service BODS
  • SAS - Data Integration Studio
  • Oracle- Warehouse Builder
  • 开源 Clover ETL。

7) 在 ETL 过程中,何时需要暂存区?

暂存区是位于数据源和数据仓库/数据市场系统之间的一个中心区域。它是数据集成过程中临时存储数据的地方。在暂存区,数据会进行清理并检查是否存在重复。暂存区的设计提供了许多好处,但主要目标是提高效率、确保数据完整性并支持数据质量操作。


8) 数据仓库和数据挖掘之间有什么区别?

与数据挖掘相比,数据仓库是一个更广泛的概念。数据挖掘涉及从数据中提取隐藏信息并进行解释以进行未来预测。相比之下,数据仓库包括诸如分析报告以生成详细报告和即席报告,信息处理以生成交互式仪表板和图表等操作。


9) 数据仓库和数据挖掘之间有什么区别?

OLTPOLAP
OLTP 代表在线事务处理 (Online Transactional Processing)。OLAP 代表在线分析处理 (Online Analytical Processing)。
OLTP 是关系型数据库,用于管理日常交易。OLAP 是多维系统,也称为数据仓库。

10) 什么是维度表,它与事实表有何不同?

在此,我们将通过一个例子来描述维度表与事实表的区别。

假设一家公司向其客户销售产品。每一次销售都是公司内发生的一个事实,事实表用于记录这些事实。每个事实表存储连接事实表与维度表的主键和度量/事实。

例如:事实单位

Cust_ID (客户 ID)Prod_ID (产品 ID)Time_ID (时间 ID)销售单位数量
10124125
10225215
10326330

维度表存储描述事实表中对象的属性或维度的信息。它是事实表的伴随表集。

Cust_ID (客户 ID)Cust_Name (客户姓名)性别 (Gender)
101Sana (萨那)F
102Jass (贾斯)M

11) 什么是数据市场 (Data Mart)?

数据市场是数据仓库的简化形式,它专注于单个功能区域。它只从少数几个来源获取数据。

例如:在一个组织中,可能存在用于市场营销、财务、人力资源和其他独立部门的数据市场,它们存储与各自特定功能相关的数据。


12) 手动测试和 ETL 测试之间有什么区别?

手动测试和 ETL 测试之间的区别在于:

  1. 手动测试侧重于程序的功能,而 ETL 测试与数据库及其计数相关。
  2. ETL 是自动化测试过程,不需要任何技术知识。ETL 测试速度非常快,系统化,并能确保业务所需的最终结果。
  3. 手动测试是一个耗时的过程,需要技术知识来编写测试用例和脚本。它速度慢,极易出错,并且需要投入大量精力。

13) 什么是 ETL 测试?

ETL 代表抽取 (Extraction)、转换 (Transform) 和加载 (Loading) 信息。ETL 测试旨在确保数据在准确的业务转换后从源正确加载到目标。它涉及在源和目标之间的多个阶段进行数据验证。


14) ETL 测试人员的职责是什么?

ETL 测试人员的职责分为三个主要类别:

  • 暂存表
  • 业务逻辑转换
  • 将转换应用于暂存表后,将数据加载到目标表。

ETL 测试人员的职责包括:

  • ETL 测试人员彻底测试 ETL 软件。
  • 测试人员将检查 ETL 数据仓库的测试组件。
  • 测试人员将在后端执行数据驱动的测试。
  • 测试人员创建并执行测试用例、测试计划或测试平台等。
  • 测试人员识别问题并提出最佳解决方案。
  • 测试人员批准需求和设计规范。
  • 测试人员从平面文件中传输数据。
  • 他们为不同的测试场景编写 SQL 查询。

15) ETL 测试的必要性是什么?

如今,我们正在将大量系统从旧技术迁移到新技术。在迁移活动期间,我们还需要迁移数据,从旧的 DBMS 到最新的 DBMS。因此,需要测试目标端的数据是否正确。

以下是一些 ETL 测试需求产生的要点:

  1. ETL 测试用于监控从一个系统传输到另一个系统的数据。
  2. ETL 测试的需求是为了跟踪过程的效率和速度。
  3. 在将 ETL 过程应用于我们的业务和生产环境之前,ETL 测试的需求是为了熟悉 ETL 过程。

16) 用户在哪里使用 ETL 概念?请解释一下。

  • 在 ETL 工具出现之前,用户需要编写扩展代码来实现数据转换和数据加载。
  • ETL 使生活更轻松,一个工具可以管理所有数据转换和加载场景。

以下是使用 ETL 的示例:

示例:数据仓库

ETL 用于数据仓库概念。在这里,我们需要从多个不同的系统中获取数据并将其加载到数据仓库数据库中。ETL 概念在此用于提取源数据、转换数据并将其加载到目标系统。

示例:数据迁移

如果使用 PLSQL,数据迁移是一项艰巨的任务。如果我们想以简单的方式迁移数据,我们将使用不同的 ETL 工具。

示例:合并与收购

如今,许多公司都在与其他跨国公司合并。为了将数据从一家公司移动到另一家公司,ETL 概念就应运而生。


17) 我们如何在第三方管理中使用 ETL?

大型组织总是将不同的应用程序开发外包给不同的供应商。单个供应商无法管理所有事情。在这里,我们以一个电信项目为例,其中账单由一家公司处理,另一家公司管理 CRM。如果 CRM 公司需要从负责账单的公司获取数据,那么该公司将接收来自另一家公司的数据馈送。ETL 过程用于加载来自其他公司的数据。


18) 我们如何在数据仓库中使用 ETL?

最常见的是,ETL 用于数据仓库。用户获取历史数据和当前数据以开发数据仓库。数据仓库中的数据是历史数据和事务数据的组合。数据仓库的数据源可能不同。我们需要从多个不同的系统获取数据并将其加载到单个目标系统,该系统也称为数据仓库。


19) ETL 测试和数据库测试之间有什么区别?

ETL 测试和数据库测试之间的区别是:

ETL 测试数据库测试
在 ETL 测试中,目标是商业智能报告。在数据库测试中,目标是集成数据。
业务环境的流程基于先前使用的数据。数据库测试仅适用于业务流程系统。
可以使用 Informatica、Query Surge、Cognos 等工具。在数据库测试中,使用 QTP 和 Selenium 工具。
在 ETL 测试中,使用维度模型。在数据库测试中,使用关系模型。
在 ETL 测试中,处理分析。在数据库测试中,处理事务。
ETL 测试中使用反规范化数据。使用规范化数据。

20) 数据仓库有哪些特征?

  • 数据仓库是一个数据库,它不同于操作型数据库并存储历史数据。
  • 数据仓库数据库包含分析数据和事务数据。
  • 数据仓库用于数据分析和报告目的。
  • 数据仓库帮助高层管理人员利用历史或当前数据做出战略和战术决策。
  • 数据仓库帮助业务用户了解当前趋势以运营业务。

21) 数据仓库系统有哪些类型?

  • 在线分析处理 (OLAP)
  • 预测分析
  • 在线事务处理
  • 数据市场

22) ETL 测试过程中遵循哪些步骤?

ETL 测试过程中遵循的不同步骤是:

步骤 1. 需求分析

在此步骤中,我们理解业务结构和需求。

步骤 2. 验证和测试估算

此步骤需要时间与专业知识的估算。

步骤 3. 测试计划和测试环境设计

此步骤基于验证和测试估算。在此步骤中,ETL 环境根据测试估算中使用的输入进行计划,并据此进行操作。

步骤 4. 测试数据准备和执行

根据测试,准备数据并根据需求执行。

步骤 5. 总结报告

测试运行完成后,会准备一份总结报告以供总结和改进。


23) ETL 在数据迁移项目中是如何使用的?请解释一下。

ETL 工具通常用于数据迁移项目。如果一个组织以前在 Oracle 10g 中管理数据,现在该组织希望使用 SQL Server 云数据库,那么就需要将数据从源移动到目标。对于这种移动,ETL 工具非常有用。如果我们想编写 ETL 代码,这是一个非常耗时的过程。为了简化这一点,我们使用 ETL 工具,它简化了 PL SQL 或 T-SQL 代码的编写。因此,ETL 过程在数据迁移项目中非常有用。


24) 选择 ETL 过程遵循哪些步骤?

选择 ETL 工具是一项非常艰巨的任务。为了选择正确的 ETL 工具,我们需要根据项目考虑许多因素。为特定项目选择 ETL 工具是一项非常战略性的举动,即使对于小型项目我们也需要它。

以下是一些有助于我们选择 ETL 工具的要点:

  • 数据连接性
    为了选择 ETL 工具,我们将重点关注 ETL 工具应如何与任何数据源进行通信,无论数据来自何处。数据连接性至关重要。
  • 性能
    移动和更改数据需要一定的处理能力。因此,我们需要检查性能因素。
  • 转换灵活性
    合并、匹配和更改数据至关重要。ETL 工具应提供所有这些合并、匹配和更改操作以及许多转换包。它允许通过简单的拖放来修改转换阶段的数据。
  • 数据质量
    只有当数据干净且一致时,我们才能充分利用这些数据。
  • 灵活的数据操作选项
    当 ETL 准备就绪时,我们需要检查 ETL 是否能处理先前的数据以及新传入的数据。
  • 有承诺的 ETL 供应商
    在进行 ETL 过程时,我们正在处理组织的数据。因此,在这里我们必须选择一个了解行业的供应商,他们的支持将是有益的。

25) 什么是 ETL 错误?

以下是 ETL 错误:

  1. 源错误
  2. 加载条件错误
  3. 计算错误
  4. ECP 相关错误
  5. 用户界面错误

26) 什么是操作数据源 (ODS)?

  • ODS 代表操作数据源 (Operational Data Source)。
  • ODS 在暂存区和数据仓库之间工作。ODS 中的数据将处于粒度级别。
  • 当数据插入 ODS 时,所有数据都将通过 ODS 加载到 EDW。

27) ETL 中的数据抽取阶段是什么?

数据抽取只是使用 ETL 工具从多个不同源抽取数据。

以下是两种数据抽取类型:

  1. 完全抽取 (Full Extraction): 将操作系统或源系统的所有抽取数据加载到暂存区。
  2. 部分抽取 (Partial Extraction): 有时,我们会收到源系统通知,要求更新特定数据。这称为增量加载 (Delta Load)。

源系统性能: 数据抽取策略不应影响源系统的性能。


28) 什么是 ETL 工具?

流行的工具有:

1. 企业级 ETL 工具

  • Informatica
  • Talend
  • IBM Datastage
  • Abinitio
  • MS SQL Server Integration Service
  • Clover ETL

2. 开源 ETL 工具

  • Pentaho
  • Kettle

29) ETL 中的分区 (Partitioning) 是什么?

为了提高性能,始终需要划分事务。这些过程被称为分区。它仅仅确保服务器可以通过多个连接直接访问源。


30) 什么是 ETL 管道 (ETL Pipeline)?

ETL 管道是指一组从一个系统提取数据、对其进行转换并将其加载到某个数据库或数据仓库的过程。ETL 管道是为数据仓库应用程序构建的,包括企业数据仓库和特定主题的数据市场。ETL 管道也用于数据迁移解决方案。数据仓库/商业智能工程师构建 ETL 管道。


31) 什么是数据管道 (Data Pipeline)?

数据管道是指将数据从一个系统移动到另一个系统的任何一组过程元素。数据管道可以为任何使用数据创造价值的应用程序构建。它可以用于集成跨应用程序的数据,构建数据驱动的 Web 产品以及执行数据挖掘活动。数据工程师构建数据管道。


32) ETL 测试中的暂存区 (staging place) 是什么?

暂存区是数据集成过程中使用的临时存储区域。在此区域,数据会仔细分析是否存在冗余和重复。


33) 什么是 ETL 映射表?定义其意义。

ETL 映射表包含源文件中的所有必要信息,并将详细信息存储在行和列中。映射表有助于编写 SQL 查询以加速测试过程。


34) ETL 测试中的转换 (transformation) 是什么?

  • 转换被定义为用于生成、修改或传递数据的存档对象。转换可以是活动的或被动的。转换在许多方面都很有益。
  • 它有助于快速获取值。
  • 转换可以更新缓慢变化维度表。
  • 它检查或验证记录是否存在于表中。

35) 动态缓存和静态缓存 (dynamic cache and static cache) 在转换中有何用途?

动态缓存用于缓慢更新维度表或主表。静态缓存用于平面文件。


36) 什么是映射 (Mapping)、会话 (Session)、工作流任务 (Worklet) 和映射集 (Mapplet)?

  • 映射 (Mapping): 映射代表从源到目标的流程。
  • 工作流 (Workflow): 工作流是一系列指令,告诉 Informatica 服务器如何执行任务。
  • 映射集 (Mapplet): 映射集配置或创建一组转换。
  • 工作流任务 (Worklet): 它是代表一组任务的对象。
  • 会话 (Session): 会话是一组指令,描述如何以及何时将数据从源移动到目标。

37) 什么是全量加载 (full load) 和增量/刷新加载 (incremental or refresh load)?

全量加载 (Full Load): 全量加载会完全擦除一个或多个表的内容,并用新数据重新加载。

增量加载 (Incremental Load): 在此,我们根据预定义的计划对一个或多个表应用正在进行的更改。


38) 什么是 Joiner 和 Lookup?

Joiner 用于连接两个或多个表以从中检索数据。

Lookup 用于检查和比较源表和目标表。


39) 什么是数据清除 (data purging)?

数据清除是一个常用的术语,用于描述从存储空间中删除并永久擦除数据的方法。换句话说,它可以定义为从数据仓库中删除数据称为数据清除。通常,我们需要清理垃圾数据,如包含空值或空格的行。数据清除是清理垃圾值的过程。


40) ETL 工具和 OLAP 工具之间有什么区别?

ETL 工具用于从遗留系统中抽取数据,并将其加载到指定的数据库中,并进行一些数据清理过程。

例如:Informatica、Data Stage 等。

OLAP 工具:它用于 OLAP 数据(位于多维模型中)的报告目的。我们可以编写简单的查询从数据库中提取数据。

例如:Business Object、Cognos 等。