数据源、目标、临时区域在相同的服务器
IKM为上图中的join 、filter、转换生成合适的sql产生结果数据流。效率最高,数据不用在不同的服务器之间传送。
目标和临时区域在同一个服务器
A、B在同一个数据源上,LKM生成sql在IBM DB2上,生成一个数据集,并把这个数据集放到目标数据服务器的C$0表;(源与目标在同一个服务器时不需要LKM 也不需要临时表C$);然后在目标服务器上的IKM把临时表和D表生成数据流。
上面的两种结构不同之处在于图1是在数据源先两个表连接再LKM,图2先LKM然后再连接。取决于那种方式更节省时间。
临时区域在ODI内存
这个设置在接口的定义tab中设定:
上图中的LKM0、LKM1、LKM2将会装载所有的数据源数据到ODI内存。有IKM整合成流然后写入目标。
注意:这种方法一般不推荐使用,但是在下面的情况下会很有用:
·每个数据源的数据量很小(少于10000条记录)
·对处理的实时要求很高
·临时区域目标区不同的时候,不能使用流控制
临时区域在一个数据源
也可以在这里设定
LKM0和LKM1从数据源上加载数据到C$0和C$1,然后IKM在DB2上把A、B、C$0、C$1整合起来到目标。
·当A和B的数据量很大(超过5,000,000)
·C和D很小
·A B C$0 C$1整合后很小