Pentaho - наличие нескольких строк копирования, чтобы результаты были пустыми.

Я пытаюсь обработать некоторые данные и сохранить их в хранилище данных. Для этого я хотел сохранить измерения в одном преобразовании, а факт (только один) в другом преобразовании. Итак, я могу использовать задание для выполнения первого, copy rows to result, и передать их во второе преобразование.

При первом преобразовании я читаю какой-то файл Excel и разделяю эти данные на несколько потоков. Это данные о крещении, поэтому у меня есть один поток для человека, другой для родителей, еще один для спонсоров и так далее ... В конце каждого потока я вставляю данные в базу данных и возвращаю автоматически сгенерированный PK (это это автоинкремент id).

Во втором у меня есть только Get rows from result, и я хочу поместить их в текстовый файл (просто чтобы убедиться, что все сделано правильно). Проблема в том, что файл создан, но он пуст. Я полагаю, что если я оставлю поля в Get rows from result пустыми, он получит все поля.

Что я делаю неправильно?

В конце я хочу иметь по одному Copy rows to result в конце каждого потока в первом преобразовании и получать все эти данные во втором.

введите описание изображения здесь

В «Insert Pare Padrina» я возвращаю id_pare_padrina, который создается автоматически, и то же самое с «Insert Mare Padrina» (у меня есть больше потоков, которые я также должен включить в результат). Это преобразование не выполняется для каждой строки, потому что мне нужны значения других строк.

Спасибо!


person Lyd    schedule 14.04.2015    source источник
comment
Лид, ты нашел решение своей проблемы? Не могли бы вы опубликовать то же самое? Спасибо   -  person Akshay Lokur    schedule 25.10.2016


Ответы (1)


Чтобы передать данные из первого преобразования во второе преобразование, вам необходимо установить определенные параметры, например:

1. Прежде всего, в настройках преобразования второго преобразования (на уровне задания) проверьте элементы, как показано на рисунке ниже:

введите описание изображения здесь

Копирование предыдущих результатов в параметры гарантирует, что все результаты / данные на этапе «Копировать строки в результат» будут правильно переданы на следующий уровень.

Выполнить для каждой входной строки: выполнит второе преобразование для каждой строки в первом файле преобразования. Это необязательно в зависимости от ваших требований.

2. В тех же настройках преобразования определите «Параметры» на вкладках «Параметры». Проверьте изображение ниже:

введите описание изображения здесь

Здесь NAME - это параметр, который я определил. Поэтому, когда вы используете «Получить строки из результата», вы можете определить имена этих параметров.

3. Вместо использования «Получить строки из результата» вы можете альтернативно использовать шаг «Получить переменные», чтобы получить все переменные, полученные из предыдущего шага. Все, что вам нужно сделать, это определить имена параметров внутри файла ktr (CTRL + T). (На самом деле я практически реализовал это, и у меня это сработало.)

4. Поскольку на этапе «копирование строк в результат» используется память кучи, определение нескольких экземпляров этого шага может быстро исчерпать пространство памяти, и ваш код может выйти из строя. В идеале используйте один экземпляр этого шага.

Но если вы взаимодействуете только с одной строкой, лучшим вариантом будет использование шага «установить переменные».

Я предполагаю, что вы могли пропустить некоторые из этих разделов в работе.

Вы можете узнать больше о копировании строк, чтобы получить здесь.

Надеюсь, это поможет :)

person Rishu Shrivastava    schedule 14.04.2015
comment
Обязательно ли устанавливать все параметры во вкладке «Параметры»? - person Lyd; 14.04.2015
comment
И могут ли у меня проблемы, если у меня более одного Copy rows to result в одних и тех же преобразованиях с разными столбцами? - person Lyd; 14.04.2015
comment
Задайте только те параметры, которые вам нужно передать. В идеале, поскольку копирование в строки использует кучу памяти, лучше всего было бы определить только одну копию строки для шага результата. - person Rishu Shrivastava; 14.04.2015
comment
Но я не могу найти способ отправить данные для следующего преобразования, которое происходит на разных этапах и с разными именами полей. - person Lyd; 14.04.2015
comment
@Lyd можно ли поделиться кодом ?? Или снимок экрана с работой / преобразованием, чтобы я мог лучше понять, что вы сделали .. :) - person Rishu Shrivastava; 14.04.2015