各位大神,请问下,Informatica里面做表关联是什么场景用LOOK UP 什么场景用 JOIN。

0
已邀请:
1

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

对informatica不熟悉,用过datastage的lookup,看看能不能借鉴:
 
Join = select a.a from a, b where a.aa = b.aa
lookup = select a.a from a where exists (select 1 from b where a.aa=b.aa)
 
差不多这个情况吧。Lookup的重要特点是,一旦找到第一个匹配的就返回结果,不继续找了。Join不是的,它会继续找所有的记录。因此效能上lookup更高,需要注意的是,如果是大表要和主表的key partition模式一致,分到一个分区速度快非常多;小表就只直接broadcast,而且,注意排序的顺序和主表一致。
1

Devin - 数据仓库从业者 2015-09-23 回答

根据我之前的经验,如果你想查询一个参数表或者维表。可以使用lookup来查询这个表。换句话说,lookup最好用在数据量少的表上。如果是2个数据量基本一致的表的join,那建议不要使用lookup,而是用其它组件来join。
0

seng - 从事BI、大数据、数据分析工作 2015-09-24 回答

我理解就是sql语句 join和子查询的区别。

要回复问题请先登录注册