Informatica 面试问题

2025年3月17日 | 阅读16分钟
Informatica Interview Questions

以下列出了 Informatica 面试最常被问到的一些问题和答案。

1) 什么是 Informatica?为什么我们需要它?

Informatica 是一家由 Gaurav Dhillon 和 Diaz Nesamoney 于 1993 年创立的软件开发公司。Informatica 是一种 ETL 工具,提供数据集成解决方案。ETL 工具用于提取、转换和加载数据。因此,我们可以说 Informatica 是一种 ETL 工具,用于从一个数据库提取数据并将其存储到另一个数据库中。

  • 提取 (Extract):提取是从一个数据库中提取数据的过程。在此阶段,ETL 工具从多个源提取数据。应用验证规则来测试它们是否与预期值匹配。如果验证失败,数据将被拒绝。
  • 转换 (Transform):转换是将一种形式转换为另一种形式的过程,以便数据可以存储在另一个数据库中。转换包括数据格式化、重新排序列或行数据、将两个值组合成一个以及将数据拆分为两个或三个值。
  • 加载 (Load):在加载阶段,数据被移动到目标数据库。一旦数据加载完成,ETL 过程就完成了。

2) 有哪些流行的 Informatica 产品?

以下是流行的 Informatica 产品:

  • Power Center
  • Power Mart
  • Power Exchange
  • Power Center Connect
  • Power Channel
  • Metadata Exchange
  • Power Analyzer
  • Super Glue

3) 什么是 Informatica PowerCenter?

Informatica PowerCenter 是一种 ETL 工具,用于构建企业数据仓库。它具有高可用性、完全可扩展性和高性能。

它为 IT 管理团队提供可靠的解决方案,因为它不仅提供数据以满足业务的运营和分析需求,还支持各种数据集成项目。


4) 什么是数据仓库?

  • 数据仓库是一种从多个源集成数据的技术。它涉及分析报告、数据集成、数据清洗和数据合并。
  • 数据仓库主要用于查询和数据分析目的,而不是事务处理。
  • 它用于在用户需要时将信息转换为有用数据。
  • 数据仓库是一种环境,而不是一种产品,它向用户提供当前和历史决策支持信息,而这些信息是传统操作数据库无法访问的。
  • 数据仓库中经过处理和转换的数据可以通过商业智能工具、SQL 客户端和电子表格访问。

5) Informatica 如何用于组织?

Informatica 在组织中可以通过以下方式使用:

  • 数据迁移 (Data Migration):数据迁移是指将数据从传统系统传输到新的数据库系统。
  • 数据仓库 (Data Warehousing):Informatica 是一种 ETL 工具,用于将数据从数据库或生产系统移动到数据仓库。这个过程被称为数据仓库。
  • 数据集成 (Data Integration):数据集成是指集成来自多个源或基于文件系统的数据。例如,清理数据。

6) 解释 Informatica 工作流?

Informatica 工作流是连接到起始任务并触发正确序列以执行过程的任务集合。

工作流可以通过工作流设计器工具手动或自动创建。


7) 提一下转换的类型?

Informatica Interview Questions

Informatica Interview Questions


8) 主动转换和被动转换有什么区别?

主动转换是指当源表通过它时,会改变行数的转换。例如,聚合器转换是一种主动转换,它对组执行聚合操作,如求和,并减少行数。

被动转换是指当源数据通过它时,不会改变行数的转换,即既不会添加新行,也不会删除现有行。在这种转换中,输出和输入行数是相同的。


9) 解释数据仓库和数据市场之间的区别?

Informatica Interview Questions

数据仓库和数据市场是存储和管理数据的结构化存储库。数据仓库用于集中存储整个业务的数据,而数据市场用于存储特定数据,而不是整个业务数据。从数据仓库查询数据是一项非常繁琐的任务,因此使用数据市场。数据市场是较小数据集的集合,允许您更快、更有效地访问数据。


