Informatica 中的会话属性:完整教程
会话属性是一组指令,用于指示 Informatica 如何以及何时将数据从源移动到目标。
会话属性是一个任务,就像我们在工作流管理器中创建的其他任务一样。任何会话都必须关联一个映射。
一个会话一次只能有一个映射,并且一旦指定就不能更改。要执行会话任务,必须将其添加到工作流中。
会话可以是可重用对象,也可以是不可重用对象。当您在任务开发工具中创建会话时,它可以被重用,但当您在工作流设计器中创建会话时,它就不可重用了。
可重用的会话可以添加到多个工作流中。
会话的属性
通过使用会话的属性,您可以配置会话的各种特性,例如预处理和后处理 SQL 脚本、日志文件名和路径、内存属性等。
您还可以覆盖会话属性中的映射属性。在本节中,我们将讨论以下重要的会话属性。
- 将源行视为
- 提交间隔
- 会话日志文件属性
- 测试加载属性
- 日志选项
- 错误处理
- 源/目标属性
- 连接
步骤 1)在任务开发工具中打开我们在早期教程中创建的会话“s_m_emp_emp_target”。
步骤 2)双击任务开发工具中的会话图标以打开编辑任务窗口。
步骤 3)在“编辑任务”窗口中,单击属性选项卡。
步骤 4)在属性选项卡中,将显示会话的属性。
将源行视为属性
此属性允许您定义源数据如何影响目标表。例如,您可以定义源记录应插入或删除到目标中。
此属性有四个选项 –
- 插入
- 更新
- 删除
- 数据驱动
- 当此属性设置为插入时,源数据将被标记为插入。这意味着数据将被插入。
- 当属性设置为更新时,目标数据将被源数据更新。要更新数据,目标表需要定义主键。
- 当属性设置为删除时,目标表中已存在的源数据将被从目标表中删除。要执行此属性并应用更改,目标表中应定义主键。
- 当属性设置为数据驱动时,Informatica 会检查源记录的标记方式。如果在映射中源记录被标记为插入,则记录将被插入到目标中。如果记录在映射中被标记为更新,则记录将被更新到目标中。因此,在目标上执行什么操作取决于映射内部如何处理记录。
如何将源行视为 - 删除
步骤 1)
- 在会话任务的属性选项卡中,在“将源行视为”中选择“删除”选项。
- 选择“确定”按钮
步骤 2)要在目标表中定义主键,请打开 Informatica Designer。
- 打开目标设计器。
- 双击“emp_target”表。
这将为我们的目标表打开一个“编辑表”窗口。
步骤 3)在目标表的编辑窗口中。
- 对于 EmpNo 列,从下拉菜单中选择“主键”作为键类型,然后
- 选择“确定”按钮。
步骤 4)在 Informatica 中保存更改,并执行此映射的工作流。
当您执行此映射时,目标中已存在的源记录将被删除。
提交间隔 - 属性
此属性定义了 Informatica 进行提交操作到目标表的间隔。
例如,如果您正在向目标表插入 20,000 条记录,并将提交间隔定义为 5,000,那么在目标中插入每 5,000 条记录后,将执行一次提交操作。
会话日志文件名和会话日志文件目录
配置此属性以修改
- 默认会话日志文件名和
- 日志文件的路径
$PMSessionLogDir\ 是一个 Informatica 变量,在 Windows 中它指向以下默认位置“C:\Informatica\9.6.1\server\infa_shared\SessLogs”。
启用测试加载
使用此属性,您可以测试会话和映射。当您使用此功能并执行会话时,会从源中获取记录,但它们不会加载到目标中。因此,此功能有助于测试映射的正确性、参数文件以及映射中各种转换的功能。
如果您启用此功能,那么还有一个属性 – 测试行数,应为此属性配置您希望为测试加载从源中获取的记录数。
内存属性
内存属性为我们提供了灵活性,可以微调分配给 Informatica 的内存以进行性能优化。当瓶颈很高且性能很差时,您可以尝试使用内存属性来提高性能。
要配置内存属性,请单击编辑任务窗口的“配置对象”选项卡。它将打开另一个窗口,您可以在其中配置更改。
在此部分,您可以配置内存属性。例如,默认缓冲区块大小、顺序缓冲区长度等。对这些属性的更改将决定为 Informatica 服务分配多少内存以供其运行。
日志选项
在此属性部分,您可以配置会话的日志属性。您可以设置要为会话保存的日志数量、会话日志文件的最大大小。
错误处理
在此部分,您可以配置会话的错误属性。
使用停止错误数,您可以配置会话在多少错误后停止。
使用覆盖跟踪,您可以覆盖映射的跟踪级别。
您还可以配置会话在遇到各种错误时的行为,例如存储过程错误、预后 SQL 错误等。
映射和源/目标属性
在会话的编辑任务窗口的映射选项卡中,您可以配置与映射及其源/目标和转换相关的属性。通过此属性部分,您可以覆盖源和目标的属性。对于源和目标,我们可以覆盖表名,我们可以应用表名前缀。在映射中,我们可以配置各种转换、源和目标的属性,此外,在此部分我们还可以查看和覆盖这些属性。就像一个地方可以查看所有这些属性一样。
映射中的连接属性
使用此属性,您可以定义源和目标的数据库连接。
源属性
在此部分,您可以配置与映射的源相关的属性。您可以配置源的预处理和后处理 SQL 脚本。
通过 SQL 查询属性,您可以覆盖源的 SQL。您还可以在此部分覆盖源表名。
目标属性
在此部分,您可以配置目标的详细信息。您可以定义目标加载是批量加载还是正常模式。
在批量加载中,性能提升是因为在加载过程中数据库不管理重做日志缓冲区。
另一方面,与批量加载相比,正常加载速度较慢,但在发生故障时可以进行数据库恢复。
您还可以定义在填充目标表之前截断目标表的属性。这意味着在将任何记录加载到目标之前,将截断目标表,然后执行加载。当我们在暂存加载中创建映射时,此属性很有用。
我们还可以定义目标表的预处理 SQL 和后处理 SQL。预处理 SQL 是在向目标表执行插入之前执行的 SQL 代码片段,后处理 SQL 代码将在目标表加载完成后执行。
会话任务的成功或失败
当工作流中有多个会话时,可能会出现一个或多个会话失败的情况。在这种情况下,会出现一个问题,即工作流的状态是什么,因为您有一个工作流,其中一些任务已失败,而另一些任务已成功。为了处理这种情况,Informatica 提供了在工作流内设置此失败特定属性的选项。要配置此类行为 –
步骤 1)打开我们之前创建的工作流“wkf_run_command”。
步骤 2)双击命令任务,这将打开编辑任务窗口。
- 选择“常规”选项卡。
- 选择“如果此任务失败,则父任务失败”属性旁边的复选框。
- 选择“确定”按钮
步骤 3)双击会话任务,这将打开编辑任务窗口。
- 选择“常规”选项卡。
- 选择“如果此任务失败,则父任务失败”属性旁边的复选框。
- 选择“确定”按钮
步骤 4)使用 ctrl+s 快捷方式保存更改。
在您进行上述更改后执行此工作流时,如果任何任务失败,工作流状态将设置为失败。因此,您可以识别在工作流执行期间其某些任务已失败。