2015-03-05 6 views
0

Я работаю в Pentaho 4.4.1-GA (Kettle/PDI). База данных - Postgres.Вставить несколько записей в таблицу фактов на основе полей в одной записи

мне нужно, чтобы иметь возможность вставить Множественные записей в таблице фактов, на основе полей, которые приходят из одной записи. Одна запись содержит поля:

productcode1, price1 
productcode2, price2 
productcode3, price3 
... 
productcode10,price10 

Так что, если существует значение для каждого из 10 ProductCode/цены, то я должен был бы вставить в общей сложности 10 записей в таблице фактов. Если бы были значения для 4 комбинаций, тогда мне нужно было бы вставить 4 записи в таблицу фактов и т. Д. Все значения полей для записей фактов были бы идентичны за исключением для ПК (сгенерированных последовательностью), кодов продуктов и цен.

Я полагаю, что мне нужна конструкция цикла, которая позволила бы мне проверить, присутствовало ли значение для каждого поля productx, и если да, выполните шаг вставки/обновления в таблице фактов с требуемыми значениями поля , Я просто не знаю, как это сделать в Пентахо.

Любые идеи? Все предложения приветствуются :)

Спасибо,

Ракеш

+0

«Одиночная запись содержит поля *» - это несколько _rows_ с несколькими столбцами - не только один ряд («запись»). Где эта «единственная запись» (строка)? –

+0

Единственная запись выводится из столбца XML в таблице с использованием оператора SQL select на этапе ввода таблицы. XML имеет элементы для каждой из комбинаций productCode/productPrice, и я создаю поле для каждого из них при запросе (это составляет единую запись). –

ответ

0

Не могли бы вы дать пример ввода и вывода для вашего сценария ??

Из ваших данных примера я могу заключить, что если есть 10 разных кодов продуктов и только 4 цены на товары, которые вы хотите добавить в таблицу 4 записи. Это так?

Для начала вы можете добавить постоянное значение 1 к этим записям, фильтруя для NOT NULL, а затем используйте групповой шаг, чтобы подсчитать количество 1. Это даст вам счет. BTW было бы полезно, если бы вы могли предоставить более подробную информацию о том, какие столбцы вы будете загружать, поскольку есть способы сделать выполнение преобразования PDI несколько раз.