Как разделить значения столбца в Pentaho Spoon? - PullRequest
2 голосов
/ 01 февраля 2012

Я хочу создать преобразование 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

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

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

, где id столбец установлен на автоинкремент.

Я хочу вставить значения столбца technology, только если это значение отсутствует в таблице Technologies.

Может кто-нибудь сказать, пожалуйста

1) Какой тип шага будет использоваться для разделения значений столбца technology? 2) Как вставить значение только один раз? Например, в row 1 и row 2, Db2 повторяется, но я хочу вставить Db2 только один раз.

Заранее спасибо!

1 Ответ

4 голосов
/ 17 февраля 2012

Используйте «Разделить поля» (в разделе «Преобразовать»), чтобы разделить содержимое.

Ввод CSV-файла -> Разделенные поля -> остаток преобразования

Установите «Поле для разделения» на «Технология» и установите «Разделитель» на точку с запятой.

Что касается неповторяющегося поля, я бы предложил, чтобы вы сами сделали имя ключом к таблице. Переведите его в нижний регистр и замените все пробелы / специальные символы на безопасные эквиваленты базы данных, а затем сделайте это первичным ключом. Вы должны получить таблицу, заполненную только уникальными экземплярами.

НТН

...