Informatica 工作流:创建、任务、参数、可重用、管理器

什么是工作流?

工作流是 Informatica 中一系列指令/命令的集合。集成服务是一个实体,它从存储库读取工作流信息,从源获取数据,并在执行转换后将其加载到目标中。

工作流 – 它定义了如何运行任务,例如会话任务、命令任务、邮件任务等。

创建工作流

  1. 您首先需要创建任务
  2. 然后将这些任务添加到工作流中。

工作流就像一个空的容器,可以存储您想要执行的对象。您将需要执行的任务添加到工作流中。在本教程中,我们将在工作流中执行以下操作。

Workflow in Informatica

工作流的执行可以有两种方式

  • 顺序:任务按定义的顺序执行
  • 基于事件:任务根据事件条件执行。

如何打开工作流管理器

步骤 1)在 Informatica Designer 中,单击“工作流管理器”图标

Open Workflow Manager

步骤 2)这将打开一个工作流管理器窗口。然后,在工作流管理器中。

  1. 我们将连接到存储库“guru99”,因此双击该文件夹进行连接。
  2. 输入用户名和密码,然后选择“连接”按钮。

Open Workflow Manager

步骤 3)在工作流管理器中。

  1. 右键单击文件夹
  2. 在弹出菜单中,选择“打开”选项

Open Workflow Manager

这将打开工作流管理器的工作区。

Open Workflow Manager

如何为工作流管理器创建连接

要执行工作流管理器中的任何任务,您需要创建连接。通过这些连接,集成服务可以连接到不同的对象。

例如,在您的 映射 中,如果您的源表在 Oracle 数据库中,那么您将需要 Oracle 连接,以便集成服务可以连接到 Oracle 数据库以获取源数据。

可以在工作流管理器中创建以下类型的连接。

  • 关系型连接
  • FTP 连接
  • 队列
  • 应用

您创建的连接类型将取决于您要连接的源和目标系统的类型。大多数情况下,您会使用关系型连接

创建关系型连接

步骤 1)在工作流管理器中

  1. 单击“连接”菜单
  2. 选择“关系型”选项

Create a Relational Connection

步骤 2)在弹出窗口中

  1. 在类型中选择 Oracle
  2. 单击“新建”按钮

Create a Relational Connection

步骤 3)在新连接对象定义窗口中

  1. 输入连接名称(新名称-guru99)
  2. 输入用户名
  3. 输入密码
  4. 输入连接字符串
  5. 将其他设置保留为默认值,然后选择“确定”按钮

Create a Relational Connection

步骤 4)您将返回到之前的窗口。单击“关闭”按钮。

Create a Relational Connection

现在您已在工作流管理器中设置了关系型连接。

工作流管理器的组件

工作流管理器有三个组件工具,用于在工作流管理器中创建各种对象。这些工具是

  • 任务开发者
  • 工作流设计器
  • 工作流设计器

Components of Workflow manager

任务开发者 – 任务开发者是一个工具,您可以通过它创建可重用对象。工作流管理器中的可重用对象是可以在多个工作流中重用的对象。例如,如果您在任务开发者中创建了一个命令任务,那么您可以在任何数量的工作流中重用该任务。

工作流设计器的作用是执行其中添加的任务。您可以在工作流中添加任意数量的任务。

您可以在任务开发者中创建三种可重用任务。

  • 命令任务
  • 会话任务
  • 邮件任务

命令任务 – 命令任务用于在工作流执行期间执行不同的 Windows/Unix 命令。您可以创建命令任务来执行各种基于命令的任务。借助此任务,您可以执行命令来创建文件/文件夹、删除文件/文件夹、传输文件等。

会话任务 – Informatica 中的会话任务是运行映射所必需的。

  • 没有会话任务,您无法执行或运行映射
  • 一个会话任务只能执行一个映射。因此,映射和会话之间存在一对一的关系
  • 会话任务是一个对象,通过它,Informatica 能够了解如何以及在何处执行映射以及何时执行。
  • 会话不能独立执行,会话必须添加到工作流中。
  • 会话对象中可以配置缓存属性,也可以配置高级性能优化。

