2017-06-21 148 views
1

我的情况是这样的:我有两个字段(ref1,ref2)在表中,我可以得到我需要的值取决于另一个字段(factor_column)值。这可以通过两种方式来实现,但我不确定哪种效率更高?使用SELECT情况下,当factor_column = Y然后REF1talend tMap逻辑vs SQL逻辑 - 性能

1)...

2)正常SELECT ref1用,ref2用等而使用在Talend部件TMAP的表达式:(factor_column.equals( “Y”)? REF1:REF2)

我了Talend的工作流程是这样的: tOracleInput - > TMAP - tOutput

是更好地把逻辑上SELECT子句tOracleInput或穿上TMAP?

回答

1
  • 如果使用SELECT并做处理在数据库中,庞大的数据集将ETL的外加工/ ELT工作,这是非常有帮助
  • 如果您使用表达式,整个数据集将是加载到Talend并进行处理。根据数据集的不同,您可能没有足够的RAM或堆来完成您的请求(也会考虑随着时间的推移正在增加的数据集)

所以这取决于您的数据大小。

0
  • tOracleInput:该逻辑将与整个查询经由JDBC连接

  • tMap可以excuted,在DBMS:该逻辑将在JVM中执行。

通常,使用DBMS而不是ETL和作业设计会更简单。