10) 什么是存储库管理器?

存储库是用于存储信息或元数据的位置或关系数据库。元数据可以包括各种信息,例如描述如何转换数据的映射、描述您希望 Informatica 服务器何时执行转换的会话,还存储管理信息,例如用户名和密码、权限和特权以及产品版本。存储库由存储库管理器客户端工具创建和维护。

存储库管理器是管理和组织存储库的管理器。存储库管理器可以创建文件夹来组织数据和组来处理多个用户。


11) 什么是映射?

映射是数据的管道或结构化流,描述了数据如何通过转换从源流向目的地。

Informatica Interview Questions

映射由以下组件组成:

  • 源定义 (Source Definition):源定义定义了源的结构和特性,例如数据类型、数据源类型等。您可以使用 Informatica 源分析器创建多个源定义。
  • 目标定义 (Target Definition):目标定义定义了数据将加载到的最终目的地或目标。
  • 转换 (Transformation):转换定义了如何转换源数据,并在转换过程中应用各种函数。
  • 链接 (Links):链接定义了数据如何通过执行不同的转换从源定义流向目标表。

12) 什么是会话?

  • 会话是 Informatica 中的一个属性,它包含一组指令,用于定义何时以及如何将数据从源表移动到目标表。
  • 会话就像我们在工作流管理器中创建的任务。您创建的任何会话都必须与一个映射关联。
  • 会话一次必须只有一个映射,并且不能更改。
  • 为了执行会话,必须将其添加到工作流中。
  • 会话可以是可重用对象或不可重用对象,其中可重用意味着我们可以将数据用于多行。

13) 什么是设计器?

设计器是一个图形用户界面,用于构建和管理对象,如源表、目标表、Mapplet、映射和转换。

设计器中的映射是通过使用源分析器导入源表创建的,目标设计器用于导入目标表。

设计器组件

设计器包含多个组件:

  • 导航器
    导航器用于执行以下活动:
    • 它用于连接存储库服务。
    • 它用于打开文件夹。
    • 它用于复制对象和创建快捷方式。
  • 工作区
    • 工作区是我们进行编码的空间。
    • 在工作区中,我们可以创建和编辑存储库对象,如源、目标、mapplet、映射和转换。
  • 工具栏
    工具栏中提供了不同的组件,例如存储库、编辑、工具、版本控制、窗口和帮助。
  • 输出/控制面板
    它显示我们在设计器中执行任务的输出,例如映射是否有效、映射是否已保存,它还显示错误。
  • 状态栏
    状态栏显示当前操作的状态。

14) 什么是域?

  • 域是节点(机器)和服务(即存储库服务、集成服务、节点等)的集合。
  • 它是一个管理单元,您可以在其中管理或控制配置、用户、安全等事物。
  • 域是一个环境,您可以拥有单个域或多个域。例如,我们有开发、测试和生产三个部门;那么每个部门都将有一个域,即我们有三个域。

15) 什么是工作流管理器?

工作流管理器用于创建工作流和工作单元(Worklet)。

  • 工作流程
    • 工作流是用于执行映射的指令集。
    • 工作流包含各种任务,例如会话任务、命令任务、事件等待任务、电子邮件任务等,这些任务用于执行会话。
    • 它还用于调度映射。
    • 所有任务通过工作流中的链接相互连接。
    • 创建工作流后,我们可以在工作流管理器中执行工作流,并通过工作流监视器监控其进度。
  • 工作单元 (Worklet)
    • 工作单元是一个对象,它将一组任务分组,这些任务可以在多个工作流中重复使用。
    • 工作单元类似于工作流,但它没有任何调度信息。
    • 在工作单元中,您可以将任务分组在一个地方,以便于识别。

16) 什么是工作流监视器?

工作流监视器用于监视工作流的执行或工作流中可用的任务。它主要用于监视活动进度,例如事件日志信息、已执行工作流列表及其执行时间。

工作流监视器可用于执行以下活动:

  • 您可以查看执行详情
  • 您可以查看工作流执行历史
  • 您可以停止、中止或重新启动工作流。
  • 它显示至少执行过一次的工作流。

它由以下窗口组成:

  • 导航器窗口 (Navigator window):它显示已监视的存储库、服务器和存储库对象。
  • 输出窗口 (Output window):它显示来自集成服务和存储库服务的消息。
  • 时间窗口 (Time window):它显示工作流执行的进度。
  • 甘特图视图 (Gantt Chart view):它以表格形式显示工作流执行的进度。
  • 任务视图 (Task view):它以报告格式显示工作流执行的详细信息。

17) 解释转换的类型?

转换用于将源数据转换为目标数据。它确保数据将根据目标系统的要求加载到目标数据库。

转换基本上是一个存储库对象,可以读取、修改数据并将数据从源传递到目标。

有两种类型的转换:

  • 主动转换
    主动转换是一种可以修改从源传递到目标的行数的转换,即它可以消除不符合转换条件的行。
  • 被动转换
    被动转换是一种不消除行数的转换,即所有数据都从源传递到目标,没有任何修改。
Informatica Interview Questions

18) 什么是 SQ 转换?

  • SQ 代表 Source Qualifier 转换,它从多个源中选择记录,源可以是关系表、平面文件和 Informatica PowerExchange 服务。
  • 它是一种主动且连接的转换。
  • 当您在映射中添加源表时,Source Qualifier 会自动添加。
  • 它显示转换类型,即它将源数据类型转换为 Informatica 兼容的数据类型。
  • 在 SQ 转换数据类型的情况下,如果源数据类型与 Informatica 兼容数据类型不匹配,则保存时映射将变为无效。
  • SQ 转换是一种主动转换,因为您可以应用所有业务规则和过滤器来解决性能问题。
  • 通过使用 SQ 转换,您可以通过对表应用连接来对数据应用过滤器。
  • Source Qualifier 转换还可以将同构表(即来自同一数据库的数据)连接到单个 SQ 转换中。

SQ 转换的属性如下:

  • 用户定义 SQL 查询
  • 用户定义连接
  • 使用过滤器添加/修改 WHERE 子句
  • 添加/修改 ORDER BY 排序端口
  • 选择唯一/不同行

19) 什么是表达式转换?

  • 表达式转换是被动且连接的转换。
  • 它用于操作单行中的值。
  • 表达式转换的示例包括连接名字和姓氏、调整学生记录、将字符串转换为日期等。
  • 它还在将数据传递给其他转换之前检查条件语句。
  • 表达式转换使用数值和逻辑运算符

表达式转换器执行的操作如下:

  • 数据操作
    它执行连接、截断和四舍五入等操作。
  • 数据类型转换
    它还可以将一种数据类型转换为另一种数据类型。
  • 数据清洗
    它检查空值、测试空格、测试数字。
  • 操作日期
    它还可以操作日期。
  • 科学计算和数值运算
    它还执行指数、对数、模数和幂运算。

表达式转换中使用的端口有三种类型:

  • 输入
    输入端口包含用于计算的值。例如,我们需要计算总工资;只有当我们知道员工的工资和奖金时才能计算。
  • 输出
    我们为每个输出端口提供表达式,输出端口的返回值应与表达式的返回值匹配。
  • 变量
    它是在计算中使用的临时变量。

20) 什么是排序器转换?

  • 它是一种主动且连接的转换。
  • 它用于按升序或降序对数据进行排序,类似于 SQL 中的 ORDER BY 子句。
  • 它还用于区分大小写的排序,并用于指定输出行是否应为唯一。
  • 排序器转换是一种主动转换,因为它会消除重复项。

