ETL

各位大神,想请教一个问题。lookup 和join 的区别除了 lookup load数据到内存速率快之外还有其他方面么

0
已邀请:
1

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2016-02-23 回答

1. lookup查到第一个匹配的数据后面不管还有没有都不找了,join会找到底。因此如果如果关联的表单键有多条记录的话,使用lookup和join会出现不同的结果。
2. Lookup可以reject, Join不能
3. <10000row的匹配两个几乎没有太大差别,>10000 Join性能优越

参照如下link, 写的很详细
http://mydatastage-notes.blogspot.hk/2013/03/difference-between-joinlookup-and-merge.html


join_merge_lkup.png


join_lkup2.png



 
1

我是最优雅的杀手,不杀人专杀狗 - 日光之下并无新事 2016-02-22 回答

选择Lookup或Join也可以在Job整体性能上进行考虑。由于Join在关联前要求输入数据源是在关键字上进行排序和分区的,可能会打乱前置Stage的排序和分区,而这可能是Job最终需要的排序和分区,这种情况下,Join完成之后需要对Join的结果重新排序、分区。而Lookup对输入数据集没有排序、分区的要求,可以保留前置Stage的排序、分区结果,减少了后续的处理。

要回复问题请先登录注册