Как можно сопоставить каждое конкретное значение строки с идентификатором в Пентахо? - PullRequest
0 голосов
/ 10 июня 2018

Я новичок в Pentaho, и в настоящее время у меня возникает проблема с отображением определенных значений строк в ID.

У меня есть файл данных, содержащий около 30 столбцов, один из которых предназначен для валют (USD, GBP, AUD и т. Д.).Основная цель - заставить пользователя выбрать до 8 (минимум 1) валют и сопоставить их с соответствующим идентификатором 1-8.Все другие валюты, не указанные в 8, будут сопоставлены с идентификатором 9. Последний шаг - вывод исходного набора данных вместе с идентификаторами.

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

Я создал работу, где первым шагом является установка переменных для моих 8 валют, selectionOne -> AUD, selectionTwo -> GBP,…, SelectionEight -> JPY.

Затем у меня есть преобразование для чтения данных из файла и использования строк копирования для получения шага.

После этого у меня требуется второе задание для-Каждый цикл для проверки текущей валюты в строке.В рамках этой работы у меня есть два преобразования: одно называется set-current , другое - map-валюты .

set-current просто использует строки получения из шага результата (захватить данные из первого преобразования).Затем я использую шаг переменной set, чтобы установить current currency в значение в поле валюты.Это работает нормально, так как каждый проход в цикле изменяет текущую переменную на правильное значение.

Карты-валюты - вот где у меня больше всего проблем.Цель состоит в том, чтобы использовать шаг строки фильтра, чтобы сравнить текущую валюту с исходными 8 выбранными валютами, а затем использовать шаг сопоставления значений, чтобы сопоставить его с идентификатором, перед выводом файла CSV.

Основная проблемаздесь то, что я не могу использовать свои исходные переменные в фильтре или преобразователе значений.Итак, что я сделал здесь, это используйте шаг получения переменных, чтобы извлечь переменные и назвать их: один, два, три,…, восемь.Это позволяет мне обойти проблему фильтрации, но, похоже, они не работают для преобразователя значений, что является наиболее важным шагом.

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

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

Как я уже сказал, я, вероятно, усложняю, чем следовало бы.

Спасибо за ваше время.

Редактировать для AlainD

Пример ввода

Пример вывода

1 Ответ

0 голосов
/ 12 июня 2018

Это должно быть выполнимо в одном преобразовании с использованием шага «Поиск потока».

stream lookup step diagram

Ввод текстового файла - это ваш основной файл, ввод свойства читаетфайл свойств в столбцы Key и Value.Вы можете использовать обычный текстовый файл с двумя столбцами вместо ввода свойств.

Ниже приведены настройки поиска потока.Обратите внимание на значение по умолчанию «9» для записей, которые не найдены в потоке поиска.

Stream lookup step configuration

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...