排序器转换的属性

  • 排序器缓存大小
    集成服务使用排序器缓存大小属性来确定执行排序操作所需的最大内存量。
  • 区分大小写
    您还可以启用区分大小写属性;在这种情况下,集成服务将优先处理大写字符而不是小写字符。
  • 工作目录
    工作目录是集成服务在排序数据时创建临时文件的目录。当数据排序完成后,所有临时文件将从工作目录中删除。
  • 不同输出行
    集成服务使用此属性来生成不同的输出行。
  • 跟踪级别
    跟踪级别是控制集成服务写入会话日志的排序器错误和状态消息的数量和类型的属性。
  • 空值视为低
    当您希望集成服务将空值视为低于其他值时,启用此属性。当您希望将空值视为高于其他值时,禁用此属性。

21) 什么是聚合器转换?

  • 聚合器转换是连接且主动的转换。
  • 它用于对一组行执行聚合函数,如求和、平均值、计数等,类似于 SQL 中的聚合函数,如 sum()、avg()、count() 等。
  • 例如,如果您想计算所有员工的工资总和,则使用聚合器转换。
  • 聚合器转换使用临时主表来存储所有记录并执行计算。

聚合器转换的组件

  • 聚合缓存
    集成服务使用聚合缓存来存储数据,直到聚合计算完成。它将组值存储在索引缓存中,将行数据存储在数据缓存中。
  • 聚合表达式
    聚合表达式提供给输出端口,输出端口还可以包含非聚合表达式和条件子句。
  • 按端口分组
    此属性用于创建组。组可以是输入、输出或任何变量端口。
  • 已排序输入
    已排序输入属性用于提高会话性能。为了使用已排序输入,您需要将数据传递给聚合器转换,并按按端口分组以升序或降序排序。

22) 什么是过滤器转换?

  • 过滤器转换是一种主动且连接的转换。
  • 它过滤掉通过它的行,即它改变通过的行数。
  • 它对一组数据应用过滤条件。此过滤条件返回真或假值。如果值为真,表示条件满足,则数据通过;如果值为假,表示过滤条件不满足,则集成服务丢弃数据并将消息写入会话日志。

23) 什么是连接器转换?

  • 连接器转换是一种主动且连接的转换。
  • 它允许您在 Informatica 中创建连接,类似于我们在数据库中创建的连接。
  • 在连接器转换中,连接用于两个源,这些源是:
    • 主源
    • 详细源

在连接器转换中,您需要选择哪个数据源将是主源,哪个数据源将是详细源。

连接器转换中使用了四种连接类型:

  • 主外连接
    在主外连接中,结果集包含来自详细源的所有记录以及主源中匹配的行。此连接将类似于 SQL 中的右连接。
Informatica Interview Questions
  • 详细外连接
    在详细外连接中,结果集包含来自主源的所有记录以及详细源中匹配的行。此连接将类似于 SQL 中的左连接。
Informatica Interview Questions
  • 全外连接
    在全外连接中,结果集包含来自两个源(即主源和详细源)的所有记录。
Informatica Interview Questions
  • 普通连接
    在普通连接中,结果集只包含主源和详细源之间匹配的行。此连接类似于 SQL 中的内连接。
Informatica Interview Questions

24) 什么是路由器转换?

  • 路由器转换是一种主动且连接的转换。
  • 路由器转换类似于过滤器转换,因为这两种转换都根据过滤器测试输入数据。
  • 在过滤器转换中,您只能应用一个过滤器或条件,如果条件不满足,则特定数据被丢弃。但在路由器转换中,可以应用多个条件。因此,我们可以说单个输入数据可以根据多个条件进行检查。

25) 什么是排名转换?

  • 排名转换是一种主动且连接的转换。
  • 它根据组和排名过滤数据。
  • 例如,如果您想按部门获取前 3 名高薪员工,则可以通过排名转换实现。
  • 排名转换包含一个输出端口,该端口为行分配排名。

