Informatica 常用组件Aggregator之一 聚合表达式

转换类型:已连接、主动
        聚合转换允许您执行聚合计算,比如平均值和总和。聚合转换与表达式转换不同,您可以使用聚合转换对多组执行计算。而表达式转换只允许您逐行地执行计算。
        使用转换语言来创建聚合转换时,您可以使用条件子句过滤行,这比 SQL 语言更为灵活。
        PowerCenter 执行其读取的聚合计算并存储聚合高速缓存中必需的数据组和行数据。
        创建包含聚合转换的会话后,您可启用会话选项和增量聚合。当 PowerCenter Server 执行增量聚合时,它会通过映射传递新的源数据并使用历史高速缓存数据以增量执行新的计算。

  设计器只允许聚合表达式出现在聚合转换中。聚合表达式可以包括条件子句和非聚合函数。还可以包括一个嵌入另一聚合函数的聚合函数,例如:

MAX( COUNT( ITEM ))

聚合表达式的结果因转换中使用的分组依据端口而异。例如,当 PowerCenter 计算以下不带已定义分组依据端口的聚合表达式时,它将会查找已售出项目的总量:

SUM( QUANTITY )

但是,如果您使用同一表达式并按 ITEM 端口分组,PowerCenter 将按项目返回已售出项目的总量。

您可以在任意输出端口创建聚合表达式并使用转换中的多个聚合端口。

聚合函数

可以使用聚合转换中的以下聚合函数。也可以将一个聚合函数嵌入另一个聚合函数。

  • AVG
  • COUNT
  • FIRST
  • LAST
  • MAX
  • MEDIAN
  • MIN
  • PERCENTILE
  • STDDEV
  • SUM
  • VARIANCE

当您使用这些函数中的任意一个时,必须要在聚合转换的表达式中使用。

嵌套聚合函数

可以在聚合转换的不同输出端口中纳入多个单级别或多个嵌套函数。但是,您不能在聚合转换中同时纳入单级别和嵌套函数。因此,如果聚合转换在任意输出端口中包含单级别函数,您将无法在此转换的其它任意端口使用嵌套函数。当您在同一聚合转换中包含单级别和嵌套函数时,设计器将标记映射或映射组件为无效。如果您需要创建单级别函数和嵌套函数,请分别建立聚合转换。

条件子句

可以在聚合表达式中使用条件子句以减少在聚合中使用的行数。条件子句可以是任意求值为 TRUE 或 FALSE 的子句。

例如,可以使用以下表达式计算超过其季度限额的员工的总佣金:

    SUM( COMMISSION, COMMISSION > QUOTA )

非聚合函数

可以在聚合表达式中使用非聚合函数。

以下表达式返回每个项目的最高已售出项目数(按项目分组)。如果未售出项目,表达式返回 0。

   IIF( MAX( QUANTITY ) > 0, MAX( QUANTITY ), 0))

聚合函数中的空值

配置 PowerCenter 时,您可以选择希望 PowerCenter 处理聚合函数中空值的方式。您可以选择在聚合函数中将空值视为 NULL 或零。默认情况下,PowerCenter Server 在聚合函数中将空值视为 NULL

时间: 2024-11-10 14:32:04

Informatica 常用组件Aggregator之一 聚合表达式的相关文章

Informatica 常用组件Aggregator之四 创建聚合转换

在 Mapping Designer 中选择"转换-创建".选择聚合转换. 为聚合输入一个名称,并单击"创建".然后单击"完成". Designer 创建聚合转换. 将所需端口拖到聚合转换. Designer 将为您包括的每个端口创建输入/输出端口. 双击转换标题栏,以打开"编辑转换"对话框. 选择"端口"选项卡. 单击您希望聚合在创建组时所使用的每列的分组依据选项. 可以选择输入默认值来替换空组. 如果您

Informatica 常用组件Aggregator之三 使用排序输入

可以使用排序输入选项改善聚合转换性能.使用排序输入时,PowerCenter 会假定所有数据已按组排序.PowerCenter 读取某组的行时,它将执行聚合计算.需要时,它会将组信息存储在存储器中.要使用排序输入选项,您必须将已排序数据传递至聚合转换.配置具有多个分区的会话时,您可以通过已排序端口增进性能. 不使用排序输入时,PowerCenter 会执行其读取的聚合计算.但是,由于未排序数据,PowerCenter 将为每组存储数据直到它读取整个源,从而确保所有聚合计算准确. 例如,聚合转换具

