Интеграция данных Pentaho, генерирующая динамическую строку

У меня есть случай, когда я читаю данные через шаг ввода таблицы. Читаются следующие значения:

agent, sub agent, merchant, total
1,      2,         2222,     10
2,      2,         2343,      4
1,      3,         1212,      1

То, что я пытаюсь выполнить, - это проверить, есть ли экземпляр, в котором агент не имеет того же значения, что и субагент. Итак, если у агента 1 нет подагента 1, мне нужно создать строку, в которой будут:

agent, sub agent, merchant, total
1,        1,        null,    0

Я не совсем уверен, как я могу создать эту единственную строку как отдельную строку. Я попытался использовать несколько методов с использованием строки фильтра и создания констант, но все попытки либо перезаписали все существующие записи, которые не совпадали, и изменили их на субагент 1, либо создали поля agent_1, sub agent_1, merchant_1 и total_1.


person John B    schedule 28.12.2015    source источник
comment
Для меня это похоже на общую проблему качества данных. Разве не лучше было бы запустить инструкцию обновления, которая позаботится об этом? Вы можете выполнить это перед тем, как использовать шаг ввода таблицы.   -  person stb    schedule 28.12.2015
comment
На самом деле это больше связано с типом отчетности, чем с самими данными. Это было бы слишком сложно объяснять (и долго), но в целом субагенты зарабатывают деньги агентов, и агент также может зарабатывать свои собственные деньги. Таким образом, в этом смысле агент может быть своим собственным субагентом. Однако, если агент не зарабатывает себе деньги в течение определенного месяца, нам все равно необходимо иметь отношения агент / субагент для агента и его самого в качестве субагента.   -  person John B    schedule 28.12.2015


Ответы (2)


Если вы копируете потоки за три, выполните stream lookup и проверьте, существует ли строка с тем же агентом и субагентом, и если она не добавляет строку, которой не существует.

Вот мой результат:

agent   sub merchant    total
1   2    2222    10
2   2    2343    4
1   3    1212    1
1   1   <null>   0

Изображение трансформации

person bolav    schedule 30.12.2015

Думаю, это решение проще. Возможно, потребуется исправить запрос sql (я использую postgres)  введите описание изображения здесь

person simar    schedule 11.01.2016