Informatica 中的映射

2024 年 8 月 29 日 | 4 分钟阅读

映射是源对象和目标对象的集合,通过一组转换联系在一起。这些转换由一组规则组成,这些规则定义了如何将数据加载到目标以及数据的流向。

Informatica 中的映射包括以下对象集,例如

  • 源定义: 源定义定义了源的结构和特征,例如基本数据类型、数据源的类型等。
  • 转换: 它定义了如何更改源数据,并且可以在此过程中应用各种功能。
  • 目标定义:目标定义定义了最终加载数据的位置。
  • 链接:链接用于将源定义与目标表和不同的转换连接起来。它显示了源和目标之间的数据流。

为什么我们需要映射?

在 Informatica 中,映射是一个对象,它可以定义源数据在到达目标对象之前进行修改的过程。

例如:假设源系统和目标系统中的员工姓名均为“Edward Cullen”。 现在我们需要采用“Edward Cullen”格式的员工姓名。 在映射级别,会设计此类操作。

映射可以定义数据转换详细信息以及源或目标对象的特征,因为它在 Informatica 中是一个主要对象。

映射定义了每个列级别上每行的数据转换。 并且我们可以在单个映射中保留多个源和目标。

映射的组成部分

以下是在映射中使用的一些重要元素,例如

  • 源表
  • 映射参数和变量
  • 目标对象
  • 映射转换

映射包含源、目标、映射参数、变量、多个更改、映射器用户定义的函数

  • 映射源: 映射源是允许获取源数据的那些对象。 它可以是平面文件、数据库表、COBOL 文件源或 XML 源。
  • 映射目标: 映射目标是最终加载数据的目标对象。 映射目标可以是数据库的关系表、XML 文件或平面文件。 任何映射中都必须存在具有不同数据类型的源和目标。
  • 映射参数和变量: 它是一种可选的用户定义数据类型。 映射参数和变量用于创建临时变量对象。 它可以帮助我们在映射数据处理期间定义和存储临时值。 此用户定义的数据类型专为映射而设计。
  • Mapplet: Mapplet 是由一组源、转换或目标组成的对象。 借助 Mapplet,我们可以重复使用一组更改的现有功能。

什么是阶段映射?

在阶段映射中,我们创建源表的副本。

例如,如果我们有一个“学生”表,并且我们想在 ETL 模式中创建一个相同的表“Student_stage”。

本地暂存表提供了一些优势,例如生产停机时间,因此它不会影响 ETL 系统,因为我们有自己的“Student_stage”表,而不是引用“Student”表。 可能还有其他一些操作和流程会影响性能。 只有当我们有一个副本暂存表时,ETL 流程才会访问它。 然后它提供了更好的性能优势。

在阶段映射中,

  • 源表和目标表具有相同的结构。
  • 在暂存表中,数据是源表数据的副本。
  • 在源表中,数据是源数据的子集。

例如,如果源表包含 rollno 为 1、2、3 和 10 的学生详细信息。暂存表是一种仅包含 rollno 为 1 和 3 的学生记录的表。

在数据仓库中,我们需要创建阶段表以提高数据转换过程的效率,从而最大限度地减少 ETL 或数据仓库对实时操作系统的依赖。 当我们仅提取相关数据时,可能会发生这种情况。

映射参数和变量

Informatica 有一种定义参数和变量的方式,与其他编程语言一样。 但 Informatica 并不是像其他编程语言那样基于代码的语言。

在 Informatica 中,我们需要遵循预定义的语法和导航来创建参数和变量。

以下是映射参数和映射变量之间的一些根本区别,例如

映射参数映射变量
映射参数是指那些在一次赋值且在映射执行期间保持常量的数据类型。
例如: 如果我们创建了一个映射参数 rollno=2,那么值 2 将在整个映射执行过程中保持不变。
引用的参数始终会为该映射运行实例返回值 2。 并且可以为新的映射实例重新定义参数的值。
映射变量是在整个映射执行过程中引用的对象,并且可以重新分配它们的值。
例如,总分数的映射变量用于映射,其值将根据分数进行更新。

下一个主题Informatica 云