在 SQL-Query 中翻译了多少 Talend 功能,在 Java 中翻译了多少?

问题描述

我正在实习,他们让我学习如何使用 talend ETL。 我做到了,没那么难。 分配给我的额外任务之一是验证我在设计工作区中设置的操作中有多少是在 java 中执行的,以及通过使用查询完成了哪些操作。 我已经使用 TMap 组件设置了一个简单的 Join,并通过使用 sql Profiler 监视了 sql 数据库。结果是只有必要的创建/删除和表的选择/插入是通过 sql 完成的,而像实际连接这样的其他所有事情都是“Java”端。 只要是join这样简单的操作,通过查询执行,不用费心java来执行不是很方便吗? 对于也了解SAP的人来说,Talend和SAP在性能上有这么大的区别吗?

解决方法

实际上只有 tDB 组件中的操作(创建、选择、插入等)是通过 SQL 完成的。在其他 talend 组件(tMap、tFilter、aggregate 等)中完成的所有操作都是通过 java 完成的。 实际上,您在 SQL 端操作时会有更好的表现。然后,您必须在“all-in-sql”类型的作业和“all-java”类型的作业之间找到适当的平衡。 (如果所有 sql 部分都是通过单个组件内的唯一查询完成的,那么 talend 开发人员可能更难调试操作......)。

您绝对可以将连接放在 tDBInput 组件中,并在单个输出流中输出结果。 您还可以检查 ELT* 组件:它们允许您在使用 talend 接口时使用 SQL 引擎而不是 java 引擎来执行所有操作(连接、聚合、过滤)。