Informatica 常用组件Aggregator之二 分组依据端口

聚合转换允许您为聚合定义组,而不是在所有的输入数据间执行聚合.例如,您可以查找按地区分组的总销量,而不是查找总的公司销量. 要为聚合表达式定义组,请选择聚合转换中的相应输入.输入/输出.输出和变量端口.您可以选择多个分组依据端口,为每个组的唯一组合创建新组.PowerCenter 随后将为每个组执行已定义的聚合. 对值分组后,PowerCenter 会为每个组生成一行.如果不对值分组,PowerCenter 则会为所有输入行返回一行.PowerCenter 通常将每个组的最后一行(或接收的最后行

Informatica 常用组件Lookup之九 配置未连接的查找转换

在映射中,未连接的查找转换与管道是分开的.您可以使用 :LKP 引用限定符编写表达式以调用其它转换中的查找.未连接查找的常用用法包括: 测试表达式中某个查找的结果 基于查找结果过滤行 基于查找的结果将行标记为更新,如更新缓慢更改的维表 在一个映射中多次调用相同的查找         配置未连接的查找转换时,请完成以下步骤:  添加输入端口. 添加查找条件. 指定一个返回值. 调用其它转换中的查找. 步骤 1. 添加输入端口 为 :LKP 表达式中的每个参数创建一个输入端口.您需要在查找转换中为每

Informatica 常用组件Source Qualifier之 使用排序端口

使用已排序端口时,PowerCenter 将添加端口至默认查询中的 ORDER BY 子句.PowerCenter Server 将添加配置的端口号,从源限定符转换的顶部开始.在映射中包括以下任何转换时,您可以使用已排序端口来提高性能: 聚合.为已排序输入配置聚合转换时,您可以使用已排序端口发送已排序的数据.聚合转换中的分组依据端口必须与源限定符转换中的已排序端口顺序相匹配. 联接.为已排序输入配置联接转换时,您可以使用已排序端口发送已排序的数据.按与源限定符转换中相同的方式来配置已排序端口的顺

Informatica 常用组件Filter之 过滤条件

过滤条件可以使用转换语言输入.过滤条件是返回 TRUE 或 FALSE 的表达式.例如,如果您要过滤出员工薪水低于 $30,000 的行,可输入以下条件: SALARY > 30000 可以使用 AND 和 OR 逻辑运算符来指定多个条件组合.如果要过滤掉薪水低于 $30,000 和多于 $100,000 的员工,您可输入以下条件: SALARY > 30000 AND SALARY < 100000 无需指定 TRUE 或 FALSE 作为表达式中的值.TRUE 和 FALSE 为您设

Informatica 常用组件Source Qualifier之 SQL Query

源限定符转换提供 SQL 查询选项以覆盖默认的查询.您可以输入您的源数据库支持的 SQL 语句.输入查询之前,请连接您要在映射中使用的所有输入和输出端口. 编辑 SQL 查询时,您可以生成并编辑默认查询.当 Designer 生成默认的查询时,它将合并所有其它配置的选项,例如过滤器或已排序端口数.结果查询将覆盖您随后可能在转换中配置的所有其它选项. 可以在 SQL 查询中包括映射参数和变量.包括字符串映射参数或变量时,请使用适用于源系统的字符串标识符.对于大多数数据库,您应用单引号将字符串参数或

Informatica 常用组件Source Qualifier之 外部联接

可以使用源限定符和应用程序源限定符转换在相同的数据库中执行两个源的外部联接.当 PowerCenter 执行外部联接时,它将返回其中一个源表的所有行和另一个源表中匹配联接条件的行. 如果您需要联接两个表并返回其中一个表的所有行,可使用外部联接.例如,当您希望联接注册客户表和每月购买情况表以确定注册客户的购买行为是否活跃时,您就可以执行外部联接.使用外部联接,您可以联接注册客户表和每月购买情况表,并返回注册客户表中的所有行,包括上个月无购买行为的客户.如果您执行正常联接,PowerCenter 将

Informatica 常用组件Filter之 创建FIL

在 Designer 中,切换到 Mapping Designer 并打开映射. 选择"转换-创建". 选择"过滤器转换",然后输入新的转换名称.过滤器转换的命名惯例是 FIL_TransformationName.单击"创建",然后单击"完成". 从源限定符或其它转换选择并拖动所有所需的端口以将其添加至过滤器转换. 选择并拖动端口后,这些端口的副本将出现在过滤器转换中.每列都同时具有输入和输出端口. 双击新转换的标题栏. 单