邮件任务 – 借助邮件任务,您可以在集成服务运行工作流时向定义的收件人发送电子邮件。例如,如果您想监视会话完成需要多长时间,您可以配置会话以发送包含会话开始和结束时间详细信息的电子邮件。或者,如果您希望集成服务在工作流完成/失败时通知您,您可以配置邮件任务。

如何创建命令任务

步骤 1)要创建命令任务,我们将使用任务开发者。在工作流管理器中,通过单击菜单中的“任务开发者”选项卡来打开任务开发者。

Create Command Task

步骤 2)打开任务开发者后,请按照以下步骤操作

  1. 选择“任务”菜单
  2. 选择“创建”选项

Create Command Task

步骤 3)在创建任务窗口中

  1. 选择命令作为要创建的任务类型
  2. 输入任务名称
  3. 选择“创建”按钮

Create Command Task

这将创建命令任务文件夹。现在您需要配置任务以添加命令,我们将在下一步中看到。

Create Command Task

步骤 4)要配置任务,请双击命令任务图标,它将打开一个“编辑任务”窗口。在新编辑任务窗口中

  1. 选择“命令”菜单
  2. 单击“添加新命令”图标
  3. 输入命令名称
  4. 单击命令图标添加命令文本

这将打开一个命令编辑器框。

Create Command Task

步骤 5)在命令编辑器框中,输入命令“mkdir C:\guru99”(这是创建名为“guru99”的文件夹的 Windows 命令),然后选择“确定”。

Create Command Task

在此步骤之后,您将返回到编辑任务窗口,并且您将能够看到添加到命令文本框中的命令。

步骤 6)在编辑任务窗口中单击“确定”,

Create Command Task

命令任务将在任务开发者中“Guru99”存储库下创建。

Create Command Task

注意使用 Ctrl+S 快捷键在存储库中保存更改

Create Command Task

如何创建工作流来执行命令任务

要执行命令任务,您必须切换到工作流设计器。工作流设计器是一个父对象或容器对象,您可以在其中添加多个任务,当工作流执行时,所有添加的任务都将执行。创建工作流

步骤 1)通过单击“工作流设计器”菜单打开工作流设计器

Create Workflow to Execute Command Task

步骤 2)在工作流设计器中

  1. 选择“工作流”菜单
  2. 选择创建选项。

Create Workflow to Execute Command Task

步骤 3)在创建工作流窗口中

  1. 输入工作流名称
  2. 选择“确定”按钮(将其他选项保留为默认值)

Create Workflow to Execute Command Task

这将创建工作流。

命名约定 - 工作流名称通常以‘wkf_’为前缀,如果您有一个名为‘s_m_employee_detail‘ 的会话,那么相应的工作流可以命名为‘wkf_s_m_employee_detail’

Create Workflow to Execute Command Task

当您创建工作流时,它不包含任何任务。因此,要执行工作流中的任何任务,您必须在其添加任务。

步骤 4)将我们在任务开发者中创建的命令任务添加到工作流设计器

  1. 在导航树中,展开“任务”文件夹
  2. 将命令任务拖放到工作流设计器中

Create Workflow to Execute Command Task

步骤 5)从工具箱的顶部菜单中选择“链接任务”选项。(链接任务选项将工作流中的各种任务链接到开始任务,从而可以定义任务的执行顺序)。

Create Workflow to Execute Command Task

步骤 6)选择链接任务图标后,它将允许您在开始任务和命令任务之间拖动链接。现在选择开始任务并拖动链接到命令任务。

Create Workflow to Execute Command Task

现在您已准备好一个包含要执行的命令任务的工作流。

如何执行工作流

步骤 1)要执行工作流

  1. 从菜单中选择“工作流”选项
  2. 选择“开始工作流”选项

Execute Workflow

这将打开 工作流监视器 窗口并执行工作流

Execute Workflow

工作流执行后,它将执行命令任务以在定义的目录中创建文件夹(guru99 文件夹)。

Execute Workflow

会话任务

Informatica 中的会话任务是运行映射所必需的。

没有会话任务,您无法执行或运行映射,并且一个会话任务只能执行一个映射。因此,映射和会话之间存在一对一的关系。会话任务是一个对象,通过它 Informatica 能够了解如何以及在何处执行映射以及何时执行。会话不能独立执行,必须将会话添加到工作流中。在会话对象中可以配置缓存属性,也可以配置高级性能优化。

