我们知道行数据的数据缓存和组值的索引缓存。聚合器在操作之前是否处理所有要缓存的数据?

问题描述 投票:0回答:1

您可以通过以下示例来帮助我理解这一点。

enter image description here

按cust_id,item_id分组。

在排序输入和未排序输入的两种情况下,哪些记录将处理到缓存(索引/数据)?如果高速缓存内存用完了会怎样?它在内部使用哪个逻辑进行聚合计算?

data-warehouse informatica informatica-powercenter informatica-powerexchange
1个回答
0
投票

我不了解内部算法,但是在未排序模式下,Aggregator将所有行存储在缓存中并等待最后一行是正常的,因为它可能是根据Aggregator规则! Aggregator永远不会抱怨传入行的顺序。使用缓存时,它将首先将行存储在内存中,然后当分配的内存已满时,它将把缓存推送到磁盘。如果它用完了磁盘空间,则会话将失败(并且可能由于该磁盘已满而导致其他会话失败)。您将必须手动清理这些文件。

在排序模式下,不存在这样的问题:行进入可分组的组,并且一旦收到组中的所有行,聚集的行就会消失,当键值之一发生更改时会检测到该行。如果行的顺序不正确,聚合器将进行投诉并停止。但是,它将问题向上推到排序部分,可能是Sorter,它本身可能会使用大量缓存,或者是SQL查询中带有ORDER BY子句的数据库,它可能占用数据库上的资源。侧面。

还请注意,SQL ORDER BY可能会使用与Informatica不同的语言环境。

© www.soinside.com 2019 - 2024. All rights reserved.