Я новичок в Pentaho, и в настоящее время у меня возникла проблема с сопоставлением определенных значений строк с идентификатором.
У меня есть файл данных примерно с 30 столбцами, один из которых предназначен для валют (USD, GBP, AUD и т. Д.). Основная цель - дать пользователю возможность выбрать до 8 (минимум 1) валют и сопоставить их с соответствующими идентификаторами 1-8. Все другие валюты, не входящие в указанные 8, будут сопоставлены с идентификатором 9. Последний шаг - вывести исходный набор данных вместе с идентификаторами.
Я почти уверен, что проделываю этот путь труднее, чем следовало бы, но вот что у меня есть на данный момент.
Я создал задание, в котором первым шагом является установка переменных для моих 8 валют, selectionOne -> AUD, selectionTwo -> GBP,…, selectionEight -> JPY.
Затем у меня есть преобразование для чтения данных из файла и использования копируемых строк для выполнения шага.
После этого у меня есть вторая задача, называемая for-each, которая является моим циклом для проверки текущей валюты в строке. В рамках этой работы у меня есть две трансформации: одна называется set-current, другая - map-Currencies.
set-current просто использует строки получения из шага результата (для получения данных из первого преобразования). Затем я использую шаг установки переменной, чтобы установить для текущей валюты значение в поле валюты. Это отлично работает, поскольку каждый проход в цикле меняет текущую переменную на правильное значение.
Карты-валюты - вот где у меня больше всего проблем. Цель состоит в том, чтобы использовать шаг строки фильтра для сравнения текущей валюты с исходными 8 выбранными валютами, а затем использовать шаг сопоставления значений для сопоставления ее с идентификатором перед выводом файла csv.
Основная проблема здесь в том, что я не могу использовать свои исходные переменные в фильтре или преобразователе значений. Итак, что я сделал здесь, так это использовал шаг получения переменных для извлечения переменных и назвал их: один, два, три,…, восемь. Это позволяет мне обойти проблему с фильтрацией, но, похоже, они не работают для преобразователя значений, что является наиболее важным шагом.
Вторая проблема заключается в том, что когда файл выводится, он выводит только одно значение (из-за цикла), выбор опции добавления работает, но это может быть проблемой, если задание выполняется более одного раза. Однако приоритетом здесь является вопрос отображения.
Я понимаю, что это довольно долго и, возможно, немного сбивает с толку, но я буду очень признателен за любую помощь в этом, даже если это совершенно новый подход ????.
Как я уже сказал, я, наверное, усложняю задачу, чем следовало бы.
Спасибо за ваше время.
Редактировать для AlainD
Stream lookup
, вы можете установить по умолчанию «9» для тех, у кого нет таблицы поиска. Шаг поиска может быть шагом «Data Grid» для сохранения сопоставления идентификатора валюты ‹-›. - person jxc   schedule 11.06.2018