这三个组件网上看了半天也没有发现什么实质性的区别,还不不甚了解,看到几篇文章介绍他们的区别,暂且转下,后续研究!
-----http://www.cognoschina.net/home/space.php?uid=40869&do=blog&id=29707
---http://www.itqsc.com/dy6/Article/work/201103/235.html
Merge的处理
与Join Stage相似
Merge前需要做Key值的去重操作
只能有一个Master Link,可以有多个Update Link,每个Update Link可以对应一个Update Reject Link
Unmatched Masters Mode选项对Output有重要影响。
Lookup的处理
对连接字段可否为空必须一致
对没有查找到的数据需Continue处理
当有多个分区时,为了确保数据能正确连接,需要对Lookup Link 做Entire分区
Lookup、Merge、Join的区别
内存的使用方式不同
不匹配行的处理方式不同
输入需求不同(排序、去重)
Primary Input: port 0 时:
Joins Lookup Merge
Left Source Master
---http://bbs.csdn.net/topics/350222317
求教DATASTAGE中MERGE,JOIN和LOOKUP3者之间的区别,网上搜了好久,发现都没有中文的解释.我只知道LOOKUP当reference data比较小的时候,用LookUp Stage;当reference data比较大的时候,用Join Stage。
-
JOIN STAGE是用与数据库中的两个表输出时用到此STAGE.
MERGE STAGE是用于抽取平面文件时用与两个平面文件输出时用到此STAGE,就是流关联。
LOOK UP就是上一步骤是表输出或者是平面文件输出通过KEY来关于LOOK UP中查询的表来关联查询。一般用与跨库查询使用此,不跨库也可以使用。
-
DS 的 Merge lookup Join 主要是在性能上,和内存使用策略上有不同。它们的功能都是一样的,只不过执行的方式或说策略不同,于是它们一般推荐用于的领域也有不同。
lookup 故名思义就是 一个表在另一个表中找,处理过程都在内存进行性,大事实表和小纬表用这种方式关联效率高。
merge 和 join 的处理过程不需用占大量内存。不同在于 merge要先把key值排序在做join,而且Merge的输出集可以设为多个
merge 方式对于key值由重复的,重复记录中不能关联到,所以merge方式需要key值(也就是关联的字段)无重复
--一个小事例
http://www.cognoschina.net/club/viewthread.php?tid=17100
官方文档:
http://pic.dhe.ibm.com/infocenter/iisinfsv/v8r7/index.jsp?topic=%2Fcom.ibm.swg.im.iis.ds.parjob.dev.doc%2Ftopics%2Fc_deeref_Functions_functions.html