【问题标题】:How to split values of an column in Pentaho Spoon?如何在 Pentaho Spoon 中拆分列的值?
【发布时间】:2012-02-01 13:20:59
【问题描述】:

我想创建一个Spoon 转换,它将作用于列的多个值。 我的转换输入是一个 CSV 文件。在该 CSV 文件中有一个名为“技术”的列,其中包含 0 个或多个用分号分隔的值,如下所示。

+------------------------------------------------------+

 row_id |   Technology
+------------------------------------------------------+

1       | Cobol ; Db2 ; Jcl ; Vsam ; Cics ; Changeman ;

2       | Oracle ; Sql ; Db2 ; Oracle 9i ;

3       | Windows 2000 ; SQL ;
+------------------------------------------------------+

我在数据库中有一个名为“Technologies”的表,其架构如下:

+----------------------+

Technologies

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

+----------------------+

其中id 列设置为自动递增。

只有当Technologies 表中不存在technology 列的值时,我才想插入该值。

谁能告诉我

1) 使用哪种类型的步骤来拆分technology 列的值? 2)如何只插入一次值?例如在row 1row 2 中,Db2 被重复,但我只想插入一次Db2

提前致谢!

【问题讨论】:

    标签: transformation etl pentaho kettle


    【解决方案1】:

    使用“拆分字段”(在“转换”下)拆分内容。

    CSV 文件输入 --> 拆分字段 --> 其余转换

    将“要拆分的字段”设置为“技术”,并将“分隔符”设置为分号。

    关于非重复字段,我的建议是您将名称本身作为表格的关键。将其转换为小写并用数据库安全等效替换任何空格/特殊字符,然后将其设为主键。您最终应该得到一个只包含唯一实例的表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多