Informatica序列生成器转换

Informatica中的序列生成器转换是一个连接的转换,用于生成数字。我们可以主要使用此转换来生成主键和外键,或者用唯一的键填充或替换缺失的主键。

Informatica中的序列生成器转换有两个输出端口,即NEXTVAL和CURRVAL,它不允许用户创建新端口或修改/删除现有端口。

在本文中,我们将通过一个示例解释配置序列生成器转换所涉及的步骤。对于这个示例,我们将使用下面显示的数据。

配置Informatica序列生成器转换

在开始配置序列生成器转换之前,首先连接到存储库服务。为了连接到存储库服务,我们必须提供管理员控制台凭据。因此,请提供适当的用户名和密码,然后单击“连接”按钮。

提示:在这里,您必须提供在安装服务器时指定的Informatica管理员用户名和密码。

步骤1:为Informatica序列生成器转换创建源定义

成功连接后,请导航到源分析器并定义您的源。在此序列生成器转换示例中,我们将使用SQL Server数据库中的[Employ]表作为源定义。请参考数据库源以了解创建源定义所涉及的步骤。

步骤2:创建目标定义

请导航到目标设计器并定义目标。在此Informatica序列生成器转换示例中,我们将使用已创建的SQL表(序列生成器)作为目标定义。请参考使用源定义创建目标表以了解创建目标定义所涉及的步骤。

为Informatica序列生成器转换创建映射

要创建新映射,请导航到菜单栏中的“映射”菜单,然后选择“创建..”选项。这将打开“映射名称”窗口。在这里,您必须为该映射(m_Sequence_Generator)写一个唯一的名称,然后单击“确定”按钮。

提示:请参阅 Mapping 文章以了解创建 Mapping 所涉及的步骤。

Sequence Generator Transformation in Informatica 2

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

创建Informatica序列生成器转换

要创建序列生成器转换,请导航到菜单栏中的“转换”菜单,然后选择“创建..”选项,如下图所示。

Sequence Generator Transformation in Informatica 3

单击“创建..”选项后,将打开“创建转换”窗口。请从下拉列表中选择Informatica序列生成器,为该转换指定一个唯一的名称(seq_Employee),然后单击“创建”按钮。

Sequence Generator Transformation in Informatica 4

单击“创建”按钮后,序列生成器转换将添加到映射设计器。接下来,将目标定义(序列生成器)从“目标”文件夹拖放到映射设计器,并将源限定符、转换与目标定义连接起来。请使用“自动链接..”选项进行连接。

Sequence Generator Transformation in Informatica 5

从上面的屏幕截图中,您可以观察到Informatica序列生成器转换会生成两个默认项:NEXTVAL和CURRVAL。NEXTVAL端口是我们必须为其分配Employee_ID的端口,而CURRVAL必须在转换编辑器内部进行分配。

双击序列生成器转换以生成序列号。从下面的屏幕截图中,您可以看到转换选项卡中可用属性的列表。

  • 选择转换:默认情况下,它将选择您单击的转换。
  • 重命名:此按钮将帮助您将序列生成器转换重命名为更具描述性的名称。
  • 设为可重用:如果您选中此选项,则此转换将成为可重用转换。
  • 描述:请为此转换提供有效的描述。

下面的屏幕截图将显示Informatica序列生成器转换端口选项卡中可用选项的列表。

  • 端口名称:可用列名称列表。通过单击“新列”按钮,您可以添加新列,通过单击剪刀按钮,您可以删除不需要的列。
  • I:序列生成器转换不允许输入列。
  • O:在此部分下被选中复选框的列是序列生成器转换的输出列。如果您取消选中任何列,则该列将无法加载到目标表中。

下面的屏幕截图将显示Informatica序列生成器转换属性选项卡中可用选项的列表。

  • 起始值:请输入您想要开始的值。例如,1用于ID或主键值的起始或最大值加一。
  • 增量:请输入您想要用作序列增量的值。例如,1表示值将增加1(1, 2, 3, ...),如果您指定2,则值为2, 4, 6, 8...
  • 结束值:请在此处指定结束值。例如,如果指定结束值为10,则序列将在达到10时停止。
  • 当前值:请在此处指定当前值。例如,如果您指定当前值为3,则序列将从3开始,并使用“增量”选项递增值,直到达到“结束值”。一旦达到结束值,它将从起始值开始重复循环。
  • 循环:请指定您是否希望重复循环。例如,如果您的结束值小于现有行,则选择“循环”选项会更好,或者如果您希望重复相同的数字序列,则选择此选项。
  • 重置:请指定您是否希望为每个会话重置序列。
Sequence Generator Transformation in Informatica 8

从下面的屏幕截图中,您可以观察到我们指定的属性。在这里,Informatica序列生成器转换将从值1开始序列,并以2递增,直到达到6。达到结束值后,序列生成器将从0(起始值)开始序列。

Sequence Generator Transformation 9

完成属性配置后,单击 OK 关闭转换窗口。

Sequence Generator Transformation in Informatica 10

在我们关闭映射之前,让我们通过转到“映射”菜单栏并选择“验证”选项来验证它。

步骤 4:创建工作流

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

在此Informatica序列生成器转换示例中,我们将手动创建工作流。要创建新工作流,请导航到“工作流”菜单并选择“创建”选项。这将打开“创建工作流”窗口,如下图所示。请提供唯一的名称(wf_Rank_Transformation)并保留默认设置。

Sequence Generator Transformation 11

创建完工作流后,下一步是为我们的映射创建会话任务。

注意:我们强烈建议参考工作流文章以了解手动创建工作流所涉及的步骤。

步骤4(a):为序列生成器转换创建会话

有两种类型的会话

  • 非可重用会话任务:请参考 会话 文章来了解其中涉及的步骤。
  • 可重用会话任务:请参考 可重用会话 文章来了解其中涉及的步骤。

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

单击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,您必须选择要与此会话关联的映射。从下面的屏幕截图中,您可以观察到我们正在选择之前(步骤3)创建的映射(m_Rank_Transformation)。

双击“会话任务”进行配置。尽管我们必须配置源、目标和一些通用属性,但我们仅解释了其中一些属性。我们强烈建议访问会话文章以了解其余属性。

从下面的屏幕截图中,您可以观察到Informatica工作流中的序列生成器转换是有效的。现在,让我们通过导航到“工作流”菜单并选择“启动工作流”选项来启动工作流。

Sequence Generator Transformation in Informatica 13

选择序列生成器转换“启动工作流”选项后,PowerCenter工作流监视器将打开以对其进行监视。从下面的屏幕截图中,您可以观察到我们的工作流已成功执行,没有任何错误。

Sequence Generator Transformation 14

让我们打开SQL Server Management Studio,检查我们是否使用序列生成器转换成功生成了Employee_Id。

让我们更改起始值、结束值和增量值的属性,如下图所示。接下来,刷新映射并启动工作流。

Alter Sequence Start, End and Increment Value 16

让我们打开SQL Server Management Studio,检查我们是否使用Informatica中的序列生成器转换成功生成了序列Employee_Id。

Target Table output 17