26) 什么是序列生成器转换?

  • 序列生成器转换是被动且连接的转换。
  • 它是一种生成数值的转换类型。
  • 它创建唯一的 Primary Key 值,替换缺失的 Primary Key,或循环通过一系列连续的数字。

27) 什么是存储过程转换?

  • 它是一种被动转换。
  • 它可以在连接和非连接模式下使用。
  • Informatica 包含存储过程转换,用于在数据库中运行存储过程,其中存储过程是预编译的 PL-SQL 语句,这些预编译的语句使用 Execute 或 Call 语句执行。

集成服务和存储过程之间可以传递三种类型的数据:

  • 输入/输出参数
    它用于从存储过程发送或接收数据。
  • 返回值
    运行存储过程时,它返回一个单一值,该值可以是用户定义、单一输出值或仅单一整数值。如果存储过程返回结果集,则存储转换只接受结果集的第一个值。
  • 状态码
    存储过程转换提供一个状态码,通知存储过程是否成功完成。

28) 什么是查找转换?

  • 查找转换是主动和被动转换。
  • 它可以在连接和非连接模式下使用。
  • 它用于在源、源限定符、平面文件或关系表中查找数据以检索数据。
  • 我们可以从任何平面文件或关系数据库导入查找的定义,集成服务根据端口、查找条件查询查找源,然后将结果返回给其他转换。

查找转换有两种模式:

  • 查找表
    查找表通过 Informatica 客户端和服务器从映射源或目标数据库导入。
  • 查找条件
    查找条件确定输入数据是否满足查找表中的值。

查找转换执行的活动如下:

  • 获取相关值
    它可用于根据源表中的值从查找表中检索值。例如,我们想根据源表中的学生 ID 从查找表中检索学生姓名。
  • 获取多个值
    它还可以用于从查找表中检索多行。例如,我们想按分支检索所有学生。
  • 执行计算
    它可用于从查找表中检索值并对其执行计算。例如,检索学生分数然后计算他们的百分比。
  • 更新缓慢变化维度表
    它确定目标表中是否存在行。

29) 什么是联合转换?

  • 联合转换是一种主动转换。
  • 它类似于 SQL Union All,即它将来自多个文件的数据组合并生成单个输出,然后将其存储在目标表中。

联合转换的指南

  • 联合转换包含多个输出组,但一个输入组。
  • 它不从输入源中删除重复项。为了解决这个问题,我们使用排序器转换,其中我们使用 select distinct 语句来删除重复行。
  • 它不生成任何事务。
  • 您无法连接到序列生成器转换来生成序列。

30) 什么是更新策略转换?

  • 它是一种主动且连接的转换。
  • 这种类型的转换可用于从目标表插入、更新或删除记录。
  • 它甚至可以拒绝所有记录,以避免到达目标表

目标表的设计取决于现有行中的更改方式。更新策略转换在两个级别上工作:

  • 会话级别
    当我们配置会话时,我们可以指示集成服务以相同的方式处理所有行,即,将所有行视为插入/删除/更新,或者您可以使用会话映射中编码的指令来标记行以执行不同的数据库操作。
  • 映射级别
    在映射中,您可以应用更新策略转换来标记行以进行插入、更新、删除或拒绝。

31) 使用 SQ 可以执行哪些任务?

使用 SQ 执行的任务如下:

  • 连接
    您可以连接属于同一数据库的两个或多个表,默认情况下,所有表都通过主键和外键关系连接。我们还可以显式指定用户定义连接属性中的连接条件。
  • 过滤行
    您还可以过滤行。集成服务添加 WHERE 子句来过滤行。
  • 排序输入
    您还可以通过指定排序输入的数量来对输入数据进行排序。集成服务默认使用 ORDER BY 子句来排序输入数据。
  • 不同行
    您还可以通过选择“选择不同”属性从源表中选择不同的行;然后集成服务将 Select Distinct 语句添加到默认 SQL 查询中。
  • 自定义 SQL 查询
    您还可以编写自己的查询来对源数据执行计算。