2017-06-21 145 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和作業設計會更簡單。