Funnel阶段
Funnel阶段是一个处理阶段。它将多个输入数据集复制到单个数据集,该操作对于将单独数据集合并到单个大型数据集而言非常有用。该阶段可以有众多输入链接和一个输出链接
Funnel阶段能够以下列三种方式之一运行:
- 连续传送以不可保证顺序合并输入数据的记录。它依次从每个输入链接获取一条记录。如果输入链接上的数据不可用,那么该阶段会跳至下一个链接,而不是等待。
- 排序传送按照一个或多个键列的值定义的顺序合并输入记录,输出记录的顺序由这绡排序键确定。
- 顺序将第一个输入数据集中的所有记录复制到输出数据集,然后将第二个输入数据集中的所有记录复制到输出数据集,依此类推。
对于所有方法,所有数据数据集的元数据都必须椒相同的。
排序传送方法对于其输入数据有一些特定要求。所有输入数据集都 必须根据Funnel操作的键列进行排序。
通常,排序传送操作的所有输入数据集在排序之前都是散列分区的(选择自动分区方法将确保完成这一操作).散列分区可确保具有相同键列值的所有记录都位于同一分区中,以便在同一个节点上处理。如果在Funnel阶段之前在单独的阶段上执行排序和分区,那么必须保留该分区
排序传送操作允许您设置一个主键和多个辅键以确定将输出的记录的顺序。
Funnel阶段:快速路径
InfoSphere DataStage有许多缺省设置,这表示您能够载作业中轻松包含Funnel阶段。本部分指定了要使Funnel阶段运行所需的最少步骤。InfoSphere DataStage提供了多样化的用户界面,且提供了许多快捷方式供您达到特定目标,本部分描述了基本方法。
要使用Funnel阶段:
- 在“阶段”页面的属性选项卡中,指定“传送类型”。“连续传送”为缺省值,但也可以选择“顺序”或“排序传送”。
如果选择使用“排序传送”方法,则还需要指定对数据进行排序所依据的键。可以重复使用键属性来指定组合键。
- 如果使用“顺序”方法,请在“阶段”页面的“链接排序”选项卡中,指定合并数据集的顺序。
- 在“输出”页面的“映射”选项卡中,指定如何派生输出列的方法,即将那些输入列映射到输出列,或如何生成这些输出列。
Funnel阶段:“属性”选项卡
在“属性”选项卡中,可指定确定阶段实际执行那些操作的属性。某些属性是必须的,尽管许多属性都有缺省设置。无缺省设置的属性显示为警告色(缺省为红色),当你为其提供值后变为黑色。
Funnel阶段:“高级”选项卡
- 执行方式。阶段可以并行方式或顺序方式执行。默认椒并行方式
- 组合方式。缺省情况下为“自动”方式。该方式允许InfoSphere DataStage合并那些处于并行阶段底层的操作程序,以使他们能够在同一阶段尝试保留分区。
- 保留分区。缺省值为传播。也可以设置为设置或清除
Funnel阶段:“链接排序”选项卡
该选项卡允许您指定处理输入到Funnel阶段的链接顺序。仅当选择了“顺序”funnel类型时才需要使用该选项卡。
Funnel阶段:输入页面
输入页面主要包括常规选项卡(添加描述内容),分区选项卡(设置分区类型),键列,高级选项卡(设置缓冲方式)
Funnel阶段:输出页面
输入页面主要包括常规选项卡(添加描述内容),映射选项卡(设置分区类型),键列,高级选项卡(设置缓冲方式)
Remove Duplicates阶段
Remove Duplicates节点是一个处理阶段,该阶段可具有一个输入链接和一个输出链接。Remove Duplicates阶段可将单个已排序数据集作为输入、除去所有的重复行并将结果定入输出数据集。
除去重复记录是一种在执行进一步处理前清理数据集的常用方法。如果输入数据集内的相邻两行中存在相同的键列值,那么会将这两行视为重复行。键列是被指定于确定是否相同的任意列。
输入Remove Duplicates阶段的数据集必须已进行过排序,以使所有具有相同键列值的处于相邻位置。实现这一点,可以使用“输入页面”
的分区选项卡上的阶段内排序工具或使用Sort阶段作为Remove Duplicates阶段的输入
Remove Duplicates阶段:快速路径
InfoSphere DataStage有许多缺省设置,这表示您能够在作业中轻松保护Remove Duplicates阶段。本部分指定了要Remove Duplicates阶段运行所需的最少步骤。InfoSphere DataStage提供了多样化的用户界面,且提供了许多快捷方式供您达到特定目标,本部分描述了基本方法。
要使Remove Duplicates阶段:
- 在“阶段”页面的“属性”选项卡中,选择键列,将采用该列中相同的值来百事重复行,该阶段将除去这些行。重复使用此属性可指定组合键。
- 在“输出”页面的“映射”选项卡中,指定如何派生输入列
Remove Duplicates阶段:“属性”选项卡
- Keys that define Duplicates指定操作的键列。可重复使用此属性来指定多个键列。如果需要,可使用“列选择”对话框来一次选择若干个键。“键”具有一下从属属性:
(1)、以EBCDIC排序
要按照EBCDIC字符集的规定进行排序,请选择True
(2)、区分大小写
使用此属性可指定每个键是否区分大小写,缺省情况下此属性设置为True。
- Duplicates To Retion要保留的重复列
指定要保留所遇到的重复列中的哪一列。选择“第一列”或“最后一列”缺省情况下,此属性设置为“第一列”。
Compress阶段(压缩数据集)
Compress阶段是一个处理,该阶段可具有一个输入和一个输出链接。
Compress阶段使用UNIX compress或GZIP实用程序压缩数据集。它将数据集从记录序列转换成原始二进制数据流。
压缩的数据集类似于普通数据集,可通过Data Set阶段以持久格式存储,但是,压缩的数据集要在展开之后(即数据集行恢复正常格式)
才能由许多阶段处理。不执行基于列的处理或对行重新排序的阶段可以处理压缩的数据集。例如,可以使用Copy阶段创建压缩数据集的副本。
由于压缩数据集会除去其正常的记录边界,因此在展开压缩数据集之前,不得对其重新分区。
Compress阶段:快速路径
InfoSphere DataStage有许多缺省设置,这表示您能够在作业中轻松包含Compress阶段,本部分指定了要使Compress阶段运行所需的最少步骤。InfoSphere DataStage提供了多样化的用户界面,且提供了许多快捷方式供您达到特定目标。
要使用Compress阶段:
- 在“阶段”页面的“属性”选项卡中,选择要使用的压缩命令。Compress是缺省值,但也可以选择gzip。
- 确保已为输入链接和输出链接定义了列元数据
Compress阶段:“属性”选项卡
在“属性”选项卡中,可指定确定阶段实际执行那些操作的属性,此阶段只有一个用于确定阶段是使用compress还是GZIP的属性。
指定阶段是使用压缩(缺省值)还是GXIP
Expand阶段(展开数据集)
Expand阶段是一个处理阶段,该阶段可具有一个输入链接和一个输出链接。
Expand阶段使用UNIX uncompress或GZIP实用程序来展开数据集,会将先前压缩的数据集从原始二进制数据流转换回一个记录序列。Expand阶段与Compress阶段互补
InfoSphere DataStage有许多缺省设置,这表示您能够在作业中轻松包含Expand阶段,本部分指定了要使Expand阶段运行所需的最少步骤。InfoSphere DataStage提供了多样化的用户界面,且提供了许多快捷方式供您达到特定目标。
要使用Expand阶段:
- 在“阶段”页面的“属性”选项卡,选择要使用的解压命令,缺省值为uncompress,但也可以选择gzip
- 确保已输入链接和输出链接定义了列元数据
Expand阶段:“属性”选项卡
在“属性”选项卡中,可指定确定阶段实际执行哪些操作的属性,此阶段只有一个用于确定阶段是使用uncompress还是GZIP的属性。
Expand阶段:选项类别
指定阶段是使用解压缩(缺省值)还是GZIP
Copy阶段
Copy阶段是一个处理阶段,此阶段可具有一个输入链接和任意数目的输出链接。
Copy阶段将单个输入数据集复制到多个数据集。输入数据集的每条记录都被复制到每个输出数据集。可以在不修改的情况下复制记录,或者可以删除或更改顺序。复制允许您对磁盘上的数据集制作备份副本,同时对另一个副本执行操作。
当使用具有一个输入和一个输出的Copy阶段时,应该确保将阶段编辑器中的“强制”属性设置为True。这可防止InfoSphere DataStage判定“复制”操作过多并尽可能使之离开作业
Copy阶段的属性相当简单。唯一的属性为“强制”,因为正在复制到多个数据集(并且InfoSphere DataStage不会尝试在作业外优化该属性)。您需要专注于为InfoSphere DataStage指定要删除每个输出链接上的哪些列。完成操作的最简单方法是使用“输出”页面中“映射”选项卡,当针对链接打开该选项时,左侧窗格将显示输入列,您只需将保留的列拖放到右侧窗格中即可。按以下步骤针对每表链接重复该操作。
Copy阶段:“属性”选项卡
在“属性”选项卡中,可指定确定阶段实际执行那些操作属性。Copy阶段只有一个属性。
Force设置为True以指定当存在一个输入和输出时,InfoSphere DataStage不应尝试通过除去“复制”操作来尝试优化作业。缺省情况下设置为False
Modify阶段
Modify阶段是一个处理阶段。该阶段可具有一个输入链接和一个输出链接。
Modify阶段用于改变其输入数据的记录模式。然后,输出修改过的数据集。您可以删除或保留模式中的列,或者更改列的类型
虽然Modify阶段被归为处理阶段,但其运作方式不同于其他处理阶段。在Director客户机的“监视器”窗口中,该阶段不显示处理行,也不会在Designer客户机中显示出站行计数。
Modify阶段用于删除列。要执行此操作,请如下设置阶段属性:Specification=DROP 列名,列名
通过指定要保留那些列(而不是要删除哪些列),可以实现相同的效果。要在阶段属性中使用的必须规范如下:
KEEP 列名,列名
更改数据类型
您还可以更改上个示例中一列或多列的数据类型。如果希望将列从十进制转换为字符串,那么可以指定新列以采用转换之后的数据,并在阶段属性中指定转换:Specification = 新列名 = 旧列名
某些数据类型转换要求您使用某条变换命令,可以使用显示变换执行十进制到字符串的转换,在这种情况下,“属性”页面上的规范将如下所示:新列名:String = String_from_dicimal(旧列名)
对于缺省类型转化,规范将采用以下形式:
new_columnname = old_columnname
例如:int8字段名 = uint64字段名
对于需要手动转换的情况,规范将采用一下形式:
new_columnname:new_type=conversion_function(old_columnname)
例如:day_column:int8=month_day_from_date(date_column)
new_type 可以是从源字段进行转换所支持的任何目标类型(即在上表中标记为“m”的任何列)。
Pivot Enterprise阶段
Pivot Enterprise阶段是以水平和重直方式对数据进行透视的处理阶段。
Pivot Enterprise 阶段位于“选用板”窗格的“处理”部分
水平数据透视将输入行中的一组列映射到多个输出行中的单一列。水平数据透视操作的输出数据包含的列通常比输入数据的要少,但包含更多的行,通过重直数据透视。可以将多组输入列映射到多个输出列。
重直会将输入数据中的一组行映射到单个或多个输出列。数组大小确定输出数据中的行数。重直数据透视操作的输出数据通常比输入数据具有更多的列,但行更少。
对于水平和重直数据透视,还可以包括输入数据或输出数据中的任何列。
指定水平数据透视操作
您可以使用Pivot Enterprise阶段对数据进行水平透视,以便将输入列的集合映射到单一输出列。