Для контекста у меня есть таблица с посылками, которые были доставлены в разные страны доставки. Я хочу узнать среднее количество посылок для каждой страны доставки в будний день (вс, пн, среда и т. д.) За последние 5 недель.
Я должен использовать для этого Spring Batch. Насколько я понимаю, я мог бы получать посылки как партии, чтобы произвести расчет. Но я не смогу написать окончательный результат, пока не обработаю все посылки. Я использую здесь неправильную концепцию партий? Или Spring Batch позволяет сохранять промежуточные результаты?




Пакет Spring просто запускает код для выполнения. Я бы записал результаты в явный пакетная база данных со всеми результатами, связанными с фактическим запуском партии. Таким образом вы не будете спамить производственную базу данных, а также сможете сохранить результаты для дальнейшей документации / отладки. При необходимости вы можете удалить его через определенное время. Таким образом, если эта пакетная база данных выйдет из строя по какой-либо причине, это не повлияет на производственные данные, и вы получите данные, отсортированные по пакетному запуску.
У меня нет ответа на ваш вопрос, но вы можете использовать один из приемов создания промежуточных таблиц. Выполняйте промежуточные вычисления и сохраняйте результаты в промежуточных таблицах. затем объедините результаты из этих таблиц. Последним шагом будет удаление этих промежуточных таблиц для наведения порядка. В качестве примечания: если бы это было на мое усмотрение, я бы написал SQL-запрос.