【问题标题】:talend tMap logic vs SQL logic - performancetalend tMap 逻辑与 SQL 逻辑 - 性能
【发布时间】:2017-06-21 13:42:45
【问题描述】:

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

1) 当 factor_column = Y 然后 ref1 时使用 SELECT 情况...

2) 正常 SELECT ref1, ref2 etc. 并使用 talend 组件 tMap 中的表达式:(factor_column.equals("Y")?ref1: ref2)

我的 talend 工作流程是这样的: tOracleInput -> tMap - tOutput

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

【问题讨论】:

    标签: sql performance talend query-performance


    【解决方案1】:
    • 如果您使用 SELECT 并在数据库中进行处理,则将在 ETL/ELT 作业之外处理大量数据集,这非常有帮助
    • 如果您使用表达式,整个数据集将被加载到 Talend 并进行处理。根据数据集,您可能没有足够的 RAM 或堆来完成您的请求(考虑随着时间的推移不断增长的数据集)

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

    【讨论】:

      【解决方案2】:
      • tOracleInput 中:逻辑将与整个查询一起执行,在 DBMS 中通过 JDBC 连接

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-10
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        相关资源
        最近更新 更多