Informatica 中的表达式转换

Informatica 中的表达式转换是一种无状态转换,用于对源数据执行非聚合计算。这意味着您可以使用此 Informatica 表达式转换对单行执行计算。例如,您可以修剪多余的空格、进行数据转换、字符串操作等。

以下是 Informatica 中的表达式转换实现的一些操作:

  • 使用 Informatica 中的此表达式转换,我们可以使用条件语句 IIF 来测试数据,然后再将其传递给另一个转换或目标表。
  • 数据操作: 我们可以使用内置函数来操作数据。例如,字符串连接、使用 LTRIM 和 RTRIM 修剪多余的空格、对值进行四舍五入等。
  • 数据转换: 使用 TO_DATE、TO_DECIMAL 等将现有数据转换为所需格式。
  • 操作日期值: 提取日期部分、计算日期差等。
  • 执行算术和逻辑运算。

本示例说明了在 Informatica 中配置表达式转换以存储审计信息的步骤。对于此示例,我们将使用以下显示数据。

Source Table

在实际应用中,这些审计信息对于检查会话时间、映射名称、工作流名称、会话名称、集成服务名称、存储库服务名称、存储库用户名、源表名称、会话开始时间以及系统日期将非常有帮助。

在 Informatica 中配置表达式转换

在此示例中,我们的任务是将源中的 [名字]、[姓氏] 和 [年收入] 与审计信息一起加载到目标表中。在开始配置 Informatica 中的表达式转换之前,请先连接到存储库服务。

要连接到 Informatica 存储库服务,我们需要提供安装服务器时指定的 管理员控制台 用户名和密码。接下来,单击“连接”按钮。

PowerCenter Admin page

创建源定义

连接后,请导航到 源分析器 并定义您的源。在此 Informatica 表达式转换示例中,我们将使用 SQL Server 数据库中的 [Employ] 表作为我们的源定义。请参考 数据库源 文章了解源定义。

Source Analyzer

创建目标定义

请导航到 目标设计器 并定义 Informatica 表达式转换目标。在此示例中,我们将使用已创建的 SQL 表(表达式转换)作为我们的目标定义。请参考 使用源定义创建目标表 文章。

Target 1

在 Informatica 映射中创建表达式转换

要创建新的表达式转换映射,请导航到“映射”菜单并选择“创建..”选项。这将打开“映射名称”窗口,您可以在其中输入一个唯一的名称(m_Expression_Transformation),然后单击“确定”按钮。

Assign New Mapping Name 2

接下来,将 [Employ] 源定义从“源”文件夹拖放到映射设计器。拖动源后,PowerCenter 设计器将自动创建一个名为 源限定符 的默认转换。

在 Informatica 中创建表达式转换

要创建表达式转换,请导航到“转换”菜单并选择“创建..”选项。

Expression Transformation in Informatica 3

单击“创建..”选项后,将打开“创建转换”窗口。请选择 Informatica 表达式转换并指定一个唯一的名称(exp_Audit_Information),然后单击“创建”按钮。

Expression Transformation in Informatica 4

单击“创建”按钮后,表达式转换将添加到映射设计器。请将源定义连接到转换。

从下面的屏幕截图中,您可以看到我们正在将 [名字]、[姓氏] 和 [年收入] 添加到表达式转换中。

Expression Transformation in Informatica 5

双击 Informatica 表达式转换以编写自定义表达式。从下面的屏幕截图中,您可以看到“转换”选项卡中可用的属性列表。

  • 选择转换: 默认情况下,它将选择您单击的转换。
  • 重命名: 此按钮将帮助您将表达式转换重命名为更有意义的名称。
  • 设为可重用: 如果选中此选项,此转换将成为可重用转换。
  • 描述: 请提供有效的描述。
Expression Transformation in Informatica 6

下面的屏幕截图将显示 Informatica 表达式转换“端口”选项卡中可用选项的列表。

  • 端口名称: 可用列名列表。通过单击“新建列”按钮,您可以添加新列,通过单击剪刀按钮,您可以删除不需要的列。
  • I: 在此部分下标记为“✓”的列是表达式转换的输入列。
  • O: 在此部分下标记为“✓”的列是表达式转换的输出列。如果取消选中任何列,则该列将无法加载到目标表中。
  • V: 如果它是变量,请在此处标记。

从下面的屏幕截图中,我们使用“新建端口”按钮添加了 9 个新列。

我们将使用这些新列来存储审计信息,例如映射名称、工作流名称、会话名称、集成服务名称、存储库服务名称、存储库用户名、源表名称、会话开始时间以及系统日期。

提示:所有这些新列都只是输出端口。因此,请勾选 O。

Expression Transformation in Informatica 7

让我们编写自定义表达式以获取所需信息。为此,请单击“映射名称”旁边的箭头按钮。

Expression Transformation in Informatica 8

这将打开“表达式编辑器”以编写自定义表达式。在这里,我们需要映射名称。因此,请转到“变量”选项卡,然后选择一个名为 $PMMappingName 的内置变量。

Built-in Variables 10

请为 Informatica 表达式转换中的其余字段添加适当的内置变量。

  • 工作流名称:$PMWorkflowName
  • 会话名称:$PMSessionName
  • 集成服务名称:$PMIntegrationServiceName
  • 存储库服务名称:$PMRepositoryServiceName
  • 存储库用户名:$PMRepositoryUserName
  • 源表名称:$PMEmploy@TableName
  • 会话开始时间:SSSSTARTTIME
  • 系统日期:SYSDATE
Expression Transformation in Informatica 11

完成 Informatica 表达式转换 的表达式配置后。单击“确定”关闭转换窗口。接下来,将目标定义(表达式转换)从“目标”文件夹拖放到映射设计器。然后,使用“自动链接..”选项将表达式转换连接到目标定义。

让我们通过转到“映射”菜单栏并选择“验证”选项来验证映射。

Expression Transformation in Informatica 12

从上面的屏幕截图中,您可以看到我们的映射是有效的。

在 Informatica 中为表达式转换创建工作流

完成映射创建后,我们必须为其创建工作流。PowerCenter 工作流管理器提供两种创建工作流的方法。

在此表达式转换示例中,我们将手动创建工作流。创建工作流后,下一步是为我们的映射创建会话任务。

步骤 4(a)

有两种类型的会话

对于此 Informatica 表达式转换示例,我们将创建一个非可重用会话。请导航到“任务”菜单并选择“创建”选项以打开“创建任务”窗口。在这里,您必须选择“会话”作为任务类型(默认),并为会话输入一个唯一的名称(S_Expression_Transformation)。

单击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,您必须选择要与此会话关联的映射。

从下面的屏幕截图中,您可以看到我们正在选择之前(在步骤 3 中)创建的映射(m_Expression_Transformation)。

Choose mappings 13

双击“会话任务”进行配置。尽管我们必须设置源、目标和一些通用属性,但我们在此处不进行解释。我们强烈建议访问 会话 文章以了解这些功能。

从下面的屏幕截图中,您可以看到 Informatica 工作流中的表达式转换是有效的。现在,让我们通过在“工作流”菜单中选择“启动工作流”选项来启动工作流。

Expression Transformation in Informatica 14

选择“启动工作流”选项后,将打开 PowerCenter 工作流监视器来监视工作流。从下面的屏幕截图中,可以看到我们的 Informatica 表达式转换工作流已成功执行,没有错误。

Expression Transformation in Informatica 15

让我们打开 SQL Server Management Studio,检查我们是否使用表达式转换成功存储了审计信息。

Destination Table

评论已关闭。