talend tMap logic vs SQL logic - performance



我的场景是这样的:我在表中有两个字段(ref1,ref2(,我可以根据另一个字段(factor_column(值获取所需的值。 这可以通过两种方式实现,但我不确定哪种方式更有效?

1( 当 factor_column = Y 时使用 SELECT 案例,然后 ref1...

2( 正常选择参考文献1, 参考文献2 等。 并在 talend component tMap 中使用表达式: (factor_column.equals("Y"(? ref1: ref2(

我的 talend 作业流程如下所示:tOracleInput -> tMap - tOutput

逻辑放在 tOracleInput 上的 SELECT 子句上还是放在 tMap 上更好?

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

因此,这取决于您的数据大小。

  • tOracleInput中:逻辑将通过JDBC连接在DBMS中与整个查询一起执行

  • tMap中:逻辑将在JVM中执行。

一般来说,使用 DBMS 会比 ETL 更快,作业设计会更简单。

最新更新