在Kettle中,如何拆分一列的值并插入到两个不同的表中?

In Kettle, how to split values of an column and insert into two different tables?

我想创建一个 Spoon 转换,它可以拆分列的不同部分并插入到相应的 table 中。 来源 table 看起来像这样

+------------------------------------------------------+
 row_id |   Technology
+------------------------------------------------------+
1       | Cobol, programming
2       | Oracle,database
3       | Ruby, programming
4       | Java, programming
5       | Mysql,database
+------------------------------------------------------+

其中一个目标 table 看起来像这样,应该插入到 cobol、Oracle、Ruby 等等

+----------------------+
Technologies
+----------------------+
 id   | technology_name
+----------------------+

另一个目标 table 看起来像,应该插入到编程和数据库中

+----------------------+
 Category
+----------------------+
 id   | category_name
+----------------------+

谁能告诉我

  1. 技术列的值拆分采用哪种步骤?
  2. 如何只插入一次值?

您可以使用 Split Fields 步骤拆分 'technology' 字段。您可能需要通过 String Operations 步骤将结果列传递到 trim 它。

您只能通过 Insert/Update 步骤插入一次。

您可以使用 "Split Fields" 步骤将 Technology 列拆分为两个不同的新列,TechnologiesCategory,并且您可以 trim生成的字符串同时去掉不需要的空格:

然后您可以 distribute 行到两个不同的分支:

  • 在第一个分支上,您可以按技术分组,然后您可以将得到的不同技术插入 table
  • 在第二个分支上,您可以按类别分组,然后您可以将生成的不同类别插入另一个 table

转换可能与此类似: