Informatica Debugger:会话、断点、详细数据和映射
正如我们在前面讨论过的主题一样,映射是源对象和目标对象的一个集合,它们通过一组转换链接在一起。这些转换包含一组规则,定义了数据流以及数据如何加载到目标中。
什么是调试器?
调试器是Informatica中一个非常有用的工具。当我们执行映射时,Informatica会根据定义的转换逻辑来执行映射。
它的执行类似于批处理模式执行,我们无法看到中间结果,或者数据是如何从一个转换到另一个转换进行修改的。
很多时候,我们发现目标中的数据并非如我们所预期。借助调试器,我们可以分析数据在映射中的流动方式。我们可以在调试器中逐行分析数据。
使用调试器需要一个会话实例,我们可以重用之前创建的用于运行映射的会话,或者创建一个新的调试会话实例。由于在调试过程中数据将从源获取,因此我们有机会选择如何处理这些数据。
- 我们可以丢弃数据,或者
- 数据可以加载到目标中
这些选项可以在配置调试器时进行设置。
要监控调试器,Informatica Designer中有两个窗口
- 目标窗口
- 实例窗口
在目标窗口中,将要插入目标表的记录会显示出来。在实例窗口中,您可以选择映射中的任何转换实例。之后,该转换的所有端口都会在此窗口中显示,您可以分析数据是如何转换的。
映射中使用调试器的步骤
Informatica Designer提供了使用调试器来调试映射的功能。这意味着我们可以调试和分析任何现有映射。调试器的要求是映射必须是有效的映射。
在练习中,我们将调试我们之前创建的现有映射“m_emp_emp_target”。在我们的源数据中,我们将检查 employee_name = ‘SCOTT’ 的特定记录。对于Scott,我们将验证值是否在Informatica中正确获取,以及记录是否已正确推送到目标。
我们源数据中“emp”表的内容如下:
对于ename为“SCOTT”的记录,使用调试器我们将检查Informatica中获取的“sal”(薪水)列的值。
步骤 1)打开Informatica Designer,并通过双击来打开映射“m_emp_emp_target”。它将在Mapping Designer中显示源限定符和目标定义表,其中包含映射。
步骤 2)现在启动调试器
- 点击映射菜单选项
- 从选项中选择调试器
- 选择“启动调试器”选项
步骤 3)在调试映射窗口中选择下一步
步骤 4)在下一个窗口中,您将看到一个选择会话类型的选项。您可以使用现有会话、现有可重用会话,或者创建调试会话实例。
当您使用现有会话时,Informatica将使用您为该映射创建的先前会话。当您选择创建调试会话实例时,将为调试创建一个新的会话实例。
在本例中,我们将选择现有可重用会话实例。集成服务将是默认的。
- 选择“使用现有会话实例”选项
- 点击下一步
步骤 5)在新窗口中,Informatica会提示您选择用于调试的现有会话。
选择会话“s_m_emp_emp_target”并点击下一步按钮
步骤 6)在下一个窗口中,有一个“丢弃目标数据”的选项,我们选择此选项,因为在调试过程中我们不希望将任何数据加载到目标表中。
- 选择“丢弃目标数据”选项。
- 选择目标表“emp_target”
- 点击完成按钮。
通过以上步骤,我们已经配置并启动了调试器。现在我们可以调试映射了。
步骤 7)调试器已启动,但尚未从源获取任何行。在调试过程中,它逐行从源获取数据。要开始获取第一行数据
- 从菜单中选择映射选项
- 选择调试器选项
- 选择下一个实例选项
步骤 8)在实例窗口中,您将看到从源限定符获取的第一条记录。
如果您分析实例窗口,它将显示第一条记录 – ename为“SMITH”的行。这不是我们要查找的记录。因此,我们可以移到下一个实例。
步骤 9)移到下一个实例(移到下一行)
- 按F10键(前往下一个实例的快捷键,而不是进入映射选项然后是调试器选项)
移到下一个实例后,实例窗口中的数据将更改为下一条记录。
步骤 10)继续按F10键,直到您到达所需的“SCOTT”员工记录。到达该点后,实例窗口将如下所示:
这就是我们正在寻找的实例。因此,在实例窗口中,我们可以分析数据。它是否正确传入,或者是否有值丢失。
在源数据中,“SCOTT”员工的详细信息是 job = “ANALYST”,manager id = “7566”,sal “3000.”。
而在调试器中,对于员工“SCOTT”,我们已经分析了所有这些详细信息,它们与源数据匹配,因此我们确信源限定符正确地获取了记录。
在调试器中使用断点
当我们查找特定行数据时,例如在上一个示例中,我们可以定义断点,而不是遍历所有源数据实例。
断点是在配置调试过程中定义的条件或一组条件,当该条件为真时,调试器会停止在该特定实例。
例如,如果我们为断点定义deptno=20,那么当某条记录满足此条件时,调试器将停止在该数据实例。
步骤 1)配置断点
- 转到映射菜单
- 选择调试器选项
- 选择“编辑断点”选项
步骤 2)您将看到一个如下所示的“编辑断点”窗口
步骤 3)在断点窗口中,点击添加按钮
步骤 4)在新窗口中
- 选择SQ_EMP作为实例
- 选择“确定”按钮
步骤 5)上一个窗口将如下所示:
步骤 6)您有一个断点,现在您需要定义断点条件。定义断点条件
- 点击“添加新条件”图标
条件选项卡下将出现一个新行。在这里我们可以配置条件。
步骤 7)在条件表中
- 在端口下拉列表中,选择“ENAME”选项(因为我们正在调试ename = ‘SCOTT’ 的记录)
- 在值框中,输入值“SCOTT”。
- 选择“确定”按钮
步骤 8)现在按照前一个主题中提到的方式启动调试器
转到映射菜单 -> 选择调试器选项 -> 选择启动调试器 -> 选择会话实例
步骤 9)调试器启动后
- 选择映射菜单
- 选择调试器选项
- 选择继续选项
调试器将自行遍历每一行实例,并检查条件“ename=SCOTT”。满足此条件的记录,调试器将在该实例上停止。因此,当数据量很大时,您可以配置断点,而不是遍历每个源记录实例,这样就可以直接跳转到该记录。
一旦Informatica完成了遍历所有实例,调试器就会自动停止。如果您想再次分析数据,则必须重新启动调试器。
Informatica中的跟踪
每当您为映射执行会话时,都会生成一个会话日志。它包含执行的详细信息,例如:
- 事件的时间
- 错误详细信息
- 单个转换统计信息等。
在映射的转换内部,您可以配置和设置Informatica在会话日志中写入多少详细信息。
在转换内部的跟踪可以设置四个级别。
不同的日志模式 | 不同日志模式下的活动 |
---|---|
正常 | 在正常模式下,Informatica会写入转换初始化和状态信息、遇到的错误以及会话结果摘要。 |
简洁 | 在简洁模式下,Informatica仅写入初始化信息和错误详细信息。简洁模式写入的会话日志详细信息最少。 |
详细初始化 | 在详细初始化模式下,Informatica写入的日志详细信息与正常模式类似,此外还写入使用的数据文件和索引文件以及转换统计信息。 |
详细数据 | 在详细数据模式下,Informatica写入的日志类似于详细初始化,但此外还写入通过转换的每一条数据。 |
注意:默认情况下,跟踪级别设置为正常,建议仅在调试映射时使用详细数据模式。简洁模式可用于提高性能,因为它写入的详细信息最少。因此,写入日志的开销将是最小的。
如何在转换中设置跟踪级别
步骤 1)在Informatica Designer中打开要设置跟踪级别的映射
步骤 2)双击转换(源限定符转换“SQ_EMP”)
这将打开编辑转换窗口。
步骤 3)在编辑转换窗口中
- 点击属性选项卡
- 选择跟踪级别选项
- 从下拉列表中选择详细数据
- 选择“确定”按钮
步骤 4)保存映射并执行映射(使用 Ctrl+S 键盘快捷键保存映射)
步骤 5)查看日志
- 打开工作流监视器并选择上一步执行的会话
- 点击“会话日志”选项以打开映射的会话日志
这将打开映射的会话日志窗口
会话日志提供了有关会话如何执行的详细信息。它提供了执行开始和停止的时间详细信息。它提供了性能的基本概念。它会说明您正在使用哪个数据库连接,您正在使用哪个参数文件。它还总结了源和目标,说明获取了多少源记录,加载了多少记录到目标等等。
步骤 6)向下滚动日志,您可以看到捕获的附加日志详细信息,包括数据记录。
通过这种方式,您可以设置映射中的跟踪级别,以便捕获附加的详细信息以进行调试。
在本教程中,您学习了如何设置、配置和执行调试器以及如何在映射中设置跟踪级别。这些选项为您提供了调试映射的能力。