我的情况是:我在表中有两个字段(ref1,ref2),我可以根据另一个字段(factor_column)值获取所需的值。这可以通过两种方式实现,但我不确定哪种方式更有效?
1)当factor_column = Y时使用SELECT case然后ref1 ...
2)正常SELECT ref1,ref2等。并使用talend组件中的表达式tMap:(factor_column.equals(" Y")?ref1:ref2)
我的talend工作流程如下: tOracleInput - > tMap - tOutput
在tOracleInput上放置SELECT子句的逻辑还是放在tMap上更好?
答案 0 :(得分:2)
所以这取决于您的数据大小。
答案 1 :(得分:1)
在tOracleInput
中:逻辑将通过JDBC连接在DBMS中与整个查询一起执行
在tMap
中:逻辑将在JVM中执行。
通常,使用DBMS会更快,而ETL和作业设计会更简单。