如何在Pentaho Spoon中拆分列的值?

时间:2012-02-01 13:21:00

标签: transformation etl pentaho kettle

我想创建一个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列设置为自动增量。

我想仅在technology表中没有该值的情况下插入Technologies列的值。

任何人都可以告诉我

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

提前致谢!

1 个答案:

答案 0 :(得分:4)

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

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

将“Field to Split”设置为“Technology”并将“Delimiter”设置为分号。

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

HTH