如何创建会话任务

在此练习中,您将为主映射“m_emp_emp_target”(您在上篇文章中创建)创建会话任务。

步骤 1)打开工作流管理器并打开任务开发者

Create a Session Task

步骤 2)现在任务开发者打开后,在工作流管理器中转到主菜单

  1. 单击“任务”菜单
  2. 选择创建选项。

Create a Session Task

这将打开一个新窗口“创建任务”

步骤 3)在创建任务窗口中

  1. 选择会话任务作为任务类型。
  2. 输入任务名称。
  3. 单击“创建”按钮

Create a Session Task

步骤 4)将出现一个选择映射的窗口。选择您想与此会话关联的映射,在此示例中选择“m_emp_emp_target”映射,然后单击“确定”按钮。

Create a Session Task

步骤 5)之后,单击“完成”按钮

Create a Session Task

会话对象将出现在任务开发者中

Create a Session Task

步骤 6)在此步骤中,您将为会话任务创建工作流。单击“工作流设计器”图标。

Create a Session Task

步骤 7)在工作流设计器工具中

  1. 单击“工作流”菜单
  2. 选择创建选项。

Create a Session Task

步骤 8)在创建工作流窗口中

  1. 输入工作流名称
  2. 选择“确定”。(将其他属性保留为默认值,无需更改任何属性)

Create a Session Task

在工作流管理器中将出现一个开始任务,它是工作流执行的起点。

Create a Session Task

步骤 9)在工作流管理器中

  1. 展开导航树下的“会话”文件夹。
  2. 将您创建的会话拖放到工作流管理器工作区中。

Create a Session Task

步骤 10)在工具箱中单击“链接任务”选项。

Create a Session Task

步骤 11)使用链接连接开始任务和会话任务。

Create a Session Task

步骤 12)双击工作流管理器中的会话对象。它将打开一个任务窗口以修改任务属性。

步骤 13)在编辑任务窗口中

  1. 选择“映射”选项卡
  2. 选择“连接”属性
  3. 为源和目标分配连接,即我们在早期步骤中创建的连接。
  4. 选择“确定”按钮

Create a Session Task

现在您的工作流配置已完成,您可以执行工作流了。

Create a Session Task

如何将多个任务添加到开始任务

开始任务是工作流执行的起点。有两种方法可以将多个任务链接到开始任务。

  1. 并行
  2. 串行

并行链接的任务直接链接到开始任务,并且所有任务同时开始执行。

如何并行添加任务

步骤 1)在工作流管理器中,打开工作流“wkf_run_command”

Add Tasks in Parallel

步骤 2)在工作流中,添加会话任务“s_m_emp_emp_target”。(通过选择会话然后拖放)

Add Tasks in Parallel

步骤 3)从工具箱中选择“链接任务”选项

Add Tasks in Parallel

步骤 4)将会话任务链接到开始任务(通过单击开始任务,按住鼠标并连接到会话任务)

Add Tasks in Parallel

链接会话任务后,工作流将如下所示。

Add Tasks in Parallel

步骤 5)启动工作流并在工作流监视器中进行监视。

Add Tasks in Parallel

Add Tasks in Parallel

如何以串行模式添加任务

但在我们以串行模式添加任务之前,我们必须删除已添加的任务以演示并行执行任务。为此

步骤 1)打开工作流“w.kf_run_command”

  1. 选择到会话任务的链接。
  2. 在菜单中选择“编辑”选项
  3. 选择“删除”选项

Add Tasks in Serial Mode

步骤 2)确认对话框将出现在窗口中,选择“是”选项

Add Tasks in Serial Mode

开始任务和会话任务之间的链接将被移除。

Add Tasks in Serial Mode

步骤 3)现在再次转到顶部菜单,从工具箱中选择“链接任务”选项

Add Tasks in Serial Mode

步骤 4)将会话任务链接到命令任务

Add Tasks in Serial Mode

链接后工作流将如下所示

Add Tasks in Serial Mode

步骤 5)为了使工作流的视觉外观更清晰

  1. 右键单击工作流的工作区
  2. 选择“排列”菜单
  3. 选择“水平”选项

Add Tasks in Serial Mode

Add Tasks in Serial Mode

如果您启动工作流,命令任务将首先执行,并且在执行完成后,会话任务将开始。

