Pentaho DI: преобразовать поток формул в поток значений. Возможен ли поиск? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть поток из таблицы БД, содержащий правила (формулы), которые я хотел бы сопоставить с потоком с данными в соответствии со значением столбца Имя. Скажем так (правила - это просто фиктивные примеры, а не часть вопроса):

Data:
---------------
Name    | Sales
---------------
Food    | 1000
Alkohol | 1000
Gas     | 1000

Rules:
---------------
Name    | Rule
---------------
Food    | [if Sales > 100 then 0.5 else 0.7]
Alkohol | [if Sales > 25 then 1 else 2]
Gas     | [if Sales > 500 then 0.7 else 0.5]

Возможен ли поток, который позволяет искать правило с помощью столбца Name, а затем применять правило сопоставления в строку?

В настоящее время у меня есть определенный пользователем класс java, который выполняет итерацию по массиву правил для каждой строки данных, применяя правило сопоставления в виде формулы:

        Formula formula = new Formula(rules[i]);
        context.setRowData(row);
        formula.initialize(context);

. .. но это не очень эффективно. Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 09 мая 2020

Можете ли вы попробовать с шагом Modified Javascript и с помощью eval (Rule) ?

...