Informatica 中的工作流:创建、任务、参数、可重用、管理器
什么是工作流?
工作流是 Informatica 中集成服务的一组指令/命令。集成服务是一个实体,它从存储库读取工作流信息,从源获取数据,并在执行转换后将其加载到目标中。
工作流——它定义了如何运行以下任务 会话任务、命令任务、电子邮件任务等等。
创建工作流
- 您首先需要创建任务
- 然后将这些任务添加到工作流程中。
工作流就像一个空容器,它有能力存储您想要执行的对象。您可以将任务添加到要执行的工作流中。在本教程中,我们将在工作流中执行以下操作。
工作流执行可以通过两种方式完成
- 序列 :任务按其定义的顺序执行
- 基于事件: 任务根据事件条件执行。
如何打开工作流管理器
步骤1) 在 Informatica Designer 中,单击工作流管理器图标
步骤2) 这将打开工作流管理器窗口。然后,在工作流管理器中。
- 我们将连接到存储库“guru99”,因此双击该文件夹进行连接。
- 输入用户名和密码,然后选择“连接按钮”。
步骤3) 在工作流管理器中。
- 右键单击文件夹
- 在弹出菜单中,选择打开选项
这将打开工作流管理器的工作区。
如何为工作流管理器创建连接
要在工作流管理器中执行任何任务,您需要创建 连接通过这些连接,集成服务连接到不同的对象。
例如,在你的 制图 如果您在 Oracle 数据库中有源表,那么您将需要 Oracle 连接,以便集成服务可以连接到 Oracle 数据库来获取源数据。
可以在工作流管理器中创建以下类型的连接。
- 关系联系
- Ftp 连接
- 队列
- 申请
您要创建的连接选择取决于您要连接的源系统和目标系统的类型。通常,您会使用 關係連接。
创建关系连接
步骤1) 在 Workflow Manager 中
- 点击连接菜单
- 选择关系选项
步骤2) 在弹出窗口中
- 选择 Oracle 类型
- 点击新按钮
步骤3) 在连接对象定义新窗口中
- 输入连接名称(新名称-guru99)
- 输入用户名
- 输入密码
- 输入连接字符串
- 将其他设置保留为默认设置并选择“确定”按钮
步骤4) 您将返回上一个窗口。单击“关闭”按钮。
现在您已在工作流管理器中设置了关系连接。
工作流管理器的组件
工作流管理器有三个组件工具可帮助在工作流管理器中创建各种对象。这些工具是
- 任务开发者
- 工作集设计器
- 工作流设计器
任务开发者 – 任务开发人员是一个工具,借助它您可以创建可重复使用的对象。工作流管理器中的可重复使用对象是可以在多个工作流中重复使用的对象。例如,如果您在任务开发人员中创建了一个命令任务,那么您可以在任意数量的工作流中重复使用此任务。
工作流设计器的作用是执行在其中添加的任务。您可以在工作流中添加任意数量的任务。
您可以在任务开发人员中创建三种类型的可重复使用任务。
- 命令任务
- 会话任务
- 电子邮件任务
指挥任务 – 命令任务用于在工作流执行期间执行不同的 Windows/Unix 命令。您可以创建命令任务来执行各种基于命令的任务。借助此任务,您可以执行命令 创建文件/文件夹,删除文件/文件夹,对文件进行 ftp 等等
会话任务 – 需要 Informatica 中的会话任务来运行映射。
- 如果没有会话任务,则无法执行或运行映射
- 会话任务只能执行单个映射。因此,映射和会话之间存在一对一的关系
- 会话任务是一个对象,借助该对象 INFORMATICA 了解如何、在何处以及在何时执行映射
- 会话不能独立执行,必须将会话添加到工作流中
- In 会话对象 可以配置缓存属性,还可以配置高级性能优化配置。
电子邮件任务 – 借助电子邮件任务,您可以在集成服务运行工作流时向定义的收件人发送电子邮件。例如,如果您想监控会话完成所需的时间,您可以配置会话以发送包含会话开始和结束时间详细信息的电子邮件。或者,如果您希望集成服务在工作流完成/失败时通知您,您可以为其配置电子邮件任务。
如何创建命令任务
步骤1) 要创建命令任务,我们将使用任务开发人员。在工作流管理器中,单击菜单中的“任务开发人员”选项卡以打开任务开发人员。
步骤2) 打开任务开发人员后,请按照以下步骤操作
- 选择任务菜单
- 选择创建选项
步骤3) 在创建任务窗口中
- 选择命令作为要创建的任务类型
- 输入任务名称
- 选择创建按钮
这将创建命令任务文件夹。现在您必须配置任务以在其中添加命令,我们将在下一步中看到。
步骤4) 要配置任务,请双击命令任务图标,它将打开“编辑任务窗口”。在新的编辑任务窗口中
- 选择命令菜单
- 单击添加新命令图标
- 输入命令名称
- 单击命令图标添加命令文本
这将打开一个命令编辑器框。
步骤5) 在命令编辑器框中,输入命令“mkdir C:\guru99”(这是创建名为“guru99”的文件夹的 Windows 命令),然后选择确定。
完成此步骤后,您将返回到编辑任务窗口,并且您将能够看到添加到命令文本框中的命令。
步骤6) 在编辑任务窗口中单击“确定”,
命令任务将在“Guru99”存储库下的任务开发人员中创建。
备注 使用 ctrl+s 快捷键保存存储库中的更改
如何创建工作流来执行命令任务
要执行命令任务,您必须切换到工作流设计器。工作流设计器是一个父对象或容器对象,您可以在其中添加多个任务,当执行工作流时,所有添加的任务都将执行。要创建工作流
步骤1) 单击工作流设计器菜单打开工作流设计器
步骤2) 在工作流设计器中
- 选择工作流程菜单
- 选择创建选项
步骤3) 在创建工作流窗口中
- 输入工作流名称
- 选择“确定”按钮(其他选项保留默认设置)
这将创建工作流程。
命名约定 – 工作流名称以 ' 为前缀wkf_',如果你有一个名为“s_m_employee_detail' 那么相同的工作流程可以命名为'wkf_s_m_employee_detail'.
当您创建工作流时,它不包含任何任务。因此,要执行工作流中的任何任务,您必须在其中添加任务。
步骤4) 将我们在任务开发人员中创建的命令任务添加到工作流设计器中
- 在导航树中,展开任务文件夹
- 将命令任务拖放到工作流设计器
步骤5) 从顶部菜单的工具箱中选择“链接任务选项”。(链接任务选项将工作流中的各种任务链接到启动任务,以便可以定义任务的执行顺序)。
步骤6) 选择链接任务图标后,您将可以在启动任务和命令任务之间拖动链接。现在选择启动任务并将链接拖到命令任务。
现在您已准备好执行具有命令任务的工作流。
如何执行工作流程
步骤1) 执行工作流
- 从菜单中选择工作流程选项
- 选择开始工作流程选项
这将打开 工作流监视器 窗口并执行工作流程
工作流一旦执行,它将执行命令任务在定义的目录中创建一个文件夹(guru99文件夹)。
会话任务
需要 Informatica 中的会话任务来运行映射。
如果没有会话任务,您就无法执行或运行映射,而会话任务只能执行单个映射。因此,映射和会话之间存在一对一的关系。会话任务是一个对象,借助该对象,Informatica 可以了解如何以及在何时何地执行映射。会话不能独立执行,必须将会话添加到工作流中。在会话对象中可以配置缓存属性,还可以配置高级性能优化配置。
如何创建会话任务
在本练习中,您将为上一篇文章中创建的映射“m_emp_emp_target”创建一个会话任务。
步骤1) 打开工作流管理器并打开任务开发人员
步骤2) 现在,一旦任务开发人员打开,在工作流管理器中转到主菜单
- 点击任务菜单
- 选择创建选项
这将打开一个新窗口“创建任务”
步骤3) 在创建任务窗口中
- 选择会话任务作为任务类型。
- 输入任务名称。
- 点击创建按钮
步骤4) 会出现一个选择映射的窗口。选择您想要与此会话关联的映射,本例中选择“m_emp_emp_target”映射并单击“确定”按钮。
步骤5) 之后,点击“完成”按钮
会话对象将出现在任务开发人员
步骤6) 在此步骤中,您将为会话任务创建工作流。单击工作流设计器图标。
步骤7) 在工作流设计器工具中
- 点击工作流程菜单
- 选择创建选项
步骤8) 在创建工作流窗口中
- 输入工作流名称
- 选择确定。(保留其他属性的默认设置,无需更改任何属性)
在工作流管理器中将出现一个启动任务,它是工作流执行的起点。
步骤9) 在工作流管理器中
- 展开导航树下的会话文件夹。
- 将您创建的会话拖放到工作流管理器工作区中。
步骤10) 点击工具箱中的链接任务选项。
步骤11) 使用链接将启动任务和会话任务链接起来。
步骤12) Double 点击工作流管理器中的会话对象。它将打开一个任务窗口来修改任务属性。
步骤13) 在编辑任务窗口中
- 选择映射选项卡
- 选择连接属性
- 将连接分配给源和目标,即我们在早期步骤中创建的连接。
- 选择“确定”按钮
现在您的工作流配置已完成,您可以执行该工作流。
如何将多个任务添加到开始任务
启动任务是工作流执行的起点。将多个任务链接到一个启动任务有两种方法。
- 并行
- 串行
在并行链接中,任务直接链接到启动任务,并且所有任务同时开始并行执行。
如何并行添加任务
步骤1)在工作流管理器中,打开工作流“wkf_run_command”
步骤2)在工作流中,添加会话任务“s_m_emp_emp_target”。(通过选择会话然后拖放)
步骤3)从工具箱中选择链接任务选项
步骤4) 将会话任务链接到启动任务(通过单击启动任务,按住单击并连接到会话任务)
链接会话任务后,工作流程将如下所示。
步骤5)启动工作流并在工作流监视器中监视。
如何以串行模式添加任务
但在以串行模式添加任务之前,我们必须删除我们添加的任务,以演示任务的并行执行。为此
步骤1)打开工作流“w.kf_run_command”
- 选择会话任务的链接。
- 在菜单中选择编辑选项
- 选择删除选项
步骤2)窗口中会出现确认对话框,选择“是”选项
启动任务和会话任务之间的链接将被删除。
步骤3)现在再次转到顶部菜单并从工具箱中选择链接任务选项
步骤4)将会话任务链接到命令任务
链接后工作流程将如下所示
步骤5) 使工作流程的视觉外观更加清晰
- 右键单击工作流的工作区
- 选择排列菜单
- 选择水平选项
如果您启动工作流,命令任务将首先执行,执行完毕后,会话任务将启动。
工作流变量
工作流变量允许工作流中的不同任务相互交换信息,还允许任务访问工作流中其他任务的某些属性。例如,要获取当前日期,您可以使用内置变量“sysdate”。
最常见的情况是,工作流中有多个任务,并且在一个任务中访问另一个任务的变量。例如,如果工作流中有两个任务,并且要求只有当第一个任务成功执行后才执行第二个任务。您可以使用工作流中的预定义变量来实现这种情况。
实现场景
我们有一个工作流“wkf_run_command”,其中以串行方式添加任务。现在我们将在会话任务和命令任务之间的链接中添加一个条件,这样,只有在命令任务成功后,才会执行会话任务。
步骤1) 打开工作流“wkf_run_command”
步骤2) Double 点击会话和命令任务之间的链接
将出现一个“表达式”窗口
步骤3)Double 点击“cmd_create_folder”菜单下的status变量,右侧的编辑窗口中会出现一个变量“$cmd_create_folder.status”。
步骤4) 现在我们将变量“$cmd_create_folder.status”的条件设置为成功状态。这意味着当前面的任务执行完毕,并且执行成功时,才执行下一个会话任务。
- 将变量更改为“$cmd_create_folder.status=SUCCEEDED”值。
- 单击“确定”按钮
工作流程如下
执行此工作流时,命令任务首先执行,只有当命令任务成功时,才会执行会话任务。
工作流参数
工作流参数是那些在整个运行过程中保持不变的值。一旦指定了值,它就保持不变。参数可用于工作流属性,其值可在参数文件中定义。例如,您可以在连接名称中使用参数/变量,而不是使用硬编码的连接值,并且可以在参数文件中定义值。
参数文件是我们定义映射/工作流变量或参数值的文件。这些文件的扩展名为“.par”。作为一般标准,会为工作流创建一个参数文件。
参数文件的优点
- 帮助将代码从一个环境迁移到另一个环境
- 可以轻松调试和测试
- 无需更改代码即可轻松修改值
参数文件的结构
参数文件的结构
- [文件夹名称.WF:工作流名称]
- $参数名称=参数值
Folder_name 是存储库文件夹的名称,工作流名称是您正在为其创建参数文件的工作流的名称。
我们将为数据库连接“guru99”创建一个参数文件,该文件是我们早期会话中为源和目标分配的。
如何创建参数文件
步骤1)新建一个空文件(记事本文件)
步骤2)在文件中输入文本,如图所示
步骤3) 将文件保存在“C:\guru99”文件夹下的 guru99 下,文件名为“wkf_run_command.par”
在文件中我们创建了一个参数“$DBConnection_SRC”,我们将把它分配给工作流中的一个连接。
步骤4)打开工作流“wkf_run_command”
- 选择工作流程菜单
- 选择编辑选项
步骤5)这将打开编辑工作流程窗口,在此窗口中
- 转到属性选项卡菜单
- 输入参数文件名为“c:\guru99\wkf_run_command.par”
- 选择“确定”按钮
现在我们已经完成了定义参数文件内容并将其指向工作流。
下一步是在会话中使用该参数。
步骤6) 在工作流中双击会话“s_m_emp_emp_target”,然后
- 选择映射选项卡菜单
- 在左侧面板中选择连接属性
- 单击目标连接,该连接现在被硬编码为“guru99”
步骤7)将出现一个连接浏览器窗口,在该窗口中
- 选择使用连接变量的选项
- 输入连接变量名称为“$DBConnection_SRC”
- 选择“确定”按钮
步骤8) 在编辑任务窗口中将出现目标的连接变量,在编辑任务窗口中选择“确定”按钮。
现在我们已经完成了为连接创建参数并将其值分配给参数文件。
当我们执行工作流时,工作流会选择参数文件,在参数文件中查找其参数/变量的值并获取这些值。