2012-02-01 48 views
2

我想創建一個Spoon轉換,它可以處理列的多個值。 我的轉換輸入是一個CSV文件。在該CSV文件中,有一列名爲'Technology',其中包含0個或更多個由分號分隔的值,如下所示。如何拆分Pentaho Spoon中的列的值?

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

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

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

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

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

我有一個數據庫表名爲「技術」和它的模式如下:

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

Technologies 

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

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

其中id列設置爲自動遞增。

我想插入technology列的值,只有當該值不存在於Technologies表中時。

誰能告訴我

1)哪些類型的步驟,以用來分裂technology列的值? 2)如何只插入一次值?例如在row 1row 2Db2重複,但我只想插入Db2一次。

在此先感謝!

回答

4

使用「分割字段」(在「變換」下)來分割內容。

CSV文件輸入 - >分割字段 - >休息改造

設置「字段拆分」到「技術」,並設置「分隔符」,以一個分號。

關於非重複字段,我的建議是將名稱本身作爲表格的關鍵字。將它轉換爲小寫,並用數據庫安全equiv's替換任何空格/特殊字符,然後將其作爲主鍵。你最終應該只有一張只有唯一實例的表格。

hth