Прежде всего, я не ищу какой-либо код, а только руководство, связанное с рабочим процессом и технологиями, которые можно использовать для решения нашей конкретной проблемы c.
У нас есть система, в которой мы предоставляем визуальный интерфейс для построения запросов. У нас есть множество данных, к которым пользователь может применить этот запрос. Таким образом, запрос может быть чем-то вроде all rows where x > 5 and y <2.5
.
. Хотя это довольно легко достичь, проблема, с которой мы сталкиваемся, состоит в том, что поля x и y не являются предварительно вычисленными полями, и эти отношения могут быть определены с помощью Пользователь. Например, пользователь может определить отношение типа x = (a+b)-c^2
, а затем применить фильтр к x.
Поскольку значение x необходимо рассчитать динамически, построителю запросов потребуется значительное количество времени для возврата Результаты. Поэтому мне было интересно, можем ли мы реализовать какую-то предварительную выборку и предварительную обработку, чтобы в тот момент, когда пользователь выбирает поле x, мы вычисляем все значения для x во внутреннем интерфейсе. Поскольку пользователю может потребоваться несколько секунд для определения всего запроса, к моменту выполнения пользователем будет выполнено хотя бы часть вычислений.
Я провел некоторое исследование и не смог найти информацию, указанную c к такому виду предварительной обработки. Я нашел много информации о кешировании веб-страниц. Я также читал немного о Redis, но, похоже, это не касается конкретно такого рода проблем.
Что мы можем использовать для предварительной обработки данных таким образом?
Наши внутренние API написаны в Django, а данные хранятся в MongoDb. Внешний интерфейс использует React и Redux.