Идентификатор возвращаемого значения Pentaho не может быть найден во входной строке

У меня есть преобразование pentaho, которое используется для чтения текстового файла, чтобы проверить некоторые условия (из-за которых у вас могут быть ошибки, например, число должно быть положительным числом). Из-за этих ошибок я создаю файл excel, и мне нужно для моей работы количество строк в этом файле ошибок, а также запись в журнал, какие строки были с проблемами.

Проблема в том, что иногда у меня возникает ошибка «id возвращаемых значений не может быть найден во входной строке». Эта ошибка бывает не каждый раз. Работа выполняется каждую ночь, и иногда она может работать без каких-либо проблем, например, один месяц, а в один солнечный день у меня просто возникает эта ошибка. Я не думаю, что это из файла, потому что если я снова выполню задание с тем же файлом, оно заработает. Я не могу понять, в чем причина неудачи, потому что там указано значение «id», но у меня нет такого значения / столбца. Почему он ищет значение, которого не существует. Еще одна странность заключается в том, что обычно шаг, который завершился ошибкой, должен быть выполнен вообще (насколько я знаю), потому что ошибок не было обнаружено, поэтому у нас вообще нет строк для этого шага. Может проблема связана с этапом "Расставить приоритеты для потока"? Здесь я получаю все ошибки (в которых используются одни и те же столбцы). Я пробовал перед этапами группировки поставить сортировку, но это не помогло. Сейчас думаю попробовать с "Блокирующим шагом". Проблема в том, что я не знаю, почему это произошло и как это исправить. Какие-либо предложения? см. здесь


person Silvia Petrova    schedule 04.10.2017    source источник


Ответы (2)


Проверьте, есть ли на всех ваших aggregates шагах Group by name.

Однако иногда ошибка возникает из-за предыдущего шага: group (count...) запрашивает данные из Prioritize Stream, и если на этом шаге есть ошибка, ошибка сообщается ошибочно как исходящая от group, а не от Prioritze.

Кроме того, вы упоминаете шаг, который не следует выполнять, потому что нет данных: я не вижу никаких Filter, которые препятствовали бы перемещению строк с отсутствующим id из Prioritize в count.

person AlainD    schedule 04.10.2017

Это ошибка. Это происходит случайным образом в одном из моих преобразований, которое часто заканчивается пустым потоком (без строк). В основном это работает, но время от времени выдает эту ошибку. Кажется, что он терпит неудачу только тогда, когда поток пуст.

person typecast    schedule 04.02.2020
comment
Хорошо, кому-то не понравился мой ответ, не знаю почему. Я могу объяснить, почему это ошибка. У меня один и тот же код работает на двух разных машинах. Один из них - это тестовая среда, в основном без данных (пустые потоки внутри преобразования). Другой - производственная среда, постоянно хранящая данные (запускается каждые 5 минут, весь день, круглый год). Код в тестовой среде дает сбой примерно 1 раз в день (при работе без данных). Код в производстве никогда не дает сбоев. Это не ошибка в коде, потому что код в основном отлично работает с пустыми данными. - person typecast; 04.02.2020