Talend:troaclerow vs toracleinput

时间:2017-04-06 05:39:08

标签: talend

似乎toracleinput和toracelrow都可以执行select语句,有人可以告诉我们何时使用toracleinput组件,何时在talend中使用toraclerow组件以及它们之间有什么区别?

感谢 中号

1 个答案:

答案 0 :(得分:2)

toracleinputtoraclerow之间的主要区别是,

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

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

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

考虑下表

员工表:

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

还要考虑表

部门表

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

在talend中,我想选择数据并加入这些表并插入另一个名为dim_employee的表格,其格式低于

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

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

  1. 使用输入组件
  2. enter image description here

    1. 使用行组件
    2. enter image description here

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

      注意:在比较性能时,使用Row组件比在此方案中使用Input组件快得多。