Talend 数据集成:如何维护所有组件中的输入列?

Talend data Integration : How to maintain input columns in all the components?

我的输入 sheet 有 3 个字段 I1、I2 和 I3

我必须在两个 table 中插入这些字段。

Table1 应该有来自输入字段的 I1 和 I2,并且它有 ID 作为 PK 列。 Table2应该有I3。外键关系 Table1 ID。

使用 talend,我在 table1 中插入了前两列数据(在这个 table 输出组件中省略了 I3)并且我有自动递增的 ID。现在我想把ID和I3插入Table出来。

但是在第二个 table 输出中我看不到流中的 I3 列,因为我们在第一步中省略了 I3。

谁能帮忙获得第二个 table 输出组件的 I3 列?

谢谢

您应该能够使用具有 2 个输出的简单 tMap 来做到这一点:

tDBInput --- tMap ---tDBOutput1
                  ---tDBOutput2

在 tMap 中,您只需 select 将字段放入正确的输出中。 您可以在 tMap(中央面板)的 'Var' 部分使用 Talend 序列 Numeric.sequence("s1",1,1),并将其作为 ID 放入 2 个输出中。

另一种方法是使用 two-step 过程。您可以在一个作业中创建两个单独的 "processing lines" 或子作业。

步骤 1 - l1, l2

正如@Corentin 所说,第一个子工作是

tExcelInput1 -- tMap1 -- tDBOutput1 (l1, l2)

步骤 2 - l3

第二个子作业,可以用 tDBInput1 onSubjobOk 连接器连接,看起来像这样

tExcelInput2 -- tMap2 -- tDBOutput2 (l3)
              |--- tDBInput3, lookup ID (with l1)

现在第一个子作业将所有值添加到 table1。当一切正常时,l3 的所有值都通过 l1 上的 ID 查找进行处理。这适用于数据库中的 auto-increment 字段。查找看起来像 SELECT ID FROM table1,在 tMap 中,只需使用 l3 进行查找。

概览

如果您更容易看到职位,请查看下图。

查找将如下所示:

我是按照以下方式做的...

在所有职位视图中:

t地图设置: