排名转换

2024 年 8 月 29 日 | 4 分钟阅读

排名是一种主动且连接的转换,它根据组和排名执行数据过滤。 排名转换还提供基于组进行排名的功能。

排名转换有一个输出端口,用于为行分配排名。

在 Informatica 中,它用于选择数据的底部或顶部范围。 虽然可以对字符串值端口进行排名,但 Informatica 排名转换用于对数字端口值进行排名。 有人可能认为 MAX 和 MIN 函数可以完成相同的任务。

但是,排名转换允许列出记录组而不是单个值或记录。 使用以下类型的端口创建排名转换。

  1. 输入端口 (I)
  2. 输出端口 (O)
  3. 变量端口 (V)
  4. 排名端口 (R)

排名端口

参与排名计算的端口称为排名端口。

变量端口

一种端口,允许我们开发表达式来临时存储数据以进行排名计算,称为变量端口。

变量端口使我们能够编写排名计算所需的表达式。

排名转换中的端口

端口所需数量描述
I最少 1 个用于接收来自另一个转换的数据的端口。
O最少 1 个我们想要传递到其他转换的端口。
V不需要它用于存储值或计算结果以供在表达式中使用。
R仅 1 个排名端口是一个输入或输出端口。
我们已将排名端口链接到另一个转换。
例如:总工资

配置排名转换

让我们看看如何配置排名转换的以下属性

  • 缓存目录:该目录是集成服务创建索引和数据缓存文件的空间。
  • 顶部/底部:它指定我们是要选择数据的顶部还是底部排名。
  • 排名数量:它指定我们要排名的行数。
  • 区分大小写的字符串比较:它用于使用区分大小写的方式对字符串进行排序。
  • 跟踪级别:要在会话日志文件中跟踪的日志量。
  • 排名数据缓存大小:数据缓存大小的默认值为 2,000,000 字节。 我们可以为数据缓存大小设置一个数值或“自动”。 如果是“自动”,则集成服务会在运行时确定缓存大小。
  • 排名索引缓存大小:索引缓存大小的默认值为 1,000,000 字节。 我们可以为索引缓存大小设置一个数值或“自动”。 如果是“自动”,则集成服务会在运行时确定缓存大小。

什么是排名索引?

Developer 工具为每个排名转换创建一个排名索引端口。 数据集成服务使用排名索引端口来存储组中每一行的排名位置。

在排名转换识别出属于顶部或底部排名的所有行后,它会分配排名索引值。 如果两个排名值匹配,则它们在排名索引中收到相同的值,并且转换会跳过下一个值。

排名索引仅是一个输出端口。 我们可以将排名索引传递到映射中的另一个转换或直接传递到目标。

定义组

排名转换为我们提供组信息,例如聚合器转换。

例如:如果我们要选择每个制造商的 20 种最昂贵的商品,我们首先要为每个制造商定义一个组。

示例

假设我们要为每个部门加载薪水最高的 5 名员工; 我们将使用排名转换按以下步骤实现此目的,例如

步骤 1:创建一个具有源 EMP 和目标 EMP_TARGET 的映射

步骤 2:然后在映射中,

  1. 选择转换菜单。
  2. 然后单击“创建”选项。

步骤 3:在创建转换窗口中,

  1. 选择排名转换。
  2. 输入转换名称“rnk_salary”。
  3. 然后单击“创建”按钮。

步骤 4:排名转换将在映射中创建,在窗口中选择“完成”按钮。

步骤 5:将所有端口从源限定符连接到排名转换。

步骤 6:双击排名转换,它将打开“编辑转换窗口”。 在此窗口中,

  1. 选择“属性”菜单。
  2. 从“顶部/底部”属性中选择“顶部”选项。
  3. 在排名数中输入 5。

步骤 7:再次在“编辑转换”窗口中,

  1. 选择“端口”选项卡。
  2. 为“部门”编号列选择“分组依据”选项。
  3. 在“薪资”列中选择“排名”。
  4. 单击“确定”按钮。

步骤 8:将端口从排名转换连接到目标表。

现在,保存映射并在创建会话和工作流后执行它。 源限定符将提取所有记录,但排名转换将仅传递每个部门中具有三个高薪的记录。


下一个主题序列生成器转换