工作流变量

工作流变量允许工作流中的不同任务相互交换信息,也允许任务访问工作流中其他任务的某些属性。例如,要获取当前日期,您可以使用内置变量“sysdate”。

最常见的情况是,当您在一个工作流中有多个任务,并且在一个任务中访问另一个任务的变量时。例如,如果您有两个任务在一个工作流中,并且要求只有当第一个任务成功执行时才执行第二个任务。您可以使用工作流中的预定义变量来实现这种情况。

实现场景

我们有一个工作流“wkf_run_command”,其中任务以串行模式添加。现在我们将为会话任务和命令任务之间的链接添加一个条件,以便只有在命令任务成功后才会执行会话任务。

步骤 1)打开工作流“wkf_run_command”

Implementing the Scenario

步骤 2)双击会话和命令任务之间的链接

Implementing the Scenario

将出现一个表达式窗口

Implementing the Scenario

步骤 3)双击“cmd_create_folder”菜单下的状态变量。变量“$cmd_create_folder.status”将出现在右侧编辑器窗口中。

Implementing the Scenario

步骤 4)现在我们将设置变量“$cmd_create_folder.status”的条件为成功状态。这意味着当上一个任务执行并且执行成功时,才会执行下一个会话任务。

  1. 将变量更改为“$cmd_create_folder.status=SUCCEEDED”值。
  2. 单击“确定”按钮

Implementing the Scenario

工作流将如下所示

Implementing the Scenario

当您执行此工作流时,命令任务将首先执行,只有在成功后,会话任务才会执行。

工作流参数

工作流参数是在运行过程中保持不变的值。一旦分配了其值,它将保持不变。参数可以在工作流属性中使用,并且可以在参数文件中定义其值。例如,您可以使用参数/变量来代替硬编码的连接值,并在参数文件中定义值。

参数文件是在其中定义映射/工作流变量或参数值的文件。这些文件具有“.par”扩展名。作为一般标准,通常为工作流创建一个参数文件。

参数文件的优点

  • 有助于将代码从一个环境迁移到另一个环境
  • 便于调试和测试
  • 无需更改代码即可轻松修改值

参数文件的结构

参数文件的结构

  • [文件夹名.WF:工作流名]
  • $参数名=参数值

文件夹名是存储库文件夹的名称,工作流名是您要为其创建参数文件的工作流的名称。

我们将为数据库连接“guru99”创建一个参数文件,该连接我们在之前的会话中为源和目标分配过。

如何创建参数文件

步骤 1)创建一个新的空文件(记事本文件)

Create Parameter File

步骤 2)在文件中输入如图所示的文本

Create Parameter File

步骤 3)将文件保存在“C:\guru99”位置的 guru99 文件夹下,文件名为“wkf_run_command.par”

Create Parameter File

在文件中,我们创建了一个参数“$DBConnection_SRC”,我们将把它分配给工作流中的一个连接。

步骤 4)打开工作流“wkf_run_command”

  1. 选择“工作流”菜单
  2. 选择“编辑”选项

Create Parameter File

步骤 5)这将打开“编辑工作流”窗口,在该窗口中

  1. 转到“属性”选项卡菜单
  2. 输入参数文件名,如“c:\guru99\wkf_run_command.par”
  3. 选择“确定”按钮

Create Parameter File

现在我们完成了定义参数文件内容并将其指向工作流。

下一步是将在会话中使用该参数。

步骤 6)在工作流中双击会话“s_m_emp_emp_target”,然后

  1. 选择“映射”选项卡菜单
  2. 在左侧面板中选择“连接”属性
  3. 单击目标连接,该连接现在已硬编码为“guru99”

Create Parameter File

步骤 7)将出现一个连接浏览器窗口,在该窗口中

  1. 选择使用连接变量的选项
  2. 输入连接变量名“$DBConnection_SRC”
  3. 选择“确定”按钮

Create Parameter File

步骤 8)在编辑任务窗口中,目标将显示连接变量,在编辑任务窗口中选择“确定”按钮。

Create Parameter File

现在我们完成了为连接创建参数并将其值分配给参数文件的操作。

当我们执行工作流时,工作流会拾取参数文件,在参数文件中查找其参数/变量的值,并采用这些值。