Informatica 中的映射:创建、组件、参数、变量
什么是映射?
映射是通过一组转换链接在一起的源对象和目标对象的集合。这些转换由一组规则组成,这些规则定义了数据流以及数据如何加载到目标中。
映射由以下对象集组成
- 来源定义 – 源定义定义了源的结构和特性、其底层数据类型、数据源类型等。
- 转型 – 转换对象定义源数据如何转换,并且在此过程中可以应用各种函数。
- Target 定义 – Target 定义定义了数据将被加载的最终目标。
- 链接 – 链接将源定义连接到不同的转换和目标表。它定义了数据如何从源流向目标和转换。
为什么需要制图?
映射是 Informatica 中的一个对象,借助它,您可以定义在源数据到达目的地或目标对象之前如何对其进行修改。例如,如果您将员工姓名设为“Bill 源系统中的员工姓名必须为“Clinton”,而目标系统中的员工姓名必须为“Clinton” Bill”,此类操作可以在映射级别进行设计。从根本上讲,您对源数据的操作是在映射级别定义的。
映射是 Informatica 的基本对象,借助它我们可以定义数据转换细节和源/目标对象特征。映射帮助我们在每一行的各个列级别定义数据转换。即使在单个映射中,您也可以处理多个源和目标。
制图的组成部分
映射的基本组成部分是
- 源表
- 映射参数和变量
- Target 对象
- 映射转换
有各种对象构成映射。映射可以由 源、目标、映射参数和变量、mapplet、各种转换和用户定义函数.
- 映射源:映射源是您从中获取源数据的对象。它可以是数据库表、平面文件、XML 源或 COBOL 文件源
- 映射目标: 映射目标是最终处理后的数据加载到的目标对象。映射目标可以是数据库的关系表、平面文件或 XML 文件。源和目标在任何映射中都是必需的,它们的类型可以不同
- 映射参数和变量:映射参数和变量可帮助您创建临时变量对象,这将帮助您在映射数据处理时定义和存储临时值。映射参数和变量是可选的用户定义数据类型,可以为映射创建,并可以根据特定要求引用和更新。我们将在本节中了解有关映射参数和变量的更多信息
- 小程序:它们是由一组转换、源或目标组成的对象。 Mapplet 通常是为了重用一组转换的现有功能而创建的。 它可以用于任意数量的映射。
什么是舞台映射?
阶段映射是我们创建源表副本的映射。例如,在生产系统中,如果您有一个“员工”表,那么您可以在 ETL 模式中创建一个相同的表“employee_stage”。
拥有本地暂存表具有多种优势,例如生产停机不会影响您的 ETL 系统,因为您拥有自己的“employee_stage”表,而不是引用生产“employee”表。在生产系统中,可能存在影响性能的其他操作和流程。但是,当您拥有副本暂存表时,只有 ETL 流程会访问它。这提供了性能优势。
在阶段映射中,
- 来源和 Target 表具有相同的结构
- 目标表中的数据是源表数据的副本,或
- 阶段(目标)表中的数据是源数据的子集。
例如,如果您的源表包含部门编号 10、20、30 和 40 的员工详细信息,则暂存表可以是仅包含部门编号 10 和 30 的员工记录的表。
在数据仓库中创建阶段表的目的是通过仅获取与我们相关的数据来提高数据转换过程的效率,并最大限度地减少 ETL/数据仓库对实时操作系统的依赖。
如何创建映射
在这个练习中,我们将创建一个阶段映射,其中源将是“emp 表”,目标是“emptgt”。
命名约定 – 映射名称以“m_”为前缀,后跟用下划线分隔的源表名称和目标表名称。
示例 - 如果您从 emp 表加载 emp_target 表,则映射名称可以是“m_emp_emp_target”。
步骤1) 启动 Mapping Designer
- 打开 Informatica Designer 工具
- 单击 Mapping Designer 图标以启动 Mapping Designer
步骤2)在 Mapping Designer 中
- 点击映射菜单
- 选择创建选项
步骤3) 输入映射名称“m_emp_emp_target”并选择确定按钮。
映射将被创建并列在映射文件夹下。
映射必须至少有一个 源和目标,您将向映射中添加源和目标。
步骤4) 在此步骤中,我们将
- 选择源文件夹下的“emp”源表。
- 将“emp”表拖放到映射设计器中。
在映射设计器中,将显示导入的源表。
备注 – 在映射中导入任何关系(数据库)表时,还会创建一个源限定符类型的附加对象。此源限定符转换是必需的,可帮助 Informatica 集成服务识别源数据库表及其属性。每当您导入源表时,还会创建源限定符转换。您永远不应删除映射中的源限定符对象。
步骤5) 在此步骤中,我们将
- 选择“emp_target”下的源表 Targets 文件夹。
- 将“emp_target”表拖放到映射设计器中
在映射设计器中,“目标表”将被导入并显示。
为了管理视图空间,您可以在映射中将这些对象图标化。
步骤6)右键单击映射设计器空白工作区中的任意位置,然后选择选项 - 排列所有图标。
选择“排列所有图标”选项后,工作区将如下所示。
步骤7) In Informatica的,我们按照从左到右的流程进行设计。因此,源表应位于左侧,目标表应位于右侧。要在工作区中排列表,请选择“emp_target”表,然后将其拖放到 emp 表的右侧。
重新排列后,工作区将如下所示。
备注 – 定期使用“ctrl+s”快捷方式将更改保存到存储库。
步骤8) 现在,您的映射中已有源表和目标表,但映射尚未完成。应链接源表和目标表以完成映射。
链接源和目标
Double 单击 SQ_EMP 表和 EMP_TARGET 表以将它们的视图从图标更改为图形。
步骤9) 右键单击映射设计器工作区,然后按名称选项选择“自动链接”。
步骤10) 将源表与目标表链接起来
- 选择源表列。
- 将列拖放到目标表。
来源和 Target 表格将被链接,并且会出现从源表到目标表的连接箭头。
备注 – 在这里,您已将所有源列链接到相应的目标表列。这意味着,对于获取的每个源记录,目标的所有列都将被加载。如果您想排除任何特定列的加载,请单击该列链接并按下键盘上的删除键。链接将被删除,并且目标列将不会被加载。
步骤11) 使用快捷键“ctrl+s”保存对映射的更改。在输出窗口中,您可以看到映射验证/解析的消息。它确认您的映射有效。此外,映射文件夹树中的映射名称旁边将出现一个临时的绿色勾号,表示映射已成功完成。
在映射中,可能存在这样的需求:我们需要将变量传递给映射,或者可能存在这样的情况:我们需要计算临时变量,并进一步存储它们以供映射的下一个会话运行。为了这些目的,我们创建了映射参数和变量。
映射参数和变量
与每种编程语言一样,Informatica 有自己的定义参数和变量的方式。但与其他编程语言不同的是,Informatica 不是一种基于代码的语言。要在 Informatica 中创建参数和变量,您必须遵循预定义的语法和导航。
参数和变量之间的区别 –
映射参数 | 映射变量 |
---|---|
映射参数是那些一旦赋值后在整个映射运行过程中保持不变的数据类型。例如,如果您创建了一个映射参数 deptno=20,那么值 20 将在整个映射运行过程中保持不变。无论在哪里引用该参数,它都会始终为该映射运行实例返回值 20。对于新的映射实例,可以重新定义参数值。 | 映射变量是可以在整个映射运行过程中引用(以访问其值)的对象,并且可以重新分配其值。例如,total_salary 的映射变量可以在映射中使用,并且可以根据薪水更新其值。 |
映射参数和变量仅特定于一个映射。它们不能在另一个映射中引用。
如何创建映射参数
创建映射参数时,集成服务在执行映射期间会查找其分配的值。这些值可以分配到以下位置。
- 内部参数文件
- 在会话前变量赋值
- 存储库中的初始值
- 变量创建期间分配的默认值
步骤1) 创建映射参数 – 在地图设计器中,
- 选择映射菜单
- 选择参数和变量菜单
步骤2) 在下一个屏幕中,
- 点击添加新变量菜单
- 从下拉菜单中选择类型作为参数
- 输入参数名称为 $$Deptno
- 输入初始值 10
- 选择“确定”按钮
现在,您已经创建了一个映射参数deptno,其初始赋值为10,并且可以在映射内部引用该参数。
如何创建映射变量
步骤1) 在地图设计器中
- 选择映射菜单
- 选择参数和变量菜单
步骤2) 在下一个屏幕上
- 点击添加新变量菜单
- 从下拉菜单中选择类型为变量
- 输入变量名称为 $$TotalSalary
- 选择数据类型为十进制
- 输入初始值 0
- 选择“确定”按钮
这将创建一个映射变量。
备注 – 映射参数和变量名称始终以 $$ 开头。
总结
映射在 Informatica 中非常重要,它可以根据项目要求将源数据与目标数据进行匹配。我们讨论了阶段映射以及映射变量和参数的概念。