Зависит от того, насколько велики ваши данные и какой у вас требуемый SLA.Также о том, какие формулы / другие функции вы хотите поддерживать.
Например, рассмотрим функцию типа sum or max
.Теперь основные данные находятся в некоторой таблице отношений, содержащей 10 тыс. Строк.Вы можете получить все эти данные в приложении Java и сделать сумму (или запустить любую функцию).Однако представьте, если таблица содержит 500К строк.Это заняло бы некоторое время для потоковой передачи всех 500К строк в приложение Java, но потребляет много ресурсов процессора и пропускную способность сети (ресурсы базы данных, локальные ресурсы процессора).Лучше оптимизированный сценарий в этом случае будет индексировать этот столбец в базе данных и позволить базе данных сделать всю тяжелую работу за вас.
Лично я не люблю использовать eval.Я бы лучше проанализировал пользовательский ввод, чтобы определить, какие действия предпринять.
Я предполагаю, что данные не велики, чтобы использовать большие инструменты данных.