Talend:troaclerow 与 toracleinput

Talend: troaclerow vs toracleinput

好像toracleinput和toracelrow都可以执行select语句,谁能告诉我什么时候使用toracleinput组件,什么时候使用talend中的toraclerow组件,它们有什么区别?

谢谢 M

toracleinputtoraclerow的主要区别是,

  • toracleinput中,你可以运行只SELECT语句。而在 toraclerow 中,您可以 运行 任何 DDL 和 DML 查询

  • toracleinput中,你只能有一个SELECT语句。而在 toraclerow 中,您可以有多个查询(如果您有 select 语句后跟 delete 或任何其他 CRUD 语句,那么 select 将不会 return 任何结果集)。

  • 当源数据库和目标数据库是不同的服务器时,您可以使用toracleinput。但在 toraclerow 中,源和目标应该在同一数据库和同一服务器中

考虑以下 tables

员工Table:

+-------+-----------+-----------+-----------+
|   ID  |   Name    |   Salary  |   DeptId  |
+-------+-----------+-----------+-----------+
|   1   |   Name1   |   10000   |   1       |
|   2   |   Name2   |   20000   |   2       |
|   3   |   Name3   |   30000   |   3       |
|   4   |   Name4   |   40000   |   1       |
|   5   |   Name5   |   50000   |   2       |
+-------+-----------+-----------+-----------+

同时考虑table

部门table

+-------+-----------+
|   ID  |   Name    |
+-------+-----------+
|   1   |   Dept1   |
|   2   |   Dept2   |
|   3   |   Dept3   |
+-------+-----------+

在 talend 中,我想 select 数据并加入这些 table 并插入到另一个名为 dim_employee 的 table 中,格式如下

+-------+-----------+-----------+-----------+-----------+
|   ID  |   Name    |   Salary  |   DeptId  | DeptName  |
+-------+-----------+-----------+-----------+-----------+

在 Talend 中,我可以通过两种方式做到这一点,

  1. 使用输入组件,

  1. 使用行组件

使用Row组件,我可以直接写INSERT INTO SELECT.

注:性能对比时,在这种场景下使用Row组件比使用Input组件快很多。